我正在使用terraform v0.12.6
,但遇到许多错误,例如:
Error: Error creating Security Group: InvalidGroup.Duplicate: The security group 'security-search-populate' already exists for VPC 'vpc-003e06e33a87c22f5'
status code: 400, request id: 82acdc81-c324-4672-b9fe-531eb8283ed3
Error: Error creating IAM Role PopulateTaskRole: EntityAlreadyExists: Role with name PopulateTaskRole already exists.
status code: 409, request id: 49aac94c-d52b-11e9-a535-c19e5ed20660
我知道我可以通过从aws删除这些资源来解决它们。但是我想知道是否有更好的方法来解决它们。
答案 0 :(得分:0)
是的。所有重复项都应导入到terraform中,每种资源的导入可能不同。
使用您的sg-903004f8
个人资料将security group aws_security_group.elb_sg
导入地形资源dev
。您需要找到security-search-populate
安全组的安全组ID。
AWS_PROFILE=dev terraform import aws_security_group.elb_sg sg-903004f8
使用您的PopulateTaskRole
个人资料将IAM role aws_iam_role.developer
导入地形资源dev
。
AWS_PROFILE=dev terraform import aws_iam_role.developer PopulateTaskRole
将其导入后,您可以制定目标的地形计划,以查看源代码控制地形中的内容与AWS上游中的内容之间的区别
AWS_PROFILE=dev terraform plan -target aws_security_group.elb_sg -target aws_iam_role.developer
答案 1 :(得分:0)
将属性“名称”更改为“名称前缀”解决了我的问题,并且没有重复任何角色和/或策略。
答案 2 :(得分:-1)
我认为 FvSoares 的回答似乎不是一个好的做法。在您的 AWS 账户中无故保留重复资源不是一个好的解决方案。违背了自动化基础架构和控制资源的全部目的。
人们应该按照 SomeGuyOnAComputer 的 above 上的回答导入资源。
注意:我无权对@FvSoares 的回答发表评论,否则,将此回答作为评论发布。