首页 文章

我应该如何通过cloudformation部署我的aws状态机?

提问于
浏览
0

我正在使用cloudformation来更新我的aws堆栈 . 我有几台状态机 . 我也使用cloudformation更新它们并获取它们的ARN并将它们作为环境变量再次放入我的 Cloud 形成堆栈中的lambda函数中 .

但问题是:当我更改我的步骤函数并更新我的堆栈时,cloudformation将删除旧的状态机并创建具有随机名称的新状态机 . 我可以得到ARN并在我的lambda中使用它们,这不是问题,但我的旧状态机将被删除 . 这意味着任何正在运行的执行都会被下一个状态转换停止 . 我可能长时间运行状态机执行 . 看起来我不能在prod环境中这样做 .

有什么建议?

编辑:

我正在为我的状态机使用AWS Step Functions . 这个问题是关于AWS Step Functions和Cloudformation的 . 如何使用cloudformation运行执行更新步骤函数 .

1 回答

  • 1

    我想我发现了它是如何工作的 .

    DeleteStateMachine的文档说:

    删除状态机 . 这是一个异步操作 - 它将状态机的状态设置为“DELETING”并开始删除过程 . 下次进行状态转换时,将删除每个状态机执行 . 完成所有执行或删除后,状态机本身将被删除 .

    这让我觉得在使用cloudformation更新状态机时,它会在每次执行的下一个状态转换后立即删除正在运行的状态机 . 我想情况并非如此 . 因为我尝试更换长时间运行的状态机,现在它说:

    删除 . 当任何执行正在进行时,删除操作将无法完成 . 考虑通过控制台,API或命令行停止任何长时间运行的Executions .

    这与文档中有关删除状态机的内容存在冲突 . 但是我猜Cloudformation不使用文档中提到的相同Delete操作 .

    最好从AWS专家那里得到关于此问题的澄清 .

相关问题