由CDK定义时,是否可以在本地运行AWS Step Functions?

问题描述

AWS Step Functions可以使用Step Functions Local Docker在本地Docker环境中运行。但是,需要使用基于JSON的Amazon States Language来定义步进函数。如果使用AWS CDK / CloudFormation定义了AWS基础架构(Step Functions加上lambda),这根本就不方便。

是否可以通过CDK或CloudFormation输出为状态机创建Amazon States Language定义,从而可以在本地运行step函数

我的开发周期目前需要30分钟才能在AWS中构建/部署/运行基于Lambda的步骤功能,以便对其进行测试,并且肯定有比这更好/更快的测试方法

解决方法

我们能够通过以下方式实现这一目标:

下载:

https://docs.aws.amazon.com/step-functions/latest/dg/sfn-local.html

要在本地运行步骤功能,请在提取本地步骤功能文件的目录中运行:

java -jar StepFunctionsLocal.jar --lambda-endpoint http:// localhost:3003

要创建状态机,您需要一个json定义(可以将其从生成的模板中拉出,也可以获取Vs代码的toolkit plug in,键入步进函数,从模板中选择,并且可以作为启动器也可以从AWS控制台的step函数上的定义选项卡中获取它。

在与定义json相同的目录中运行此命令:

aws stepfunctions --endpoint http:// localhost:8083 create-state-machine --definition“ cat step-function.json” --name“ local-state-machine” --role-arn“ arn:aws: iam :: 012345678901:role / DummyRole“

您现在应该能够(希望)打入SF了:)