故障排除服务集成 - Amazon Step Functions
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

故障排除服务集成

Step Functions 中的任务完成和下游服务完成时出现延迟。

适用于.sync服务集成模式,Step Functions 使用 CloudWatch 事件规则、下游 API 或两者的组合来检测下游作业状态。对于某些服务,Step Functions 不会创建要监视的 CloudWatch 事件规则。例如,对于Amazon Glue服务集成,而不是使用 CloudWatch 事件规则,Step Functions 会创建glue:GetJobRun调用。由于 API 调用的频率,下游任务完成与 Step Functions 任务完成时间之间存在差异。

我想从嵌套状态机执行中返回 JSON 输出。

Step Functions 有两个 Step Functions 同步服务集成:startExecution.syncstartExecution.sync:2。两者都等待嵌套状态机完成,但它们返回不同的Output格式。您可以使用startExecution.sync:2返回一个 JSON 输出Output

我无法从另一个帐户调用 Lambda 函数。

Task状态Resource字段中,使用arn:aws:states:::lambda:invoke并传递FunctionArn中的参数。与状态机关联的 IAM 角色必须具有调用跨账户 Lambda 函数的正确权限:lambda:invokeFunction

{ "StartAt":"CallLambda", "States":{ "CallLambda":{ "Type":"Task", "Resource":"arn:aws:states:::lambda:invoke", "Parameters":{ "FunctionName":"arn:aws:lambda:us-west-2:123456789012:function:my-function" }, "End":true } } }

我无法看到从.waitForTaskToken状态。

Task状态Parameters字段中,您必须传递任务令牌。例如,可以使用类似下面的代码。

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