aws-lambda
aws-lambda wywołane przez S3
Szukaj…
Składnia
- Deserializowany obiekt oparty na JSON
- Klawisz „Zapisy” zawiera jedno lub więcej faktycznych zdarzeń
- Każdy obiekt zdarzenia podrzędnego zawiera wszystkie informacje potrzebne do ustalenia, co się zmieniło
Parametry
Parametr | Detale |
---|---|
Records -> [] -> s3 -> bucket -> name | Nazwa wiadra S3 |
Records -> [] -> s3 -> object -> key | Ścieżka i nazwa pliku. |
Uwagi
Nazwy plików
W przeciwieństwie do większości ścieżek plików nazwa klucza S3 (schemat JSON: $.Records[0].s3.object.key
) nie zawiera wiodącego ukośnika. Tak więc, jeśli plik ma ścieżkę s3://mybucket/path/file.txt
, kluczem będzie path/file.txt
Przynajmniej w Pythonie kluczowa wartość pola to kodowanie URL UTF-8. Jest to zauważalne, gdy nazwa pliku zawiera spacje lub znaki inne niż ascii. Pole musi zostać zdekodowane za pomocą adresu URL, a następnie zdekodowane za pomocą UTF-8 - patrz Pobieranie nazwy pliku innej niż ASCII ze zdarzenia powiadomienia S3 w Lambda
Klucz rekordów
Możliwe jest posiadanie wielu takich samych (lub różnych) akcji w kluczu "Records"
zdarzenia; jednak w praktyce zazwyczaj na jedno wywołanie funkcji Lambda będzie widoczne jedno zdarzenie.
Więcej przykładów i testów
W konsoli Lambda są faktycznie przykładowe zdarzenia, jeśli wybierzesz opcję Działania -> Konfiguruj zdarzenie testowe. Jednak operację PUT można zobaczyć w powyższych przykładach.
Możesz modyfikować i przesyłać zdarzenia testowe z konsoli AWS Lambda, aby zobaczyć, jak zareaguje twoja funkcja.
Działanie 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"
}
]
}