Amazon SWF Lambda Functions 错误 - 在区域中不可用



我正在使用AmazonSWF实现一个工作流,我的一个活动以lambda函数的形式出现。

SWF和Lambda都在伦敦地区运行,它们都单独工作。但是,轮询任务后我的决策程序失败,原因为"LAMBDA_SERVICE_NOT_AVAILABLE_IN_REGION">

我没有在代码中明确指定我正在使用哪个区域,我认为它将与我运行 SWF Web 客户端的区域相同。

这是我的决策程序中的相关代码:

val attrs = ScheduleLambdaFunctionDecisionAttributes()
                        .withId("S3ControlWorkflowFunction")
                        .withName("S3ControlWorkflowFunction")
                decisions.add(
                        Decision()
                                .withDecisionType(DecisionType.ScheduleLambdaFunction)
                                .withScheduleLambdaFunctionDecisionAttributes(attrs)
                )

我的活动工作线程根本不为 lambda 函数做任何事情,但它不应该正确吗?

我已在此处使用我的 IAM 角色注册了工作流:

wf.registerWorkflowType(RegisterWorkflowTypeRequest()
                    .withDomain(DOMAIN)
                    .withName(WORKFLOW)
                    .withVersion(WORKFLOW_VERSION)
                    .withDefaultChildPolicy(ChildPolicy.TERMINATE)
                    .withDefaultTaskList(TaskList().withName(TASKLIST))
                    .withDefaultTaskStartToCloseTimeout("30")
                    .withDefaultLambdaRole(iamARN.id))

找到了修复程序。

事实证明,从 SWF 调用 lambda 函数只是在区域 eu-west-2 以及其他一些区域上不受支持。但是,我在文档中根本找不到对此的任何引用。找到这个论坛帖子,给了我提示。将我所做的所有工作迁移到 eu-west-1 解决了这个问题。亚马逊的糟糕表现在这里

最新更新