Solucionar problemas do Terraform Provider
Corrija erros do Azion Terraform Provider sobre o personal token, as versões do provider, tipos de recurso removidos, o state e imports.
Cada seção desta página parte de um erro que o Terraform exibe enquanto trabalha com o Azion Terraform Provider e indica a causa e a correção. Os erros sobre o personal token e a versão do provider vêm primeiro. Em seguida vêm os erros de uma migração para o provider v2.0: tipos de recurso removidos, o state e imports.
O Terraform falha com personal token is required
Um comando do Terraform para antes que o provider chame a Azion API, com este erro:
O provider não encontrou nenhum personal token. Ele lê o token da variável de ambiente AZION_API_TOKEN ou do argumento api_token.
- Defina a variável de ambiente: exporte
AZION_API_TOKENno terminal que executa o Terraform e deixe o blocoprovider "azion"vazio. - Passe o token no argumento api_token: declare uma variável sensível
api_token, defina-a emterraform.tfvarse passevar.api_tokenao provider. Para os arquivos, consulte Informe o seu personal token. - Crie um personal token: o token precisa das permissões que os seus recursos exigem. Para mais informações, consulte Tokens pessoais.
Para definir a variável, substitua [TOKEN VALUE] pelo seu personal token e execute este comando no terminal que executa o Terraform:
O provider lê o token, e o comando não para mais na configuração do provider.
O Terraform falha com no compatible versions
O Terraform não encontra nenhuma versão do provider da Azion que possa usar e para com este erro:
O Azion Terraform Provider precisa do Terraform 1.0 ou posterior. A versão do Terraform Core na sua máquina é a primeira coisa a verificar.
- Verifique a versão do Terraform:
terraform versionexibe a versão do Terraform Core. - Instale uma versão posterior do Terraform: quando a versão for anterior à 1.0, instale uma posterior. Para a instalação, consulte Instale o Terraform.
Para exibir a versão do Terraform Core:
terraform version informa a versão 1.0 ou posterior, que o provider precisa.
O Terraform falha com Failed to query available provider packages
O Terraform não consegue listar as versões do provider da Azion e para com este erro:
O Terraform localiza o provider pela source e pela versão do bloco required_providers. A source do Azion Terraform Provider é aziontech/azion.
- Verifique a source e a versão: defina
sourcecomoaziontech/azioneversioncomo a versão do provider que você usa, como2.0.0. - Atualize o provider instalado:
terraform init -upgradebaixa a versão que o bloco define. Para a atualização completa para a v2.0, consulte Atualize o provider para a v2.0.
Este bloco required_providers define a source e fixa a versão 2.0.0 do provider:
Para baixar a versão do provider que o bloco define, execute este comando no diretório do projeto:
O Terraform instala no projeto a versão do provider que o bloco define, como 2.0.0.
O Terraform falha com resource not found
Um comando do Terraform falha em um recurso da configuração com este erro:
A configuração faz referência a um recurso que a Azion API v4 não tem. O provider v2.0 funciona apenas com a API v4, e a API v4 removeu ou renomeou alguns recursos da API v3.
- Verifique o recurso na sua conta: procure o recurso no Azion Console. A referência da Azion API lista os recursos que a API v4 oferece.
- Renomeie os recursos da v1.x: um tipo de recurso do provider v1.x pode ter outro nome na v2.0 ou não ter correspondente. Para cada nome da v1.x e o seu substituto, consulte Mudanças de recursos na v2.0.
- Mantenha o provider v1.x em uma conta da API v3: uma conta na API v3 usa o provider v1.x. Para mais informações, consulte Azion Terraform Provider v1.x (API v3).
A configuração nomeia apenas recursos que existem na API v4, e o erro não aparece mais.
O Terraform informa Invalid resource type para azion_domain
Uma configuração escrita para o provider v1.x falha no provider v2.0 com este erro:
O provider v2.0 removeu o recurso azion_domain. Um workload e o seu deployment assumem o papel dele.
- Substitua o domínio por um workload: reescreva o bloco como um recurso
azion_workloade um recursoazion_workload_deployment. Para o bloco da v1.x e os blocos que o substituem, consulte Substitua um domínio por um workload. - Consulte os tipos de recurso do provider: o Terraform Registry documenta todos os tipos de recurso e argumentos que o provider aceita.
A configuração usa apenas tipos de recurso que o provider v2.0 aceita.
O Terraform falha com Error refreshing state
Durante uma migração para o provider v2.0, o Terraform para no recurso de origin da v1.x com este erro:
O state ainda lista um recurso que o provider não encontra mais. O provider v2.0 substitui o recurso de origin da v1.x por azion_connector.
- Remova o recurso do state:
terraform state rmtira o recurso do state e mantém o objeto na sua conta. Para os comandos que removem os recursos de domínio, origin e function da v1.x, consulte Remova os recursos da v1.x do state. - Gerencie a origin como um connector: declare um recurso
azion_connectorpara a origin. Para o bloco da v1.x e o bloco que o substitui, consulte Substitua uma origin por um connector.
O state não lista mais o recurso de origin da v1.x, e o Terraform atualiza o state sem o erro.
terraform import falha com Cannot import non-existent remote object
terraform import para com este erro:
Não existe na Azion API v4 nenhum objeto com o ID que você passou. Um recurso da API v3 pode ter outro ID na API v4.
- Consulte o ID da API v4: encontre o ID do recurso no Azion Console.
- Importe com o ID da API v4: execute
terraform import <type>.<name> <id>com o ID do Azion Console. Para o import de um workload, de um connector e de uma function, consulte Importe os recursos com os tipos da v2.0.
O state lista o recurso importado com o tipo da v2.0.