本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon S3 ARN 而不是传递大型有效负载
可以终止在状态间传递大量数据负载的执行。如果在状态间传递的数据可能增长到 262,144 个字节以上,请使用 Amazon Simple Storage Service (Amazon S3) 存储数据并在Payload
参数来获取存储桶名称和密钥值。或者,您也可以调整实现,以便在执行中传递较少的负载。
例如,状态机可以将输入传递到一个 Amazon Lambda 函数中,如以下示例所示。
{
"StartAt":"Invoke Lambda function",
"States":{
"Invoke Lambda function":{
"Type":"Task",
"Resource":"arn:aws:states:::lambda:invoke",
"Parameters":{
"FunctionName":"arn:aws:lambda:us-east-2:123456789012:function:MyFunctionName",
"Payload":{
"Input.$":"$"
}
},
"End":true
}
}
}
您无需传递输入中的大量数据,可以将数据存储到 Amazon S3 存储桶,然后在Payload
参数来获取存储桶名称和密钥值。之后,您的 Lambda 函数可以使用该 ARN 直接访问数据。以下是某个状态机执行的输入示例,其中数据存储在其中data.json
在 Amazon S3 存储桶中。
{
"Data": "arn:aws:s3:::MyBucket/data.json"
}
有关更多信息,请参阅下列内容: