【问题标题】:Terraform lists resource as provider during initTerraform 在初始化期间将资源列为提供者
【发布时间】:2019-06-17 04:41:43
【问题描述】:

在创建自定义提供程序时,我无法init 我的资源。

我的提供者称为shell。它有一个名为environment 的资源。我已将我的提供程序编译成二进制文件。但是当我在上面运行terraform init 时,它会抛出一个错误,即找不到提供程序environment

Provider "environment" not available for installation.

A provider named "environment" could not be found in the official 
repository.

为什么将资源视为提供者?

terraform providers 的输出还将资源列为提供者。

$ terraform providers

.
├── provider.environment
└── provider.shell

编辑:

添加资源的调用方式。

provider "shell" {
  ...
}

resource "environment" "env" {
  ...
}

【问题讨论】:

  • 您能否编辑您的问题以显示包含资源定义的 Terraform 代码?

标签: terraform


【解决方案1】:

在 Terraform 中,所有资源都以其提供者名称和下划线为前缀。

EC2 实例资源为aws_instance,而Azure 实例为azurerm_virtual_machine 等。

所以在你的情况下,你想调用你的资源shell_environment

【讨论】:

  • 这是有原因的吗?
  • 它以合理的方式有效地命名资源。因此,如果您有 2 个具有 instance 资源的提供者,那么它们都可以与 foo_instancebar_instance 同时使用。
猜你喜欢
  • 2021-07-17
  • 2018-07-30
  • 2018-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-14
相关资源
最近更新 更多