【发布时间】:2016-06-24 23:51:23
【问题描述】:
我能够使用
将 sns 事件数据分配给变量def lambda_handler(event, context):
message = event['Records'][0]['Sns']['Message']
print("From SNS: " + message)
输出:
{
"Records": [
{
"eventVersion": "2.0",
"eventSource": "aXXXX",
"awsRegion": "XXXXX",
"eventTime": "2016-03-09T12:24:19.255Z",
"eventName": "ObjectCreated:Put",
"userIdentity": {
"principalId": "AWS:XXXXXXXXXXX"
},
"requestParameters": {
"sourceIPAddress": "xxx.xxx.xx.xx"
},
"responseElements": {
"x-amz-request-id": "XXXX",
"x-amz-id-2": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
},
"s3": {
"s3SchemaVersion": "1.0",
"configurationId": "xxx-xxx-xxx",
"bucket": {
"name": "bucketname",
"ownerIdentity": {
"principalId": "XXXXXX"
},
"arn": "arn:aws:s3:::xxxxx"
},
"object": {
"key": "index.js",
"size": 7068,
"eTag": "xxxx",
"sequencer": "0000000000"
}
}
}
]
}
我无法进一步解析和获取awsRegion、Records.s3.bucket.name 和Records.s3.object.key 的值。
我试过bucketname = message['Records'][0]['s3']['bucket']['name']。
得到错误 TypeError: string indices must be integers
【问题讨论】:
-
你遇到了什么错误?
-
TypeError: 字符串索引必须是整数
-
您不需要访问
event['Records'][0]['s3']['bucket']['name'],而不是message['Records'][0]['s3']['bucket']['name']吗?