Lambda 関数の一覧を取得する (lambda list-functions)
AWS から来た「Node.js 10 のサポート切れるから乗り換えてね」というメール (2021-06-04) に書かれていたやり方です。
Lambda 関数の情報を取得する (lambda get-function)
Lambda 関数のデプロイパッケージをダウンロードするために使用できる、Lambda 関数メタデータと署名付き URL が含まれています。
Lambda 関数を作成する (lambda create-function)
タグを付けるときは、関数の作成時に次のようなオプションを追加します。
Lambda 関数を削除する (lambda delete-function)
Lambda 関数の ZIP パッケージをアップロードする (lambda update-function-code)
Lambda 関数を呼び出す (lambda invoke)
Lambda 関数のリソースベースポリシー設定
Lambda のリソースベースポリシーは、他のサービスからの Lambda 関数へのアクセス許可設定を保持しています。
Lambda 関数は 1 つの リソースベースポリシー を持ち、その中にアクセス権限を表現する複数の ステートメント が含まれている、という構成になります。
Lambda 関数 ◇── ポリシー x 1 ◇── ステートメント x N
ステートメントを追加する (lambda add-permission)
他のサービスに Lambda 関数を呼び出す権限を与えるには、Lambda 関数のリソースベースポリシーに、ステートメントを追加します。
この例では、sns
という名前のステートメントを Lambda 関数のポリシーに追加しています。
コマンドの実行結果として、追加されたステートメントの内容(JSON 形式)が出力されます。
ここで割り当てたステートメント ID(上記の例では sns
)は、ステートメントを削除する場合などに使用します。
上記の例では、すべての SNS トピックからのアクセスを許可していますが、特定の SNS トピックからの Lambda 関数呼び出し (lambda:InvokeFunction
) を許可するには、--source-arn
パラメータを追加で指定します。
例外的に S3 バケットの ARN にはアカウント ID が含まれないため、特定のアカウントの S3 バケットからのアクセスを許可するには、source-account
パラメータでアカウントを指定する必要があります。
その他の例
ステートメントを削除する (lambda remove-permission)
リソースベースポリシーを取得する (lambda get-policy)
Lambda 関数のリソースベースポリシーの内容は、上記のような一行の JSON テキストとして保存されているので、そのままでは見にくいかもしれません。
下記はこの JSON レスポンスを Ruby で YAML 形式に整形する例です。
この Lambda 関数のポリシーとしては、sns
と sns-my-topic
というステートメントで、外部からのアクセスを許可していることがわかります。
Lambda 関数のタグを制御する
タグを追加する (lambda tag-resource)
タグを削除する (lambda untag-resource)
ARN じゃなくて関数名で取得したいのであれば、get-function
で。
関連記事