【问题标题】:Reference to undeclared resource in Terraform对 Terraform 中未声明资源的引用
【发布时间】:2021-09-17 01:07:39
【问题描述】:

我正在尝试使用 terraform 在 aws 上运行测试服务器。当我运行 terraform apply 时,它会抛出一个错误,提示 Reference to undeclared resource。下面是我在 terraform 中的测试服务器文件。

测试服务器.tf

module "test-server" {
  source = "./node-server"
  ami-id = "Here ive given my ami_id"
  key-pair = aws_key_pair.microservices-demo-key.key_name
  name = "Test Server"
}

下面是我的密钥对文件代码。

密钥对

resource "aws_key_pair" "microservcies-demo-key" {
  key_name = "microservices-demo-key"
  public_key = file("./microservices_demo.pem")
}

terraform 抛出的错误详情:

错误:引用未声明的资源

在 test-server.tf 第 4 行,在模块“test-server”中:

4:密钥对 = aws_key_pair.microservices-demo-key.key_name

未在根模块中声明托管资源“aws_key_pair”“microservices-demo-key”。

虽然我声明了变量。它仍然抛出错误。 这是目录的图像。

【问题讨论】:

  • 你是先创建密钥对,后测试服务器?您需要先创建第一个,然后才能创建第二个。在模块外声明 Aws 密钥对。
  • key-pairs 是否在具有.tf 扩展名的文件中?该文件是否与test-server.tf 文件位于同一文件夹中?
  • @markB 是的,key-pairs 具有 .tf 扩展名。是的,该文件与 server.tf 位于同一文件夹中
  • @Lucasz 我将编辑问题并上传我的目录图片以清楚起见。请看一下。

标签: amazon-web-services terraform


【解决方案1】:

这里有错别字:

resource "aws_key_pair" "microservcies-demo-key" {

将此名称修复为microservices-demo-key,使其与您在test-server.tf 中引用的名称匹配。

【讨论】:

    猜你喜欢
    • 2021-05-31
    • 2021-09-20
    • 2020-06-30
    • 2020-01-10
    • 2019-12-03
    • 1970-01-01
    • 1970-01-01
    • 2021-07-24
    • 2021-07-14
    相关资源
    最近更新 更多