aws-lambda
S3によってトリガされたaws-lambda
サーチ…
構文
- デシリアライズされたJSONベースのオブジェクト
- 「レコード」キーには1つまたは複数の実際のイベントがあります
- 各サブイベントオブジェクトには、変更された内容を判断するために必要なすべての情報が含まれています
パラメーター
パラメータ | 詳細 |
---|---|
Records - > [] - > s3 - > bucket - > name | S3バケットの名前 |
Records - > [] - > s3 - > object - > key | ファイルのパスと名前。 |
備考
ファイル名
ほとんどのファイルパスとは異なり、S3キー名(JSONスキーマ: $.Records[0].s3.object.key
)にはスラッシュが含まれていません。したがって、パスs3://mybucket/path/file.txt
にファイルがある場合、キーはpath/file.txt
なりpath/file.txt
少なくともPythonでは、キーフィールド値はUTF-8 URLエンコードされています。これは、ファイル名に空白またはASCII以外の文字が含まれている場合に顕著になります。フィールドをURLでデコードし、次にUTF-8をデコードする必要があります - ラムダのS3通知イベントから非ASCIIファイル名を取得するを参照
レコードキー
イベントの"Records"
キーの中に同じ(または異なる)アクションを複数持つことができます。ただし、実際には、通常、ラムダ関数の呼び出しごとに1つのイベントが表示されます。
より多くの例とテスト
[アクション] - > [テストイベントの設定]を選択すると、実際にはラムダコンソールにサンプルイベントがあります。ただし、上記の例では、PUT操作を見ることができます。
AWS Lambdaコンソールからテストイベントを変更して送信して、関数がどのように応答するかを確認することができます。
S3 PUT操作
{
"Records": [
{
"eventVersion": "2.0",
"eventTime": "1970-01-01T00:00:00.000Z",
"requestParameters": {
"sourceIPAddress": "127.0.0.1"
},
"s3": {
"configurationId": "testConfigRule",
"object": {
"eTag": "0123456789abcdef0123456789abcdef",
"sequencer": "0A1B2C3D4E5F678901",
"key": "HappyFace.jpg",
"size": 1024
},
"bucket": {
"arn": "arn:aws:s3:::mybucket",
"name": "sourcebucket",
"ownerIdentity": {
"principalId": "EXAMPLE"
}
},
"s3SchemaVersion": "1.0"
},
"responseElements": {
"x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH",
"x-amz-request-id": "EXAMPLE123456789"
},
"awsRegion": "us-east-1",
"eventName": "ObjectCreated:Put",
"userIdentity": {
"principalId": "EXAMPLE"
},
"eventSource": "aws:s3"
}
]
}
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow