首页 > 解决方案 > Terraform 在初始化期间将资源列为提供者

问题描述

在创建自定义提供程序时,我无法使用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 中,所有资源都以其提供者名称和下划线为前缀。

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

因此,在您的情况下,您想调用您的资源shell_environment


推荐阅读