aws-lambda
aws-lambda utlöst av S3
Sök…
Syntax
- Deserialiserat JSON-baserat objekt
- "Record" -knappen har en eller flera faktiska händelser
- Varje subhändelseobjekt innehåller all information du behöver för att avgöra vad som har ändrats
parametrar
Parameter | detaljer |
---|---|
Records -> [] -> s3 -> bucket -> name | Namnet på S3-hinken |
Records -> [] -> s3 -> object -> key | Sökvägen och namnet på filen. |
Anmärkningar
Filnamn
Till skillnad från de flesta $.Records[0].s3.object.key
inkluderar inte S3-nyckelnamnet (JSON Schema: $.Records[0].s3.object.key
) en ledande snedstreck. Så om du har en fil i sökvägen s3://mybucket/path/file.txt
kommer nyckeln att vara path/file.txt
I Python åtminstone är nyckelfältets värde UTF-8 URL-kodat. Detta märks när filnamnet innehåller mellanslag eller icke-ascii-tecken. Fältet måste avkodas URL och sedan avkodas UTF-8 - Se Hämta icke-ASCII-filnamn från S3-meddelandehändelse i Lambda
Registreringsnyckel
Det är möjligt att ha flera av samma (eller olika) åtgärder inuti händelsens "Records"
-nyckel; I praktiken kommer du dock vanligtvis att se en händelse per kallelse av din Lambda-funktion.
Fler exempel och testning
Det finns faktiskt provhändelser i Lambda-konsolen, om du väljer Åtgärder -> Konfigurera testhändelse. Du kan dock se PUT-operationen i exemplen ovan.
Du kan ändra och skicka testhändelser från AWS Lambda-konsolen för att se hur din funktion svarar.
S3 PUT-drift
{
"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"
}
]
}