Uso de Terraform como una herramienta de infraestructura como código para Azure Developer CLI
Azure Developer CLI (azd
) admite varios proveedores de infraestructuras como código (IaC), entre los que se incluyen:
De forma predeterminada, azd
se supone que Bicep es el proveedor de IaC. Consulte el artículo Comparación de Terraform y Bicep para obtener ayuda para decidir qué proveedor de IaC es el mejor para su proyecto.
Nota:
Terraform todavía está en versión beta. Consulte más información sobre la compatibilidad con características alfa y beta en la página de estrategias de versiones y control de versiones de características.
Requisitos previos
- Instalación y configuración de Terraform
- Instalación e inicio de sesión en la CLI de Azure (v 2.38.0+)
- Revise el diagrama de arquitectura y los recursos de Azure que implementará en la plantilla Node.js o Python Terraform.
Nota:
Aunque azd
no depende de un inicio de sesión de la CLI de Azure, Terraform requiere la CLI de Azure. Obtenga más información sobre este requisito en la documentación oficial de Terraform.
Configuración de Terraform como proveedor de IaC
Abra el archivo
azure.yaml
que se encuentra en la raíz del proyecto y asegúrese de que tiene las siguientes líneas para invalidar el valor predeterminado, que es Bicep:infra: provider: terraform
Agregue todos los archivos
.tf
al directorioinfra
que se encuentra en la raíz del proyecto.Ejecute
azd up
.
Nota:
Consulte estas dos plantillas azd con Terraform como proveedor de IaC: Node.js y Terraform y Python y Terraform.
azd pipeline config
para Terraform
Terraform almacena el estado sobre la infraestructura administrada y la configuración. Debido a este archivo de estado, debe habilitar el estado remoto antes de ejecutar azd pipeline config
para configurar la canalización de implementación en GitHub.
De forma predeterminada, azd
supone el uso del archivo de estado local. Si ejecutó azd up
antes de habilitar el estado remoto, debe ejecutar azd down
y cambiar al archivo de estado remoto.
Estado local frente a remoto
Terraform usa datos de estado persistentes para realizar un seguimiento de los recursos que administra.
Escenarios para habilitar el estado remoto:
- Para permitir el acceso compartido a los datos de estado y permitir que varias personas trabajen juntas en esa colección de recursos de infraestructura
- Para evitar exponer información confidencial incluida en el archivo de estado
- Para reducir la posibilidad de eliminación involuntaria por almacenar el estado localmente
Habilitación del estado remoto
Asegúrese de configurar una cuenta de almacenamiento de estado remoto.
Agregue un nuevo archivo llamado
provider.conf.json
a la carpetainfra
.{ "storage_account_name": "${RS_STORAGE_ACCOUNT}", "container_name": "${RS_CONTAINER_NAME}", "key": "azd/azdremotetest.tfstate", "resource_group_name": "${RS_RESOURCE_GROUP}" }
Actualice el
provider.tf
que se encuentra en la carpetainfra
para establecer el back-end en remoto# Configure the Azure Provider terraform { required_version = ">= 1.1.7, < 2.0.0" backend "azurerm" { }
Ejecute
azd env set <key> <value>
para agregar la configuración al archivo.env
. Por ejemplo:azd env set RS_STORAGE_ACCOUNT your_storage_account_name azd env set RS_CONTAINER_NAME your_terraform_container_name azd env set RS_RESOURCE_GROUP your_storage_account_resource_group
Ejecute el siguiente comando
azd
según el flujo de trabajo habitual. Cuando se detecta el estado remoto,azd
inicializa Terraform con la configuración de back-end configurada.Para compartir el entorno con compañeros de equipo, asegúrese de que ejecutan
azd env refresh -e <environmentName>
para actualizar la configuración del entorno en el sistema local y realice el paso 4 para agregar la configuración al archivo.env
.
Consulte también
- Obtenga más información sobre la dependencia de Terraform en la CLI de Azure.
- Para obtener más información sobre el estado remoto, consulte Almacenamiento del estado de Terraform en Azure Storage.
- Plantilla: Aplicación web de React con la API Node.js y MongoDB (Terraform) en Azure