我有一个触发Lambda函数的SQS队列。我试图解析SQS消息并提取相关数据。我特别尝试提取s3对象键和s3 bucket arn
我当前的Lambda函数:
def lambda_handler(event, context):
for record in event['Records']:
payload = record['body']
print(str(payload))
objectKey = record['body']['s3']['object']['key']
bucketARN = record['body']['s3']['bucket']['arn']
print('Filename is: ' + str(objectKey))
print('Bucket ARN is: ' + str(bucketARN))
CloudWatch中显示的我的SQS消息:
{
"Records": [
{
"eventVersion": "2.1",
"eventSource": "aws:s3",
"awsRegion": "xxx",
"eventTime": "2021-03-27T19:39:41.694Z",
"eventName": "ObjectCreated:Put",
"userIdentity": {
"principalId": "AWS:AIDAQ5MMP4GQL2S4KQ2SZ"
},
"requestParameters": {
"sourceIPAddress": "xxx"
},
"responseElements": {
"x-amz-request-id": "xxx",
"x-amz-id-2": "xxx"
},
"s3": {
"s3SchemaVersion": "1.0",
"configurationId": "xxx",
"bucket": {
"name": "xxx",
"ownerIdentity": {
"principalId": "AHWVPEVW911DW"
},
"arn": "arn:aws:s3:::xxx"
},
"object": {
"key": "Audio1.mp3",
"size": 16659,
"eTag": "71d5ea0a7152e04d0d170be8146080ba",
"sequencer": "00605F8A02147F848A"
}
}
}
]
}
最后一个错误是:
[ERROR] TypeError: string indices must be integers
Traceback (most recent call last):
File "/var/task/transcribe.py", line 14, in lambda_handler
objectKey = record['body']['s3']['object']['key']
我还尝试过objectKey=record['Records][0]['s3']['object']['key']。 谢谢
找到了类似问题here的有用答案
这对我很有用:
相关问题 更多 >
编程相关推荐