amazon-web-services - Terraform AWS Provider:SecretsManager 无法应用,因为版本已被删除
问题描述
我们有一个创建过一次的 AWS SecretsManager 密钥。该秘密将由外部作业每小时更新一次。我有一个问题,有时 terraform 计划/应用会失败并显示以下消息:
AWS 提供商 2.48
Error: Error refreshing state: 1 error occurred:
* module.xxx.xxx: 1 error occurred:
* module.xxx.aws_secretsmanager_secret_version.xxx:
aws_secretsmanager_secret_version.xxx: error reading Secrets Manager Secret Version: InvalidRequestException: You can't perform this operation on secret version 68AEABC3-34BE-4723-8BF5-469A44F9B1D9 because it was deleted.
我们尝试了两种解决方案:1)通过 aws cli 强制删除整个秘密,但这具有副作用,我们的依赖资源之一也将被重新创建(ecs 模板定义取决于该秘密)。这可行,但我们不希望重新创建 ecs 事物的副作用。2) 手动编辑后端 .tfstate 文件并设置当前 AWS 密钥版本。然后再次运行计划。
这两种解决方案在某种程度上似乎都很老套。解决此问题的最佳方法是什么?
解决方案
您可以在运行 a或terraform import
之前使用来协调状态差异。plan
apply
在您的情况下,这看起来像:
terraform import module.xxx.aws_secretsmanager_secret_version.xxx arn:aws:secretsmanager:some_region:some_account_id:secret:example-123456|xxxxx-xxxxxxx-xxxxxxx-xxxxx
推荐阅读
- shell - 在 shell 脚本中包含带有“源”命令的文件的问题
- java - 我想将列表视图新项目(旧项目除外)添加到数组
- android-kernel - *** 缺少 UAPI 文件 /home/lineageos/kernel/lenovo/tb8504f/include/uapi/linux/netfilter/xt_DSCP.h。停止。在构建恢复图像时
- reactjs - Module Not Found - Webpack Dev Server
- docker - goproxy 后面的 gPRC 返回证书错误,没有代理也能正常工作
- angular - 如何管理 Ionic 4 / angular 上的后端连接错误
- python - 将多个功能组合成一个,每个功能都有特定的关键字
- pagespeed - Google 和 GTmetrix 之间的巨大 PageSpeed 差异。如何?
- html - 我的导航栏下拉菜单无法正常工作
- python - 将文本加入 Python 中的多个多级列表