使用 Amazon S3 ARN,而不是传递大型有效负载 - Amazon Step Functions
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 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 存储桶,然后在 Amazon S3 存储桶的 Amazon 资源名称 (ARN)Payload参数来获取存储桶名称和密钥值。然后,Lambda 函数就可以使用该 ARN 直接访问数据。以下是某个状态机执行的输入示例,其中数据存储在data.json在 Amazon S3 存储桶中。

{ "Data": "arn:aws:s3:::MyBucket/data.json" }

有关更多信息,请参阅下列内容: