AWS Step Functions
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用 ARN 而不是传递大量负载

可以终止在状态间传递大量数据负载的执行。如果在状态间传递的数据可能增长到 32 KB 以上,请使用 Amazon Simple Storage Service (Amazon S3) 存储数据并传递 Amazon 资源名称 (ARN) 而不是原始数据。或者,您也可以调整实现,以便在执行中传递较少的负载。

例如,状态机可以将输入传递到一个 Lambda 函数中,如以下示例所示。

{ "StartAt":"Invoke Lambda function", "States":{ "Invoke Lambda function":{ "Type":"Task", "Resource":"arn:aws:states:::lambda:invoke", "Parameters":{ "FunctionName":"arn:aws:lambda:us-west-2:123456789012:function:MyFunctionName", "Payload":{ "Input.$":"$" } }, "End":true } } }

您无需传递输入中的大量数据,可以将数据存储到一个 Amazon S3 存储桶,然后在 Payload 参数中传递存储桶的 Amazon 资源名称。之后,您的 Lambda 函数就可以使用该 ARN 直接访问数据。以下是某个状态机执行的输入示例,其中数据存储在 Amazon S3 存储桶的 data.json

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

有关更多信息,请参阅: