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

使用 Step Functions 调用 Lambda

Step Functions can control certain AWS services directly from the Amazon 状态语言. For more information, see:

有关管理状态输入、输出和结果的更多信息,请参阅 Step Functions 中的输入和输出处理

支持的 API:

下面是调用 Lambda 函数的 Task 状态。

{ "StartAt":"CallLambda", "States":{ "CallLambda":{ "Type":"Task", "Resource":"arn:aws:states:::lambda:invoke", "Parameters":{ "FunctionName":"MyFunction" }, "End":true } } }

下面包含一个实施回调服务集成模式的 Task 状态。

{ "StartAt":"GetManualReview", "States":{ "GetManualReview":{ "Type":"Task", "Resource":"arn:aws:states:::lambda:invoke.waitForTaskToken", "Parameters":{ "FunctionName":"get-model-review-decision", "Payload":{ "model.$":"$.new_model", "token.$":"$$.Task.Token" }, "Qualifier":"prod-v1" }, "End":true } } }

要仅调用 Lambda 函数,您还可以直接在 "Resource" 字符串中调用资源 ARN。

注意

直接从 "Resource" 字段使用 ARN 调用 Lambda 时,不能指定 .waitForTaskToken,并且状态输入将作为有效负载传递给 Lambda。Lambda 函数的输出即为结果。

要让 Lambda 任务等待任务令牌,请参阅上一回调模式示例。

{ "StartAt":"CallFunction", "States":{ "CallFunction": { "Type":"Task", "Resource":"arn:aws:lambda:us-east-1:123456789012:function:HelloFunction", "End": true } } }

注意

通过在 Resource 字段中的 Amazon 资源名称 中指定相应选项,您可以调用特定的 Lambda 函数版本或别名。敬请查看以下 Lambda 文档内容。

For information on how to configure IAM when using Step Functions with other AWS services, see 集成服务的 IAM 策略.