首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >步骤-函数-局部:无法在状态机内启动状态机

步骤-函数-局部:无法在状态机内启动状态机
EN

Stack Overflow用户
提问于 2022-07-29 21:09:33
回答 1查看 336关注 0票数 0

我已经配置了阶跃函数.局部无服务器离线来测试一个状态机(让我们称之为#1),它触发了在项目中定义的另一个状态机(#2)。

当我用sls offline start --stage dev启动本地服务器时,两者都显示为创建的。

代码语言:javascript
复制
[Serverless Step Functions Local] 2022-07-29 11:03:59.867: [200] CreateStateMachine <=
{"sdkResponseMetadata":null,"sdkHttpMetadata":null,"stateMachineArn":"arn:aws:states:us-east-1:123:stateMachine:Foo",
"creationDate":1659117839863}

[Serverless Step Functions Local] 2022-07-29 11:03:59.883: [200] CreateStateMachine <=
{"sdkResponseMetadata":null,"sdkHttpMetadata":null,"stateMachineArn":
"arn:aws:states:us-east-1:123:stateMachine:Bar","creationDate":1659117839882}

然后使用以下命令测试#1:

代码语言:javascript
复制
aws stepfunctions --endpoint http://localhost:8083 start-execution --state-machine \
arn:aws:states:us-east-1:123:stateMachine:Foo --name local-test-$RANDOM --input <JSON string payload>

#1成功地执行了几个步骤,包括读/写S3操作,直到它到达触发#2的步骤为止;此时,它会失败,出现部分读取的异常:

代码语言:javascript
复制
"Error":"StepFunctions- StateMachineDoesNotExistException",
"Cause":"State Machine Does Not Exist: 'arn:aws:states:us-east-1:123:stateMachine:Bar' 
(Service: AWSStepFunctions; Status Code: 400; Error Code: StateMachineDoesNotExist

下面是如何在#1 .yml文件中定义启动状态机#1的步骤:

代码语言:javascript
复制
 BarStateMachine:
      Type: Task
      Resource: "arn:aws:states:::states:startExecution.sync:2"
      Parameters:
        StateMachineArn:
          arn:aws:states:us-east-1:123:stateMachine:Bar

如果不是指向本地创建的#2的arn,而是指向已部署版本的arn,我就可以让#1工作。然而,这个已部署的版本当然是一个远程资源,这在某种程度上违背了本地测试的目的。对于如何正确执行本地版本的#2,有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2022-09-22 22:35:39

尝试类似于export STEP_FUNCTIONS_ENDPOINT=http://localhost:8083 && serverless offline start的方法--这将导致step函数在本地使用,用于step函数服务集成。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73171018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档