首页 > 解决方案 > 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" {

如果角色已经存在,我可以使用条件/技巧来检查没有错误吗?

标签: amazon-web-servicesterraform

解决方案


我猜你自己解决了这个问题,因为这个问题已经存在一年了,但如果资源出于正当原因存在,你可以通过导入它来让你的代码获得所有权:

terraform import aws_iam_role.iam_for_lambda iam_for_lambda

现在,当你运行 Terraform 时,它会认为它已经创建了资源,如果你更新你的代码,rolle 也会得到更新。

话虽如此,您可能不应该尝试创建已经存在的角色。即使您terraform import曾经获得资源的所有权,如果您的代码正在修改也由另一个模块拥有的角色,您可能会得到奇怪的结果。


推荐阅读