【问题标题】:Inappropriate value for attribute "bucket_arn": string required while creating AWS firehose resource in terraform属性“bucket_arn”的值不合适:在 terraform 中创建 AWS firehose 资源时需要字符串
【发布时间】:2020-07-22 08:10:17
【问题描述】:

我正在尝试在这里学习 terraform,但在创建 AWS 资源时遇到了一些问题。

我正在尝试创建 AWS firehose 传输流,但在尝试生成计划时出现错误。

我正在尝试将我创建的角色和 s3 buck 传递给 firehose 资源,但出现错误。

提前致谢。

terraform {
    required_version = ">=0.12.0" 
}

provider "aws" {
    version = "~> 2.0"
    region = "ap-south-1"
}

data "aws_caller_identity" "current" {}

resource "aws_s3_bucket" "bucket1" {
    bucket = "${data.aws_caller_identity.current.account_id}-kinesis-firehose-bucket1"
}

resource "aws_iam_role" "firehose_role" {
  name = "firehose_test_role"

  assume_role_policy = <<EOF
  {
      "Version": "2012-10-17",
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Principal": {
        "Service": "firehose.amazonaws.com"
      },
      "Effect": "Allow",
      "Sid": ""
    }
  ]  
  }
  EOF
}

resource "aws_kinesis_firehose_delivery_stream" "test_stream" {
    name = "big-data-cert-delivery-stream"
    destination = "s3"

    s3_configuration {
        role_arn = "${aws_iam_role.firehose_role}"
        bucket_arn = "${aws_s3_bucket.bucket1}"
    } 
}

Error: Incorrect attribute value type

  on kinesis-stream.tf line 41, in resource "aws_kinesis_firehose_delivery_stream" "test_stream":
  41:         role_arn = "${aws_iam_role.firehose_role}"
    |----------------
    | aws_iam_role.firehose_role is object with 13 attributes

Inappropriate value for attribute "role_arn": string required.


Error: Incorrect attribute value type

  on kinesis-stream.tf line 42, in resource "aws_kinesis_firehose_delivery_stream" "test_stream":
  42:         bucket_arn = "${aws_s3_bucket.bucket1}"
    |----------------
    | aws_s3_bucket.bucket1 is object with 25 attributes

Inappropriate value for attribute "bucket_arn": string required.

【问题讨论】:

  • 当您需要传递对象的属性时,您正试图传递整个对象。例如:role_arn = "${aws_iam_role.firehose_role.arn}"
  • @jordanm 感谢伙伴它的工作原理:)

标签: amazon-web-services terraform-provider-aws terraform0.12+


【解决方案1】:

在资源(iam 角色,s3 存储桶)末尾添加 .arn 有效。

    required_version = ">=0.12.0" 
}

provider "aws" {
    version = "~> 2.0"
    region = "ap-south-1"
}

data "aws_caller_identity" "current" {}

resource "aws_s3_bucket" "bucket1" {
    bucket = "${data.aws_caller_identity.current.account_id}-kinesis-firehose-bucket1"
}

resource "aws_iam_role" "firehose_role" {
  name = "firehose_test_role"

  assume_role_policy = <<EOF
  {
      "Version": "2012-10-17",
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Principal": {
        "Service": "firehose.amazonaws.com"
      },
      "Effect": "Allow",
      "Sid": ""
    }
  ]  
  }
  EOF
}


resource "aws_kinesis_firehose_delivery_stream" "test_stream" {
    name = "big-data-cert-delivery-stream"
    destination = "s3"

    s3_configuration {
        role_arn = aws_iam_role.firehose_role.arn
        bucket_arn = aws_s3_bucket.bucket1.arn
    } 
}

【讨论】:

    猜你喜欢
    • 2021-06-23
    • 2021-11-27
    • 1970-01-01
    • 2020-04-09
    • 1970-01-01
    • 2021-02-09
    • 2021-06-18
    • 2020-08-09
    • 2021-07-17
    相关资源
    最近更新 更多