エラー内容
╷
│ Error: Failed to query available provider packages
│
│ Could not retrieve the list of available versions for provider hashicorp/newrelic: provider registry registry.terraform.io does not have a provider named
│ registry.terraform.io/hashicorp/newrelic
│
│ Did you intend to use newrelic/newrelic? If so, you must specify that source address in each module which requires that provider. To see which modules are currently depending on
│ hashicorp/newrelic, run the following command:
│ terraform providers
╵
原因
required_providers
を省略した場合、registry.terraform.io/hashicorp/
を参照するそうです。
そのため、New Relicのプロバイダーとしてnewrelic/newrelic
を使いたくても正しく指定されていない場合はhashicorp/newrelic
が使われます。
以下のようなディレクトリ構造でmain.tf
にrequired_providers
が指定されていれもmain.tf
から読み込まれているexample.tf
には影響が与えられません。
.
├── environment
│ └── dev
│ └── main.tf : ../../modules/example.tfを読み込んでいる。
└── modules
└── example.tf
対応
modules ディレクトリに required_providers
を記述したファイルを配置する。
example.tf にrequired_providers
を追記しても構わない。
terraform {
required_providers {
newrelic = {
source = "newrelic/newrelic"
}
}
}