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

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

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