aws-lambda
aws-lambda attivato da S3
Ricerca…
Sintassi
- Oggetto basato su JSON deserializzato
- La chiave "Record" ha uno o più eventi reali
- Ogni oggetto evento secondario contiene tutte le informazioni necessarie per determinare cosa è cambiato
Parametri
Parametro | Dettagli |
---|---|
Records -> [] -> s3 -> bucket -> name | Il nome del secchio S3 |
Records -> [] -> s3 -> object -> key | Il percorso e il nome del file. |
Osservazioni
Nomi di file
A differenza della maggior parte dei percorsi di file, il nome della chiave S3 (schema JSON: $.Records[0].s3.object.key
) non include una barra iniziale. Quindi, se hai un file nel percorso s3://mybucket/path/file.txt
, la chiave sarà path/file.txt
In Python almeno, il valore del campo chiave è UTF-8 URL codificato. Ciò è evidente quando il nome del file contiene spazi o caratteri non ascii. Il campo deve essere decodificato URL, quindi decodificato UTF-8 - Vedi Ottieni nome file non ASCII dall'evento di notifica S3 in Lambda
Registra la chiave
È possibile avere più azioni uguali (o diverse) all'interno della chiave "Records"
dell'evento; tuttavia, in pratica, di solito vedrai un evento per invocazione della tua funzione Lambda.
Altri esempi e test
In realtà ci sono eventi di esempio nella console Lambda, se si sceglie Azioni -> Configura evento di test. Tuttavia, puoi vedere l'operazione PUT negli esempi sopra.
È possibile modificare e inviare eventi di test dalla console AWS Lambda per vedere come risponde la funzione.
S3 PUT Operation
{
"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"
}
]
}