terraform plan -var-file=xx
给了我
无法实例化提供程序“ aws”以获取架构:与插件不兼容的API版本。插件版本:4,客户端版本:[5]
terraform init
没有任何问题。
Initializing the backend...
Initializing provider plugins...
Terraform has been successfully initialized!
You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.
If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.
任何人都知道这里发生了什么,我该如何解决。
terraform -v
Terraform v0.12.0-dev
+ provider.aws v1.2.0
答案 0 :(得分:2)
如果您在项目中将Terraform的版本在0.11到0.12之间进行了更改,那么您已经下载了0.11的插件,并且现在使用的是0.12。
在项目根目录中, $ rm -rf .terraform $ terraform init
,它将实际下载Terraform 12的插件版本。
Initializing provider plugins...
- Checking for available provider plugins...
- Downloading plugin for provider "aws" (terraform-providers/aws) 2.13.0...
- ```
答案 1 :(得分:0)
Terraform v0.12中的新语言功能要求对Terraform用于与提供程序插件交互的协议进行一些更改。通过这些更改,Terraform CLI可以访问每个提供程序的资源类型架构,从而获得更多有用的与验证相关的错误消息和更可预测的行为。 但是,这意味着不能使用v0.12之前构建的提供程序版本。
建议您升级到您使用的所有提供程序的最新版本,并确保在升级到Terraform v0.12之前先使用terraform计划,因为这可以通过一次只更改一个组件来降低风险,尤其是在您将采用提供商的新主要版本,该提供商可能会对其自身进行重大更改。
您可以在Terraform v0.12 Documentation here中找到更多信息。 希望会有所帮助。