gpt4 book ai didi

amazon-web-services - 如何通过 SAM cli 强制部署到 lambda

转载 作者:行者123 更新时间:2023-12-05 04:00:22 24 4
gpt4 key购买 nike

我正在使用 sam deploy 命令将我的 lambda 部署到 AWS。有时我会收到此错误 调用 CreateChangeSet 操作时发生错误 (ValidationError):Stack:arn:aws:cloudformation:ap-southeast-2:xxxx:stack/xxxx/xxxx 处于 ROLLBACK_COMPLETE 状态且无法更新. 我知道之前的部署发生了故障。我可以在 AWS cloundformation 控制台中手动删除堆栈并重试该命令。但我想知道是否有办法强制命令删除任何回滚状态堆栈?

我知道我可以通过 aws cli 或控制台删除失败的堆栈。但我的 deploy 脚本位于 CI 上,我想让 CI 使用 deploy 命令来覆盖失败的堆栈。所以场景是:

1. CI failed on deploy lambda function
2. My team analysis the issue and fix the issue in cloudformation template file
3. Push the fix to github to tigger the CI
4. CI is triggered and use the latest change to override the failed stack.

我不希望团队手动删除堆栈。

最佳答案

ROLLBACK_COMPLETE 状态仅在堆栈创建失败后才存在。唯一的选择是删除堆栈。这是为了让您有机会正确分析失败的原因。

您可以使用以下命令从命令行删除堆栈:

aws cloudformation delete-stack --stack-name <value>

来自documentation ROLLBACK_COMPLETE:

Successful removal of one or more stacks after a failed stack creation or after an explicitly canceled stack creation. Any resources that were created during the create stack action are deleted.

This status exists only after a failed stack creation. It signifies that all operations from the partially created stack have been appropriately cleaned up. When in this state, only a delete operation can be performed.

通常情况下,ROLLBACK_COMPLETE 不应在生产中发生。我建议在持续部署堆栈之前在开发环境中验证您的堆栈,或者在生产环境中成功创建堆栈。

不过,您可以在 CI 中使用自定义脚本来检查堆栈状态 ( DescribeStacks ),如果是 ROLLBACK_COMPLETE 则将其删除 ( DeleteStack )。该脚本将在 sam deploy 之前运行。

关于amazon-web-services - 如何通过 SAM cli 强制部署到 lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56266105/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com