AppleシリコンM1, M2 MacでTerraformコマンドが止まる問題

Terraform Uncategorized

僕のパソコンが M2 Mac なのですが、Terraform の勉強をしていると頻繁に応答が返ってこなくなる不具合があったので解決方法をまとめました。

エラー内容

$ terraform plan$ 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: Unrecognized
│ remote plugin message: 
│ 
│ This usually means that the plugin is either invalid or simply
│ needs to be recompiled to support the latest protocol...

謎なのはコードは全く同じなのに成功するときと失敗するときがあることでした…。

解決方法

環境変数を設定することで解決しました!
使っているシェルが zsh なら .zshrc に、bash なら .bash_profile に以下を追記します。

export GODEBUG=asyncpreemptoff=1

使用中のシェルに適用する際は
`$ source ~/.zshrc` または `$ source ~/.bash_profile` を忘れずに

解説

正直、よくわかってません…。
Terraform に使われている Go に バージョン1.14 から 導入された非同期プリエンプションが、
Appleシリコンと相性が良くないみたいなので、先ほどの設定を追記することで非同期プリエンプション機能をオフにしています。

参考資料

コメント

タイトルとURLをコピーしました