amazon-web-services - Terraform 错误 EntityAlreadyExists:名为 iam_for_lambda 的角色已存在
问题描述
运行命令时terraform apply
出现以下错误,因为角色已存在。
Error: Error creating IAM Role iam_for_lambda: EntityAlreadyExists: Role with name iam_for_lambda already exists.
status code: 409, request id: 204c6c00-0b1d-4fb9-bf9c-fca48c67d669
on main.tf line 1, in resource "aws_iam_role" "iam_for_lambda":
1: resource "aws_iam_role" "iam_for_lambda" {
如果角色已经存在,我可以使用条件/技巧来检查没有错误吗?
解决方案
我猜你自己解决了这个问题,因为这个问题已经存在一年了,但如果资源出于正当原因存在,你可以通过导入它来让你的代码获得所有权:
terraform import aws_iam_role.iam_for_lambda iam_for_lambda
现在,当你运行 Terraform 时,它会认为它已经创建了资源,如果你更新你的代码,rolle 也会得到更新。
话虽如此,您可能不应该尝试创建已经存在的角色。即使您terraform import
曾经获得资源的所有权,如果您的代码正在修改也由另一个模块拥有的角色,您可能会得到奇怪的结果。
推荐阅读
- python - 错误:“y_true 中的类数不等于 'y_score' 中的列数”
- javascript - 为什么我需要为此在画布元素中设置 400 像素的宽度和 200 像素的高度?
- swiftui - 为什么手势在 SwiftUI 中开始在框架外工作?
- php - 在 Laravel 中恢复已删除通知的问题
- flutter - 如何在 listview.builder 中管理 listtiles 的选定变量
- apache-spark - apache spark 3.0.1 是导致 CVE-2020-27216 的易受攻击的原因吗?
- python - 将日期转换为固定格式python
- php - Postman akamai edge-grid 代码在 php 中不起作用
- c++ - C++ 错误:“<<”标记之前的预期主表达式
- python - 对于 Pandas,.loc 和 no loc 有什么区别