1

aws SAM ローカル ドキュメントには、SAM Local がローカルに構成された IAM 資格情報を使用して関数を呼び出すと記載されています。

Lambda 関数と、1 つの特定の s3 バケットのコンテンツを削除するためのアクセスを許可するこの関数にアタッチされたロールで構成される cloudformation テンプレートをテストしたいと考えています。バケット名は、テンプレート パラメーターであり、ラムダ関数の引数でもあります。(それが問題かどうかはわかりませんが、私は CFN テンプレートでサーバーレス変換を使用していません。)

バケット名にタイプミスがあると、間違ったバケットのすべてのコンテンツが削除されるため、管理者プロファイルでこの機能をテストすることは避けています。

このような機能をテストするための推奨されるワークフローは何ですか?

私が現在していること:

  • 一時的な IAM ユーザー/グループを作成する
  • テストするポリシーをこのグループにアタッチします
  • 呼び出す前にアクセス環境変数をエクスポートしますsam local invoke

これを行うより速い方法はありますか?

4

1 に答える 1

2

DryRun で Lambda を呼び出す

Dryrun を使用して関数を呼び出し、AWS Lambda に関数を実行するのではなく、呼び出し元が関数を呼び出す権限があるかどうか、入力が有効かどうかなどの検証を行うように要求します。

aws lambda invoke --function-name <name> --invocation-type DryRun

Cloudformation の変更セットの作成: 変更セット = 予行演習モード

「create-change-set」で変更セットを作成し、コンソール UI または CLI で変更を確認してから、CLI または UI を使用して変更を実行し、変更を適用します。

変更セットを作成:

aws cloudformation create-change-set --stack-name example --template-body file://templates/instance_and_route53.yml --parameters file://parameters/instance_and_route53.json --change-set-name changeset-1

変更セットを実行

aws cloudformation execute-change-set --stack-name example --change-set-name changeset-1
于 2018-02-26T02:52:07.603 に答える