aws-lambda
aws-lambda, вызванная S3
Поиск…
Синтаксис
- Дессериализованный объект на основе JSON
- Ключ «Записи» содержит одно или несколько фактических событий
- Каждый объект вспомогательного события содержит всю информацию, необходимую для определения того, что изменилось
параметры
параметр | подробности |
---|---|
Records -> [] -> s3 -> bucket -> name | Название ведра S3 |
Records -> [] -> s3 -> object -> key | Путь и имя файла. |
замечания
Имена файлов
В отличие от большинства путей к файлам, имя ключа S3 (JSON Schema: $.Records[0].s3.object.key
) не содержит ведущей косой черты. Итак, если у вас есть файл в пути s3://mybucket/path/file.txt
, ключ будет path/file.txt
По крайней мере, на Python значение поля ключа является URL-адресом UTF-8. Это заметно, когда имя файла содержит пробелы или символы, отличные от ascii. Поле должно быть декодировано URL-адресом, а затем декодировано UTF-8 - см. « Получить имя не-ASCII-файла из события уведомления S3 в Лямбда
Записи
Внутри клавиши "Records"
может быть несколько одинаковых (или разных) действий; однако на практике вы обычно видите одно событие за вызов вашей лямбда-функции.
Дополнительные примеры и тестирование
На консоли Lambda на самом деле есть примеры событий, если вы выберете «Действия» -> «Настроить тестовое событие». Однако вы можете увидеть операцию 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"
}
]
}