aws_launch_configuration:在 terraform apply 上“找不到资源”

Aud*_*lis 5 amazon-ecs terraform terraform-provider-aws terraform0.12+

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

\n

我正在使用 Terraform 构建复杂的云基础设施。这包括自动缩放的 ECS 服务。为了进行版本控制、记录并简化此基础设施的修改,我选择使用 Terraform。

\n

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

\n

然而,有一个问题我无法克服:

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

规划和应用此结果将导致:

\n
\xe2\x94\x82 Error: couldn't find resource\n\xe2\x94\x82\n\xe2\x94\x82   with aws_launch_configuration.ecs,\n\xe2\x94\x82   on 08_ecs.tf line 6, in resource "aws_launch_configuration" "ecs":\n\xe2\x94\x82    6: resource "aws_launch_configuration" "ecs" {\n\xe2\x94\x82\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n

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

\n

我尝试过的事情:

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

看来我是第一个遇到这个问题的人。

\n

版本:

\n
PS C:\\Users\\admin\\PycharmProjects\\my-project\\terraform> terraform version\nTerraform v1.2.1\non windows_amd64\n+ provider registry.terraform.io/hashicorp/aws v4.20.1\n+ provider registry.terraform.io/hashicorp/template v2.2.0\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n

有任何想法吗?

\n

小智 13

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

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

  • 正如目前所写的,您的答案尚不清楚。请[编辑]添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。您可以[在帮助中心](/help/how-to-answer)找到有关如何写出好的答案的更多信息。 (2认同)

qaz*_*rta 5

Not an actual answer, but you can try to adjust the logging level to see if it will give you some clues:

export TF_LOG="DEBUG"
export TF_LOG_PATH="tmp/terraform.log"
Run Code Online (Sandbox Code Playgroud)