Terraform Сообщение об ошибке при выполнении terraform: Несовместимая версия API с плагином. Версия плагина: 4, Версии клиента: [5] - PullRequest
1 голос
/ 12 апреля 2019

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

Ответы [ 2 ]

2 голосов
/ 04 июня 2019

Если вы изменили версии 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...
 - ```
2 голосов
/ 12 апреля 2019

Новые языковые функции в Terraform v0.12 потребовали некоторых изменений в протоколе, который Terraform использует для взаимодействия с плагинами провайдера. Эти изменения предоставляют Terraform CLI доступ к схемам типов ресурсов каждого поставщика, что позволяет получить более полезные сообщения об ошибках, связанных с проверкой, и более предсказуемое поведение. Однако это означает, что выпуски провайдера, созданные до версии v0.12, использовать нельзя.

Рекомендуется обновить до последних версий всех используемых вами провайдеров и убедиться, что план terraform работает с ними перед обновлением до Terraform v0.12, поскольку это позволяет снизить риск, изменяя только один компонент за раз, особенно если вы будете принимать новую основную версию провайдера, в которой могут быть серьезные изменения.

Более подробную информацию вы можете найти в документации Terraform v0.12 здесь . Надеюсь, это поможет.

...