Migre do provider v1.x para o v2.0
Mova uma configuração Terraform e o state dela do Azion Terraform Provider v1.x, na API v3, para o v2.0, na API v4.
Você pode mover uma configuração Terraform e o state dela do Azion Terraform Provider v1.x, que chama a Azion API v3, para o v2.0, que chama a Azion API v4. Para manter uma configuração na v1.x, consulte Azion Terraform Provider v1.x (API v3).
O provider v2.0 é uma versão major. Ele adiciona recursos e remove os descontinuados para corresponder à Azion API v4, então uma configuração v1.x não roda na v2.0 sem mudanças.
Pré-requisitos
- Terraform 1.0 ou posterior.
- Uma conta Azion com acesso à Azion API v4.
- Um personal token com as permissões de que a sua configuração precisa.
- Uma lista dos recursos que a sua configuração gerencia, com os que a v2.0 remove ou renomeia marcados. As tabelas em Mudanças de recursos na v2.0, nesta página, indicam esses recursos.
Faça backup da configuração e do state
A migração remove recursos do state do Terraform e os importa novamente com outros tipos. Guarde uma cópia dos arquivos de configuração e do state para poder voltar à configuração da v1.x.
Para fazer backup do projeto e do state:
O diretório ~/terraform-backup contém os arquivos de configuração e uma cópia do state.
Fixe o provider na v1.x
Cada linha de versões do provider chama uma versão da Azion API:
| Versão do provider | Versão da API | Status |
|---|---|---|
| 1.41.0 e anteriores | API v3 | Descontinuado |
| 2.0.0 e posteriores | API v4 | Atual |
A versão 1.41.0 é a última versão v1.x. Para continuar usando a v1.x enquanto prepara a migração, fixe o provider nessa versão:
O próximo terraform init mantém o provider na versão 1.41.0.
Mudanças de recursos na v2.0
O provider v2.0 remove, renomeia e adiciona recursos. As quatro tabelas abaixo listam cada recurso e data source da v1.x com a contraparte dele na v2.0. Para todos os argumentos de um recurso da v2.0, consulte Terraform Registry.
Recursos removidos
O provider v2.0 não tem recurso nem data source com estes nomes da v1.x:
| Nome na v1.x (API v3) | Substituto na v2.0 |
|---|---|
azion_domain | azion_workload e azion_workload_deployment |
azion_domains (data source) | azion_workloads (data source) |
azion_edge_application_origin | azion_connector |
azion_edge_applications_origins (data source) | azion_connectors (data source) |
Recursos renomeados
Estes recursos da v1.x mantêm a mesma função na v2.0 com outro nome. Os nomes da v2.0 seguem os nomes atuais dos produtos:
| Nome na v1.x (API v3) | Nome na v2.0 |
|---|---|
azion_edge_function | azion_function |
azion_edge_functions (data source) | azion_functions (data source) |
azion_edge_application_main_setting | azion_application_main_setting |
azion_edge_application_cache_setting | azion_application_cache_setting |
azion_edge_application_rule_engine | azion_application_rule_engine |
azion_edge_application_edge_functions_instance | azion_application_functions_instance |
azion_edge_firewall_main_setting | azion_firewall_main_setting |
azion_edge_firewall_edge_functions_instance | azion_firewall_functions_instance |
Recursos adicionados na v2.0
O provider v2.0 adiciona quatro recursos:
| Recurso | O que gerencia |
|---|---|
azion_workload | Workloads. Substitui azion_domain em conjunto com azion_workload_deployment. |
azion_workload_deployment | Deployments de workloads. |
azion_connector | Connectors. Substitui azion_edge_application_origin. |
azion_custom_page | Custom pages. O provider v1.x não tem recurso para elas. |
Recursos inalterados
Estes recursos mantêm os nomes da v1.x na v2.0:
| Recurso | O que gerencia |
|---|---|
azion_intelligent_dns_zone | Zonas DNS |
azion_intelligent_dns_record | Registros DNS |
azion_intelligent_dns_dnssec | Configurações de DNSSEC |
azion_network_list | Network lists |
azion_waf_rule_set | Conjuntos de regras do WAF |
azion_digital_certificate | Certificados digitais |
azion_environment_variable | Variáveis de ambiente |
Atualize o provider para a v2.0
A atualização exige duas mudanças: a restrição de versão na configuração e o provider instalado no projeto.
Para mudar a restrição de versão, defina version como 2.0.0 no bloco required_providers:
Para baixar o provider 2.0.0, execute:
O Terraform instala o provider 2.0.0 no projeto.
Remova os recursos da v1.x do state
Remova os recursos descontinuados da v1.x do state do Terraform antes de importá-los com os tipos da v2.0.
Para remover as entradas de domínio, origin e function do state do Terraform:
Substitua example pelo nome que cada recurso tem na sua configuração. O state deixa de listar esses recursos, que continuam na sua conta Azion.
Atualize os arquivos de configuração
Reescreva cada recurso removido ou renomeado nos seus arquivos .tf com o tipo da v2.0. Os pares abaixo mostram um bloco da v1.x e o bloco da v2.0 que o substitui.
Substitua um domínio por um workload
Na v1.x, um recurso azion_domain gerenciava todo o ciclo de vida do domínio. Na v2.0, azion_workload contém a definição e azion_workload_deployment contém o deployment. Para todos os argumentos dos dois recursos, consulte Recursos de Workloads.
A configuração da v1.x:
A configuração da v2.0:
Substitua uma origin por um connector
Na v1.x, uma origin pertencia a uma aplicação e recebia o edge_application_id dela. Na v2.0, um connector é um recurso independente. Para todos os argumentos de azion_connector, consulte Recursos de Connectors.
A configuração da v1.x:
A configuração da v2.0:
Renomeie um recurso de function
O recurso de function mantém os mesmos argumentos na v2.0: name, active, code e json_args. Só o tipo do recurso muda, de azion_edge_function para azion_function.
A configuração da v1.x:
A configuração da v2.0:
Migre uma configuração completa
Uma configuração com uma aplicação, uma origin, um domínio e uma function muda em quatro pontos: o main setting da aplicação recebe o nome da v2.0, um connector substitui a origin, um workload e um deployment substituem o domínio e a function recebe o tipo da v2.0. Para os recursos de aplicação, consulte Recursos de Applications.
A configuração da v1.x:
A configuração da v2.0:
Importe os recursos com os tipos da v2.0
Os recursos que você removeu do state continuam na sua conta Azion. Importe cada um com o tipo de recurso da v2.0 usando terraform import <type>.<name> <id>.
Para importar o workload, o connector e a function:
Substitua cada ID pelo ID do recurso na Azion API v4. Um recurso da API v3 pode ter outro ID na API v4, então consulte os IDs no Azion Console. O state lista os recursos importados com os tipos da v2.0.
Revise e aplique o plano
Um plano mostra o que o Terraform muda antes que qualquer mudança aconteça na sua conta.
Para visualizar as mudanças, execute:
Na saída do plano, confirme três pontos:
- Nenhum recurso que você espera manter é destruído.
- Os recursos que você espera criar aparecem no plano.
- Os atributos correspondem aos argumentos da v2.0 que você definiu na configuração.
Para aplicar as mudanças, execute o comando primeiro em um ambiente de teste:
O Terraform gerencia os recursos pelo provider 2.0.0 e pela Azion API v4. Para erros durante a migração, consulte Solucionar problemas do Terraform Provider.
Faça a limpeza após a migração
Depois do apply, conclua a migração no seu projeto:
- Confirme que os recursos migrados funcionam na sua conta Azion.
- Atualize os pipelines de CI/CD que executam o Terraform.
- Remova o código da v1.x que a configuração não usa mais.
- Atualize a documentação do projeto e informe a sua equipe sobre a mudança.
- Arquive os backups quando a migração estiver confirmada.
O projeto roda no provider v2.0, sem nenhum recurso da v1.x na configuração ou no state.