Terraform: Could not retrieve the list of available versions for provider
Terraformでプロバイダーが見つからない場合のエラー
概要
Terraformでプロバイダーの取得やバージョン解決に失敗した場合に発生するエラーです。プロバイダーの設定ミス、ネットワーク問題、バージョン制約の不整合などが原因です。
エラーメッセージ
Error: Could not retrieve the list of available versions for provider
hashicorp/aws: could not connect to registry.terraform.io
Error: Failed to query available provider packages
Could not retrieve the list of available versions for provider
Error: Incompatible provider version
Provider registry.terraform.io/hashicorp/aws v5.0.0 does not have a package
available for your current platform
原因
- ネットワーク問題: Terraform Registryへの接続失敗
- プロバイダー名の誤り: プロバイダー名のタイプミス
- バージョン制約: 存在しないバージョンを指定
- 初期化忘れ:
terraform initを実行していない - プロキシ設定: 企業ネットワークでのプロキシ未設定
- ロックファイルの不整合:
.terraform.lock.hclの問題
解決策
1. terraform init の実行
| |
2. プロバイダーの正しい設定
| |
3. バージョン制約の確認
| |
4. ロックファイルの更新
| |
5. プロキシ設定
| |
6. ミラー/キャッシュの設定
| |
| |
7. レガシープロバイダーからの移行
| |
8. サードパーティプロバイダー
| |
9. ローカルプロバイダー(開発用)
| |
10. 複数プロバイダーの設定
| |
11. デバッグ
| |
12. CI/CDでの設定
| |
よくあるプロバイダー
| プロバイダー | Source |
|---|---|
| AWS | hashicorp/aws |
| GCP | hashicorp/google |
| Azure | hashicorp/azurerm |
| Kubernetes | hashicorp/kubernetes |
| Docker | kreuzwerker/docker |
よくある間違い
terraform initを忘れてterraform planを実行- プロバイダー名の大文字小文字を間違える
- 存在しないバージョンを指定
- ロックファイルをgitignoreしてチームで不整合
関連エラー
参考リンク
Terraform の他のエラー
この記事は役に立ちましたか?