イベントコンテキストの形式と使用法 - Amazon Simple Storage Service

イベントコンテキストの形式と使用法

Amazon S3 Object Lambda は、AWS Lambda 関数に渡されたイベントで行われたリクエストに関するコンテキストを提供します。リクエストの例を次に示します。フィールドの説明は例の後に含まれています。

{ "xAmzRequestId": "requestId", "getObjectContext": { "inputS3Url": "https://my-s3-ap-111122223333.s3-accesspoint.us-east-1.amazonaws.com/example?X-Amz-Security-Token=<snip>", "outputRoute": "io-use1-001", "outputToken": "OutputToken" }, "configuration": { "accessPointArn": "arn:aws:s3-object-lambda:us-east-1:111122223333:accesspoint/example-object-lambda-ap", "supportingAccessPointArn": "arn:aws:s3:us-east-1:111122223333:accesspoint/example-ap", "payload": "{}" }, "userRequest": { "url": "https://object-lambda-111122223333.s3-object-lambda.us-east-1.amazonaws.com/example", "headers": { "Host": "object-lambda-111122223333.s3-object-lambda.us-east-1.amazonaws.com", "Accept-Encoding": "identity", "X-Amz-Content-SHA256": "e3b0c44298fc1example" } }, "userIdentity": { "type": "AssumedRole", "principalId": "principalId", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/example", "accountId": "111122223333", "accessKeyId": "accessKeyId", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "Wed Mar 10 23:41:52 UTC 2021" }, "sessionIssuer": { "type": "Role", "principalId": "principalId", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" } } }, "protocolVersion": "1.00" }

リクエストには次のフィールドが含まれます。

  • xAmzRequestId - このリクエストの Amazon S3 リクエスト ID。デバッグに役立つように、この値をログに記録することをお勧めします。

  • getObjectContext - Amazon S3 および S3 Object Lambda への接続に関する入力および出力の詳細。

    • inputS3Url - Amazon S3 から元のオブジェクトを取得するために使用できる署名付き URL。URL は元の発信者のアイデンティティを使用して署名され、URL が使用されるときにそのユーザーのアクセス許可が適用されます。URL に署名されたヘッダーがある場合、Lambda 関数では、Host ヘッダーを除き、Amazon S3 への呼び出しにこれらのヘッダーを含める必要があります。

    • outputRoute – Lambda 関数が WriteGetObjectResponse を呼び出すときに S3 Object Lambda URL に追加されるルーティングトークン。

    • outputToken - WriteGetObjectResponse 呼び出しを元の発信者と一致させるために、S3 Object Lambda によって使用される不透明なトークン。

  • configuration - Object Lambda アクセスポイントに関する設定情報。

    • accessPointArn - このリクエストを受信した Object Lambda アクセスポイントの Amazon リソースネーム (ARN)。

    • supportingAccessPointArn - Object Lambda アクセスポイント設定で指定されているサポートアクセスポイントの ARN。

    • payload - Object Lambda アクセスポイント設定に適用されるカスタムデータ。S3 Object Lambda はこのデータを不透明な文字列として扱うため、使用前にデコードする必要がある場合があります。

  • userRequest - S3 Object Lambda への元の呼び出しに関する情報。

    • url - S3 Object Lambda で受信したリクエストのデコードされた URL。認可関連のクエリパラメータは除きます。

    • headers - HTTP ヘッダーと元の呼び出しからの値を含む文字列への文字列マップ。認可関連のヘッダーは含まれません。同じヘッダーが複数回表示される場合、同じヘッダーの各インスタンスからの値は、コンマ区切りのリストに結合されます。元のヘッダーの大文字と小文字は、このマップに保持されます。

  • userIdentity – S3 Object Lambda への呼び出しを行ったアイデンティティの詳細。詳細については、「AWS CloudTrail ユーザーガイド」の「証跡のデータイベントの記録」を参照してください。

    • type – アイデンティティのタイプ。

    • accountId - アイデンティティが属するAWS アカウント。

    • userName - 呼び出しを行ったアイデンティティのわかりやすい名前。

    • principalId - 呼び出しを行ったアイデンティティの一意の識別子。

    • arn – 呼び出しを行ったプリンシパルの ARN。ARN の最後のセクションには、呼び出しを行ったユーザーまたはロールが含まれています。

    • sessionContext - リクエストが、一時的セキュリティ認証情報を使用して行われた場合、このエレメントはこれらの認証情報のために作成されたセッションに関する情報を提供します。

    • invokedBy – Amazon EC2 Auto Scaling や AWS Elastic Beanstalk など、リクエストを行った AWS のサービス の名前。

    • sessionIssuer - リクエストが一時的セキュリティ認証情報を使用して行われた場合、このエレメントは認証情報がどのように取得されたかに関する情報を提供します。

  • protocolVersion – 提供されるコンテキストのバージョン ID。このフィールドの形式は {Major Version}.{Minor Version} です。マイナーバージョン番号は、常に 2 桁の数字です。フィールドのセマンティクスを削除または変更する場合は、メジャーバージョンバンプが必要となり、アクティブなオプトインが必要になります。Amazon S3 ではいつでも新しいフィールドを追加できます。この時点で、マイナーバージョンのバンプが発生する可能性があります。ソフトウェアのロールアウトの性質上、一度に複数のマイナーバージョンが使用されている場合があります。