aws-lambda
aws-lambda activado por S3
Buscar..
Sintaxis
- Deserializado objeto basado en JSON
- La tecla "Registros" tiene uno o más eventos reales
- Cada objeto de evento secundario contiene toda la información que necesita para determinar qué ha cambiado
Parámetros
Parámetro | Detalles |
---|---|
Records -> [] -> s3 -> bucket -> name | El nombre del cubo S3. |
Records -> [] -> s3 -> object -> key | La ruta y el nombre del archivo. |
Observaciones
Nombres de archivos
A diferencia de la mayoría de las rutas de archivo, el nombre de la clave S3 (esquema JSON: $.Records[0].s3.object.key
) no incluye una barra diagonal $.Records[0].s3.object.key
. Por lo tanto, si tiene un archivo en la ruta s3://mybucket/path/file.txt
, la clave será path/file.txt
Al menos en Python, el valor del campo clave es la URL UTF-8 codificada. Esto se nota cuando el nombre de archivo contiene espacios o caracteres que no son ASCII. El campo debe ser una URL decodificada, luego UTF-8 decodificada - Ver Obtener nombre de archivo no ASCII del evento de notificación S3 en Lambda
Clave de registros
Es posible tener múltiples acciones iguales (o diferentes) dentro de la tecla "Records"
del evento; sin embargo, en la práctica, generalmente verá un evento por invocación de su función Lambda.
Más ejemplos y pruebas
En realidad, hay eventos de muestra en la consola Lambda, si selecciona Acciones -> Configurar evento de prueba. Sin embargo, puede ver la operación PUT en los ejemplos anteriores.
Puede modificar y enviar eventos de prueba desde la consola de AWS Lambda para ver cómo responde su función.
Operación 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"
}
]
}