Dee*_*pan 7 amazon-web-services aws-lambda terraform terraform-provider-aws
我正在使用 terraform 在 AWS 中创建一个角色。由于IAM是非区域服务,我只想创建一次角色。因此,每当我运行 terraform 时,它都应该检查该角色是否已经存在,如果不存在,它应该创建一个。
data "aws_iam_role" "iam_role_check" {
name = "some_role"
}
resource "aws_iam_role" "iam_role" {
count= "${data.aws_iam_role.iam_role_check != "null" ? 0 : 1}"
name = "some_role"
assume_role_policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "sts:AssumeRole",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Effect": "Allow",
"Sid": ""
}
]
}
EOF
}
Run Code Online (Sandbox Code Playgroud)
data.aws_iam_role.iam_role_check:正在刷新状态...
错误:读取 IAM 角色 (some_role) 时出错:NoSuchEntity:找不到名为 some_role 的角色。状态码:404,请求ID:
小智 3
没有已知的方法,因为它\xe2\x80\x99s设计原理,请参阅此GitHub问题。
\n\n我认为创建尽可能多的角色并没有什么错。您可以在角色名称中包含一些区分位,例如部署名称或环境。您可能还希望将一些常见配置分离到其他 \xe2\x80\x9ccommon\xe2\x80\x9d terraform 部署中,并仅使用其他地方的数据源。
\n\n当无法为同一事物拥有多个实例时,例如Amazon Elasticsearch Service 的 AWSServiceRoleForAmazonElasticsearchService,Cloud Posse 会创建一个简单的变量来确定是否应在其terraform Elasticsearch 模块中创建角色,然后在中搜索 create_iam_service_linked_role自述文件.md。
\n| 归档时间: |
|
| 查看次数: |
19132 次 |
| 最近记录: |