特定の S3 バケットでオブジェクトが作成または更新されたときに AWS Lambda 関数をトリガーするように Amazon S3 イベントソースを設定しました。Lambda はイベントからバケット名とオブジェクトキーを使用してオブジェクトを読み取り、その内容を解析し、解析されたデータを DynamoDB テーブルに書き込みます。Lambda の実行ロールには S3 バケットを読み取り、DynamoDB に書き込むための権限がありますが、オブジェクトが追加または変更されても関数が呼び出されません。この問題を解決するにはどうすればよいですか?
解答を選択
オプションをタップして解答を確認してください。
正解: そのバケットの関数を呼び出す Amazon S3 権限を付与するリソースベースのポリシーを Lambda 関数に追加します。.
これが解答である理由
S3 イベント通知が Lambda 関数を呼び出すためには、Lambda 関数に S3 が関数を呼び出すことを許可するリソースベースのポリシーが必要です。これは、S3 サービスが Lambda 関数を呼び出すための明示的な許可を必要とするためです。 S3 バケットポリシーは S3 バケットへのアクセスを制御しますが、S3 サービスが他の AWS サービスを呼び出す許可を与えるものではありません。SQS キューを設定するオプションは、イベント処理の信頼性を高めるためのものであり、S3 から Lambda への直接呼び出しの問題を解決するものではありません。Lambda の実行ロールは Lambda 関数が他の AWS サービスにアクセスするための権限を定義しますが、S3 が Lambda を呼び出すための権限ではありません。
試験に合格 — 終わりのない解答探しなしで
この試験のすべての検証済み問題と解説を1か所で入手し、準備時間を大幅に節約しましょう。1,000以上の認定 · 20以上の言語 · 無料で開始。
試験に早く合格する → カード不要