amazon-web-services - 如何在 AWS 中找到有关现有资源的正确 ID 以便导入 Terraform 资源?
问题描述
通过 Terraform 部署到 AWS 时出现重复的现有资源错误。
Error: Error creating IAM Role SecuritySearchAPITaskRole: EntityAlreadyExists: Role with name SecuritySearchAPITaskRole already exists.
status code: 409, request id: cf5ae1f4-de6a-11e9-a7b1-d3cdff4db013
on deploy/modules/ecs-fargate-service/iam.tf line 1, in resource "aws_iam_role" "task":
1: resource "aws_iam_role" "task" {
根据上述错误,它是一个名为 的现有 IAM 角色SecuritySearchAPITaskRole
。我认为解决方案是将此资源导入我的本地 terraform 状态,但我如何才能找到我需要使用的资源 ID。我可以在 AWS IAM 控制台上找到这个角色,但它似乎没有 ID。我也尝试运行terraform plan
,这给了我:
+ resource "aws_iam_role" "task" {
+ arn = (known after apply)
+ assume_role_policy = jsonencode(
{
+ Statement = [
+ {
+ Action = "sts:AssumeRole"
+ Effect = "Allow"
+ Principal = {
+ Service = "ecs-tasks.amazonaws.com"
}
},
]
+ Version = "2012-10-17"
}
)
+ create_date = (known after apply)
+ description = "Task role for the SecuritySearchAPI service"
+ force_detach_policies = false
+ id = (known after apply)
+ max_session_duration = 3600
+ name = "SecuritySearchAPITaskRole"
+ path = "/"
+ tags = {
+ "Application" = "Security Search"
+ "Client" = "IRESS"
+ "DataClassification" = "NoData"
+ "Name" = "SecuritySearchAPI Task Role"
+ "Owner" = "platform"
+ "Product" = "SharedServices"
+ "Schedule" = "False"
+ "Service" = "Search"
+ "TaggingStandardVersion" = "3"
}
+ unique_id = (known after apply)
}
并且您可以看到id =
未创建 apply 之后的 known 。如何找到 IAM 角色的 ID?
解决方案
好的,我找到了这个文档https://www.terraform.io/docs/providers/aws/r/iam_role.html#import,我可以在命令role name
中用作 ID 。terraform import
推荐阅读
- javascript - 当一个 URL 有参数的时候,为什么我们要把子组件放在一个属性里面
- julia - 在 Julia 中转换字符串和滚动均值的类变异操作
- android - Firestore:多个 whereArrayContains
- java - 是否可以更改我在 java 中覆盖的方法的参数,还是需要重载它?
- excel - Excel VBA 自动更新排序,对多列进行排序,并应用于“特定范围”
- angular - 导航栏不在小型设备中切换
- javascript - 转换为打字稿 - socketio + angular + node.js
- swift - 将 Flurry 分析集成到 Apple Watch
- html - 向下滚动时导航栏中的下拉菜单会向上
- javascript - 是的,选择字段(下拉菜单)react-hook-form 上的验证不起作用