Python 访问由 S3 创建的 AWS SQS 消息

Python accessing AWS SQS message created by S3

每当有文件上传到S3时,我很感激S3可以向SQS写消息。但是,从 Python 访问 SQS 消息正文中的文件名 ("key":"filename.txt") 有点问题,因为它是一个包含多个字典列表的字典。

S3 事件创建消息时,是否有人访问过 SQS 消息正文中的文件名?

完整消息是:

{
    "Records": [{
        "eventVersion": "2.0",
        "eventSource": "aws:s3",
        "awsRegion": "us-west-2",
        "eventTime": "2016-12-04T22:14:52.325Z",
        "eventName": "ObjectCreated:Put",
        "userIdentity": {
            "principalId": "ABC123"
        },
        "requestParameters": {
            "sourceIPAddress": "12.345.687.899"
        },
        "responseElements": {
            "x-amz-request-id": "ABC123",
            "x-amz-id-2": "ABCDEF"
        },
        "s3": {
            "s3SchemaVersion": "1.0",
            "configurationId": "MyQueueName",
            "bucket": {
                "name": "mybucket",
                "ownerIdentity": {
                    "principalId": "ABC123"
                },
                "arn": "arn:aws:s3:::mybucket"
            },
            "object": {
                "key": "filename.txt",
                "size": 2310,
                "eTag": "defg123",
                "sequencer": "00345"
            }
        }
    }]
}

我已经修正了你的问题 JSON

import json
# message = get_sqs_message()
message = json.loads(message)
print(message["Records"][0]["s3"]["object"]["key"])

应该输出filename.txt