aws-lambda
aws-lambda wird durch S3 ausgelöst
Suche…
Syntax
- Deserialisiertes JSON-basiertes Objekt
- "Records" -Taste hat ein oder mehrere tatsächliche Ereignisse
- Jedes Unterereignisobjekt enthält alle Informationen, die Sie benötigen, um die Änderungen zu ermitteln
Parameter
Parameter | Einzelheiten |
---|---|
Records -> [] -> s3 -> bucket -> name | Der Name des S3-Buckets |
Records -> [] -> s3 -> object -> key | Der Pfad und Name der Datei. |
Bemerkungen
Dateinamen
Im Gegensatz zu den meisten Dateipfaden enthält der S3-Schlüsselname (JSON-Schema: $.Records[0].s3.object.key
) keinen führenden Schrägstrich. Wenn Sie eine Datei im Pfad s3://mybucket/path/file.txt
, s3://mybucket/path/file.txt
der Schlüssel path/file.txt
Zumindest in Python ist der Schlüsselfeldwert UTF-8-URL-kodiert. Dies fällt auf, wenn der Dateiname Leerzeichen oder Nicht-ASCII-Zeichen enthält. Das Feld muss in der URL decodiert, dann UTF-8 decodiert - Siehe Nicht-ASCII - Dateinamen von S3 Benachrichtigungsereignis in Lambda Get
Datensatzschlüssel
Innerhalb der Taste "Records"
des Ereignisses können mehrere derselben (oder unterschiedlichen) Aktionen ausgeführt werden. In der Praxis wird jedoch normalerweise ein Ereignis pro Aufruf Ihrer Lambda-Funktion angezeigt.
Weitere Beispiele & Tests
Es gibt tatsächlich Beispielereignisse in der Lambda-Konsole, wenn Sie Aktionen -> Testereignis konfigurieren auswählen. Sie können jedoch die PUT-Operation in den obigen Beispielen sehen.
Sie können Testereignisse über die AWS Lambda-Konsole ändern und senden, um zu sehen, wie Ihre Funktion reagiert.
S3 PUT-Betrieb
{
"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"
}
]
}