小编Mar*_*o E的帖子

错误:收集实例设置时出错:运行 terraform apply 时结果为空(terraform plan 工作正常)

我不太明白 terraform 目录是如何设置的,但我的目录似乎非常基本。尽管设置了空值,但它一直抱怨空值。有人可以看一下并告诉我可能是什么问题吗?

\n

.tf 的片段:

\n
provider "aws" {\n  region     = var.region\n\n  default_tags {\n    tags = {\n      source = "/home/ubuntu/bootcamp-terraform-master"\n      owner_name = var.owner-name\n      owner_email = var.owner-email\n      purpose = var.purpose\n    }\n  }\n}\n\n\n// Resources\n\nresource "aws_instance" "zookeepers" {\n  count         = var.zk-count\n  ami           = var.aws-ami-id\n  instance_type = var.zk-instance-type\n  key_name = var.key-name\n\n  root_block_device {\n    volume_size = 100\n  }\n\n  tags = {\n    Name = "${var.owner-name}-zookeeper-${count.index}"\n"bootcamp2.tf" 269L, 7806C                                                                                                                              14,0-1        Top\nprovider "aws" {\n  region     = var.region\n\n  default_tags {\n    tags = {\n      source = "/home/ubuntu/bootcamp-terraform-master"\n      owner_name = var.owner-name\n …
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 terraform terraform-provider-aws terraform0.12+

3
推荐指数
1
解决办法
7421
查看次数

InvalidParameterException:不支持指定的插件版本

我已经尝试部署自我管理节点 EKS 集群有一段时间了,但没有成功。我现在遇到的错误是 EKS 插件:

错误:创建 EKS 插件时出错 (DevOpsLabs2b-dev-test--eks:kube-proxy):InvalidParameterException:不支持指定的插件版本,AddonName:“kube-proxy”,ClusterName:“DevOpsLabs2b-dev-test-- eks", Message_: "不支持指定的插件版本" } 在 .terraform/modules/eks-ssp-kubernetes-addons/modules 上使用 module.eks-ssp-kubernetes-addons.module.aws_kube_proxy[0].aws_eks_addon.kube_proxy /kubernetes-addons/aws-kube-proxy/main.tf 第 19 行,在资源“aws_eks_addon”“kube_proxy”中:

coredns 也会重复此错误,但 ebs_csi_driver 会抛出:

错误:创建期间返回意外的 EKS 附加组件 (DevOpsLabs2b-dev-test--eks:aws-ebs-csi-driver) 状态:等待状态变为“ACTIVE”时超时(最后状态:“DEGRADED”,超时: 20m0s) [警告] 再次运行 terraform apply 将删除 kubernetes 插件并尝试再次创建它,有效清除以前的插件配置

我的 main.tf 看起来像这样:

terraform {

  backend "remote" {}

  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = ">= 3.66.0"
    }
    kubernetes = {
      source  = "hashicorp/kubernetes"
      version = ">= 2.7.1"
    }
    helm = {
      source  = "hashicorp/helm"
      version = ">= 2.4.1" …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services kubernetes terraform terraform-provider-aws amazon-eks

2
推荐指数
1
解决办法
5360
查看次数

如何在 JSON 文件中添加 terraform 变量

嘿,团队我\xe2\x80\x99m 在文档中找不到有关如何在 JSON 文件中添加 terraform 变量的信息,

\n

我需要在这个 JSON 中注入这个变量,

\n

在此输入图像描述

\n

在这个形状的 JSON 中,但它不起作用,

\n

在此输入图像描述

\n

我确实尝试过使用 var 和 locals,我尝试过使用 var 和 locals,但它不起作用,它是默认的

\n

json amazon-web-services grafana terraform terraform-provider-aws

2
推荐指数
1
解决办法
4409
查看次数

从列表 Terraform 中提取子网 ID

我有许多 Terraform 数据源和一个这样创建的本地块

data "aws_subnets" "subs" {
  for_each = toset(["a", "b", "c"])

  filter {
    name   = "vpc-id"
    values = [data.aws_vpc.vpc.id]
  }

  filter {
    name   = "availability-zone"
    values = ["${data.aws_region.region.name}${each.key}"]
  }
}

data "aws_vpc" "vpc" {
  default = false
}

data "aws_region" "region" {}

locals {
   ids = [for az in data.aws_subnets.subs : az.ids[1]]
}
Run Code Online (Sandbox Code Playgroud)

和一个输出块

output "main" {
    value = local.ids
}
Run Code Online (Sandbox Code Playgroud)

但是当我运行 terraform apply 时出现错误

The given key does not identify an element in this collection value: the given …

amazon-web-services terraform terraform-provider-aws terraform0.12+

2
推荐指数
1
解决办法
841
查看次数

Terraform - aws_acm_certificate_validation 问题

我正在尝试生成证书并使其通过 DNS 进行验证...一切似乎都有效,直到我使用资源“aws_acm_certificate_validation”时的最后步骤

\n

我的代码如下:

\n
# Create Certificate\nresource "aws_acm_certificate" "ic_cert" {\n    provider = aws.us-east-1\n    domain_name = aws_s3_bucket.ic_bucket_main.bucket\n    subject_alternative_names = [aws_s3_bucket.ic_bucket_redirect.bucket]\n    validation_method = "DNS"\n\n  tags = {\n    Billing = "company X"\n  }\n\n  lifecycle {\n    create_before_destroy = true\n  }\n}\n\n# Validate Certificate via DNS\n# get zone_id\n\ndata "aws_route53_zone" "selected" {\n    provider = aws.us-east-1\n    name = aws_s3_bucket.ic_bucket_main.bucket\n}\n\n# Generate DNS Records\nresource "aws_route53_record" "ic_DNS_validation" {\n    provider = aws.us-east-1\n    for_each = {\n        for dvo in aws_acm_certificate.ic_cert.domain_validation_options : dvo.domain_name => {\n            name    = dvo.resource_record_name\n            record = dvo.resource_record_value\n            type …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-route53 terraform terraform-provider-aws

2
推荐指数
1
解决办法
831
查看次数

AWS S3 存储桶的 Terraform 文件不断收到错误:提供程序配置无效

编辑:我现在已经修改了问题以显示整个 main.tf 文件。

\n

我有一个 Terraform 文件,该文件应该创建一个 AWS S3 存储桶,但每次运行时我不断收到的错误之一terraform plan是:

\n
\xe2\x94\x82 Error: Invalid provider configuration\n\xe2\x94\x82 Provider "registry.terraform.io/hashicorp/aws" requires explicit configuration. Add a provider block to the root module and configure the provider's required arguments as described in the provider documentation.\n
Run Code Online (Sandbox Code Playgroud)\n

main.tf 文件:

\n
terraform {\n    backend  "s3" {\n    region         = "us-east-1"\n    bucket         = "bucketname"\n    key            = "path/terraform.tfstate" \n    dynamodb_table = "tf-state-lock" \n    access_key = "<access_key>"\n    secret_key = "<secret_key"\n    }\n\n    required_providers {\n      aws = {\n        version …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 amazon-web-services terraform terraform-provider-aws

1
推荐指数
1
解决办法
9001
查看次数

如何在 terraform apply 中移动 terraform 资源

我在 terraform 模块中定义了自定义资源:

resource "aws_alb_target_group" "whatever" 
{
   ....
}
Run Code Online (Sandbox Code Playgroud)

事实证明whatever这个名字不好,我需要更新它。

经典的方法是登录到每个环境并执行terraform state mv,但是我有很多环境,并且没有自动化执行此类操作。

如何在不手动移动状态的情况下更改资源名称(仅通过编辑 terraform 模块和应用计划)?

amazon-web-services terraform terraform-provider-aws

1
推荐指数
1
解决办法
2129
查看次数

如何使用 Terraform 附加多个 AWS SQS 策略

我确实有 SQS 的默认策略,如下所示。参考了文档 - https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/sqs_queue_policy

如果需要 sns 订阅,我想将该策略附加到默认策略之上。

默认策略如下

  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sqs:SendMessage*"
      ],
      "Resource": [
        "${aws_sqs_queue.queue.arn}"
      ]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

附加政策如下

{
      "Sid": "topic-subscription-arn-test",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "SQS:SendMessage",
      "Resource": ["${aws_sqs_queue.queue.arn}"],
      "Condition": {
        "ArnLike": {
          "aws:SourceArn": "arn-test"
        }
      }
    }
Run Code Online (Sandbox Code Playgroud)

我刚刚尝试过,但政策被覆盖了。有什么想法可以使用 Terraform 附加策略吗?提前致谢。正在寻找这种方法的某种想法吗?可能有超过 2 个策略,因此我正在尝试附加这些策略。

amazon-sqs amazon-web-services terraform terraform-provider-aws

1
推荐指数
1
解决办法
3662
查看次数

Terraform 生命周期“此处不能使用变量”

当我尝试运行“Terraform init”时出现错误,我在这里缺少什么?

\n
\xe2\x94\x82 Error: Variables not allowed\n\xe2\x94\x82 \n\xe2\x94\x82   on ../../resources/s3-bucket/main.tf line 12, in resource "aws_s3_bucket" "s3-bucket":\n\xe2\x94\x82   12:     prevent_destroy = var.prevent_destroy\n\xe2\x94\x82 \n\xe2\x94\x82 Variables may not be used here.\n\xe2\x95\xb5\n\n\xe2\x95\xb7\n\xe2\x94\x82 Error: Unsuitable value type\n\xe2\x94\x82 \n\xe2\x94\x82   on ../../resources/s3-bucket/main.tf line 12, in resource "aws_s3_bucket" "s3-bucket":\n\xe2\x94\x82   12:     prevent_destroy = var.prevent_destroy\n\xe2\x94\x82 \n\xe2\x94\x82 Unsuitable value: value must be known\n
Run Code Online (Sandbox Code Playgroud)\n

资源:

\n
    resource "aws_s3_bucket" "s3-bucket" {\n      bucket                  = var.bucket_name\n      tags = {\n        Name        = var.tags_name\n        Environment = var.tags_environment\n      }\n      versioning { enabled = var.versioning }\n      lifecycle {\n …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 amazon-web-services terraform terraform-provider-aws

1
推荐指数
1
解决办法
2501
查看次数

导入密钥对后运行 terraform apply 时,terraform 想要销毁(替换)它,为什么以及这意味着什么?

我有以下地形配置:

resource "aws_key_pair" "default_key_pair" {
  key_name   = "default_key_pair"
  public_key = file("../../public_keys/default_key.pub")
}
Run Code Online (Sandbox Code Playgroud)

然后,我最初运行:

terraform import aws_key_pair.default_key_pair default_key_pair
Run Code Online (Sandbox Code Playgroud)

跟进的是

terraform apply
Run Code Online (Sandbox Code Playgroud)

然后它说

# aws_key_pair.default_key_pair must be replaced
-/+ resource "aws_key_pair" "default_key_pair" {
      ~ arn             = "arn:aws:ec2:place:id:key-pair/default_key_pair" -> (known after apply)
      ~ fingerprint     = "safasldjfjfljasfjasodjflasjfsdljfasdjf" -> (known after apply)
      ~ id              = "default_key_pair" -> (known after apply)
      + key_name_prefix = (known after apply)
      ~ key_pair_id     = "key-somethin-something" -> (known after apply)
      ~ key_type        = "ed25519" -> (known after apply)
      + public_key      = …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services terraform terraform-provider-aws

1
推荐指数
1
解决办法
202
查看次数