amazon-web-services - AWS 云信息 : No change set if the CF's Referenced S3 files are changed

标签 amazon-web-services aws-cloudformation aws-step-functions aws-cloudformation-custom-resource

我的 CF 具有 Step Function 状态机配置,其定义放置在某个 S3 位置。

现在,如果定义发生任何更改,即仅在 S3 文件中进行更改,在这种情况下更新 CF 将失败。

我尝试过的解决方案 我已经在我的 CF 中声明了一个参数(例如 buildVersion),S3 中的每个更改都将导致新的构建版本,并且我通过参数发送此构建版本

aws cloudformation --region "xyz" update-stack --stack-name "my stack name" --timeout-in-minutes 15 --template-body "CF file path" --parameters "parameter-file path"

这就是我的参数文件的样子,因此在调用此命令之前,我将使用此 buildVersion 参数更新参数文件。

[
   {"ParameterKey":"EnvironmentName", "ParameterValue":"dev"},
   {"ParameterKey":"BuildVersion", "ParameterValue":"0.0"}
]

但它没有解决目的,并且更新命令失败,如果我对 AWS 控制台执行相同的操作,即更新参数并单击更新,它工作正常。

任何建议都将受到高度赞赏。

最佳答案

当您更新模板时。它不会查看 S3 上引用的文件来查看是否有任何更改。因此它只会看到文件位置没有改变,并得出模板本身没有改变的结论。

由于您的问题并不完整,我必须根据一些假设来回答。您可以在保存定义的 S3 存储桶上启用版本控制,并将 S3 版本标识符作为参数传递给堆栈以使用 as a property of your StepFunction S3 Location declaration 。如果执行此操作,您可以将新版本的状态机声明上传到 S3 并使用该版本标识符作为更新 CloudFormation 堆栈的参数。

您可以使用 S3 上的 CodePipeline 或 Lambda 触发器来自动化更新 CloudFormation 堆栈的整个过程,以便在上传新的 StateMachine 定义时自动更新 CloudFormation 堆栈。

关于amazon-web-services - AWS 云信息 : No change set if the CF's Referenced S3 files are changed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69181828/

相关文章:

amazon-web-services - 从亚马逊dynamodb删除

amazon-web-services - 具有负载均衡器和 Auto Scaling 组的 AWS CloudFormation 只是不断加载网站

aws-cloudformation - 将现有 Cognito UserPool 导入无服务器框架堆栈

amazon-web-services - 是否有允许的模式正则表达式来验证 List<AWS::EC2::AvailabilityZone::Name>

amazon-web-services - AWS SAM - 如何处理大量端点

amazon-web-services - AWS 步骤函数 : Adding States. 将输出格式化为顶层输入

amazon-web-services - AWS CLI执行Lambda函数问题

amazon-web-services - 无服务器 - 服务之间通信的选项?

amazon-web-services - AWS Step Function Map 任务可以处理多少项?

amazon-web-services - 并行状态合并 Step Function 中的输出