在SAM模板中定义的本地运行Step Function

时间:2020-03-25 10:18:45

标签: aws-step-functions aws-sam aws-sam-cli

我遵循指南https://docs.aws.amazon.com/step-functions/latest/dg/sfn-local-lambda.html在本地运行内嵌定义的Step Function。

但是我没有找到有关如何在本地测试定义到SAM模板(template.yaml)中的步进函数的指南。

有可能吗?

2 个答案:

答案 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>