如何通过AWS CLI更新Step Function且不删除原有日志
不修改文件名更新AWS Step Function 可行方案
无需修改现有资源名称或文件名即可完成Step Function更新,同时保留所有历史日志,操作如下:
- 确认本地Step Function定义文件(JSON/ASL格式)已完成内容修改,文件名保持原有命名即可,无需调整
- 直接调用AWS Step Functions的
update-state-machineAPI完成更新,对应的CLI命令参考如下,替换对应参数即可直接执行:aws stepfunctions update-state-machine --state-machine-arn <你的Step Function ARN> --definition file://<本地定义文件的相对/绝对路径> - 若本次更新需要同步修改关联的IAM角色,可在上述命令中追加
--role-arn <新的IAM角色ARN>参数即可,不需要调整状态机本身的标识信息
注意事项
- 上述更新操作仅修改状态机的运行逻辑,状态机的ARN、名称都不会发生变化,AWS CLI中留存的历史执行日志、关联的CloudWatch日志都会完整保留,不需要调整项目内的现有动态调用逻辑
- 如果你使用SAM/CDK等基础设施即代码工具部署,只需要修改状态机定义的内容,不需要调整资源的逻辑ID或物理名称,部署时会自动调用更新接口,不会触发资源重建,日志也不会丢失
- 官方文档中提及的需要变更资源名称的方案属于新建状态机的操作流程,不适用于现有状态机的更新场景,不要使用先删除再重建的方式更新,该操作才会导致日志被清空
内容的提问来源于stack exchange,提问作者Pulasthi Aberathne
相关产品推荐
相关产品推荐

