Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 尝试为要放置在S3中的SQS消息定义messageId_Python_Amazon S3_Aws Lambda_Boto3_Amazon Sqs - Fatal编程技术网

Python 尝试为要放置在S3中的SQS消息定义messageId

Python 尝试为要放置在S3中的SQS消息定义messageId,python,amazon-s3,aws-lambda,boto3,amazon-sqs,Python,Amazon S3,Aws Lambda,Boto3,Amazon Sqs,我尝试使用以下lambda代码将sqs消息放入S3存储桶中。代码将实现这一点,但是我需要弄清楚如何定义messageId,以便放置在S3 bucket中的每个对象都具有与sqs messageId相同的名称 import json import boto3 def lambda_handler(event, context): s3 = boto3.client("s3") data = json.loads(event["Records"

我尝试使用以下lambda代码将sqs消息放入S3存储桶中。代码将实现这一点,但是我需要弄清楚如何定义messageId,以便放置在S3 bucket中的每个对象都具有与sqs messageId相同的名称

import json
import boto3

def lambda_handler(event, context):
    s3 = boto3.client("s3")
    data = json.loads(event["Records"][0]["body"])
    s3.put_object(Bucket="dlqbucket", Key="messageId", Body=json.dumps(data))
    
    # TODO implement
    return {
        'statusCode': 200,
        'body': json.dumps('Hello from lambda')
    }
        

以下是从Amazon SQS到AWS Lambda函数的传入记录示例:

{
“记录”:[
{
“消息ID”:“19dd0b57-b21e-4ac1-bd88-01bbb068cb78”,
“receiptHandle”:“MessageReceiptHandle”,
“body”:“你好,来自SQS!”,
“属性”:{
“近似接收计数”:“1”,
“SentTimestamp”:“1523232000000”,
“SenderId”:“123456789012”,
“近似FirstReceiveTimeStamp”:“1523232000001”
},
“messageAttributes”:{},
“md5OfBody”:“{{{md5OfBody}}}”,
“事件源”:“aws:sqs”,
“eventSourceARN”:“arn:aws:sqs:ap-Southast-2:123456789012:MyQueue”,
“awsRegion”:“ap-东南-2”
}
]
}
因此,您可以通过以下方式获得
mesageId

event["Records"][0]["messageId"]