我遵循指南https://docs.aws.amazon.com/step-functions/latest/dg/sfn-local-lambda.html在本地运行内嵌定义的Step Function。
但是我没有找到有关如何在本地测试定义到SAM模板(template.yaml)中的步进函数的指南。
有可能吗?
答案 0 :(得分:0)
当前,Step Functions与SAM的集成仍处于早期阶段。它提供了documentation中的以下功能:
使用AWS SAM示例模板在几分钟内开始使用。
将状态机构建到无服务器应用程序中。
使用变量替换将ARN替换为状态机 部署时。
使用AWS SAM策略简化指定状态机角色 模板。
使用API网关,EventBridge事件, 或按照您的AWS SAM模板中的时间表进行操作。
但是,不同于可以使用SAM本地模拟Lambda和API Gateway的方式,您不能使用SAM本地模拟步骤功能。
Step Functions Local是在本地测试状态机的唯一官方受支持的方法,与SAM local命令配对,您可以使用Step Functions的本地版本调用AWS Lambda的本地版本。
答案 1 :(得分:0)
您可以使用所需语言的 SDK 并按照以下文档创建自动化测试:https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/StepFunctions.html。
Node.js 示例:
const stepfunctions = new AWS.StepFunctions({endpoint: 'http://localhost:8083'});
其他选项是使用带有 bash/sh 文件的 AWS CLI 并创建手动(奇怪的)测试,它可以通过“npm run”调用,例如:https://docs.aws.amazon.com/step-functions/latest/dg/sfn-local-lambda.html。
$ aws stepfunctions --endpoint http://localhost:8083 <command>