はじめに
M1 MacでTerraformを実行すると、エラーが発生したり、発生しなかったりと原因が分からず、非常に困っていました。
特に、同じ環境で何度か試してもうまく動く時と動かない時があり、再現性が低いため原因特定が難しかったです。
そんな状況の中、解決策を見つけることができたので、同じように困っている方の参考になればと思い、この記事を書くことにしました。
発生したエラー
M1 MacでTerraformを実行した際に、以下のエラーが発生しました。
~/Desktop/terraform-aws terraform apply
╷
│ Error: Failed to load plugin schemas
│
│ Error while loading schemas for plugin components: Failed to obtain provider
│ schema: Could not load the schema for provider
│ registry.terraform.io/hashicorp/aws: failed to instantiate provider
│ "registry.terraform.io/hashicorp/aws" to obtain schema: timeout while waiting
│ for plugin to start..
╵
解決方法
結論から申し上げますと、以下の環境変数を設定することでエラーが解消されました。
export GODEBUG=asyncpreemptoff=1
zshを利用している場合の設定方法
以下の手順で環境変数を設定してください。
-
~/.zshrc
に以下の1行を追加します。export GODEBUG=asyncpreemptoff=1
-
変更を適用するために、以下のコマンドを実行します。
source ~/.zshrc
まとめ
M1 Mac環境でTerraform実行時に「Failed to load plugin schemas」エラーが発生した場合、GODEBUG=asyncpreemptoff=1
を環境変数に設定することで解決できます。
TerraformがM1 Macのネイティブ環境で動作する際に、Goランタイムの非同期プリエンプション機能が影響を及ぼすことがあるため、この設定を行うことで安定して動作するようになると思っています。
同様の問題に遭遇した場合は、ぜひ試してみてください!
参考文献