amazon-web-services - 仅当不存在时如何创建 terraform 资源

标签 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
}

data.aws_iam_role.iam_role_check:正在刷新状态...

Error: error reading IAM Role (some_role): NoSuchEntity: The role with name some_role cannot be found. status code: 404, request id:

最佳答案

我认为这个场景最简单的解决方案是只为共享资源创建一个单独的状态,并在对其他状态运行应用之前对其运行应用

关于amazon-web-services - 仅当不存在时如何创建 terraform 资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59438441/

相关文章:

powershell - 使用 cmdlet 访问 AWS IAM 时出现 ObjectNotFound 错误

azure - Terraform Azure SQL 服务器管理员密码更改强制重新创建资源

linux - 如何在 Amazon Linux 上升级/安装 Upstart deamon 版本 1.5

amazon-web-services - 你如何从 NodeJS Lambda 调用 adminInitiateAuth?

aws-lambda - AWS : How to create Base Path Mappings for custom domain

amazon-web-services - AWS-CDK 和 Powershell Lambda

amazon-s3 - 来自 Terraform 的格式错误的 S3 策略

mysql - 最佳实践 : How to use Terraform to create custom MySQL (RDS) user via CI?

amazon-web-services - AWS S3 和 AWS 存储网关

php - 从 PHP 服务器连接到 Amazon AWS 上的 MySQL 服务器