【问题标题】:aws_launch_configuration: "couldn't find resource" on terraform applyaws_launch_configuration:在 terraform 上应用“无法找到资源”
【发布时间】:2022-08-09 11:13:25
【问题描述】:

我是 Terraform 的新手。我已经尝试了我所知道的一切尝试。在这种情况下,谷歌没有提供帮助。

我正在使用 Terraform 构建复杂的云基础架构。这包括一个自动扩展的 ECS 服务。为了对这个基础设施进行版本控制、记录和简化修改,我选择使用 Terraform。

我正在从非常非常多的东西中创造两件东西,我已经克服了很多问题并学到了很多东西。

但是,有一个问题我无法克服:

resource \"aws_launch_configuration\" \"ecs\" {
  depends_on = [aws_security_group.ecs, aws_iam_instance_profile.ecs, aws_key_pair.production]
  name_prefix                 = \"${var.ecs_cluster_name}-cluster-\"
  image_id                    = lookup(var.amis, \"us-east-2\")
  instance_type               = \"t2.micro\"
  security_groups             = [aws_security_group.ecs.id]
  iam_instance_profile        = aws_iam_instance_profile.ecs.name
  key_name                    = aws_key_pair.production.key_name
  associate_public_ip_address = true
  user_data                   = \"#!/bin/bash\\necho ECS_CLUSTER=\'${var.ecs_cluster_name}-cluster\' > /etc/ecs/ecs.config\"
  provider = aws.us-east-2

  lifecycle {
    create_before_destroy = true
  }
}

计划和应用此结果:

│ Error: couldn\'t find resource
│
│   with aws_launch_configuration.ecs,
│   on 08_ecs.tf line 6, in resource \"aws_launch_configuration\" \"ecs\":
│    6: resource \"aws_launch_configuration\" \"ecs\" {
│

这是什么意思?找不到资源是什么意思?

这不是我第一次遇到此错误消息,但我以前能够以某种方式解决它。在这种特殊情况下,我不知所措,因为我尝试过的任何方法都不起作用。

我尝试过的事情:

  • 指定depends_on
  • aws_launch_configuration 上咨询了 Terraform 文档
  • 谷歌搜索错误消息(没有与此确切情况相关的结果)

好像我是第一个遇到这个问题的人。

版本:

PS C:\\Users\\admin\\PycharmProjects\\my-project\\terraform> terraform version
Terraform v1.2.1
on windows_amd64
+ provider registry.terraform.io/hashicorp/aws v4.20.1
+ provider registry.terraform.io/hashicorp/template v2.2.0

老实说,我觉得 Terraform 没有就错误提供非常有用的反馈。类似于回溯的东西会很好,但我得到的只是“找不到资源”,突出显示 \"resource \"aws_launch_configuration\" \"ecs\" { 的“{\”部分

有任何想法吗?

  • 错误发生在第一次创建资源时?也许您首先创建了资源,然后使用 aws 控制台手动删除,然后尝试从 terraform 再次使用它?
  • 那是可能的。我将如何从中恢复?
  • 如果可能的话,您可以从状态文件中获取rm aws_launch_configuration.ecs
  • 它尚未创建:No matching objects found. To view the available instances, use \"terraform state list\". Please modify the address to reference a specific instance.
  • @Audiopolis,“老实说,我觉得 Terraform 没有就错误提供非常有用的反馈。类似于回溯的东西会很好”-您是否尝试过调整日志记录级别?例如。如此处所述:suse.com/support/kb/doc/?id=000020022

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


【解决方案1】:

我正在尝试同样的问题。我可以通过更改 AMI 来解决它。就我而言,这可以解决所有问题。它没有指定错误,但足以成功应用资源。

通过将TF_LOG 环境变量设置为“DEBUG”,您可以看到AWS 在尝试描述指定的AMI 时返回一个错误请求。感谢@qaziqarta 提供此提示。

【讨论】:

  • 我不确定我应该更改哪个 AMI。没有与我的启动配置关联的 AMI。您是指通过aws_iam_instance_profile 关联的aws_iam_role 吗?如果是这样,您以什么方式更改它?
  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
  • 向@user19642959 道歉。作为菜鸟,我将“AMI”阅读并理解为“IAM”,因此不明白您的意思。将 AMI 更改为有效的确实解决了问题。
【解决方案2】:

不是一个实际的答案,但你可以尝试adjust the logging level 看看它是否会给你一些线索:

export TF_LOG="DEBUG"
export TF_LOG_PATH="tmp/terraform.log"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-26
    • 2020-05-02
    • 1970-01-01
    • 1970-01-01
    • 2019-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多