Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure Developer CLI (azd) admite varios proveedores de infraestructuras como código (IaC), entre los que se incluyen:
De forma predeterminada, azd supone Bicep como proveedor de IaC. Consulte el artículo Comparación de Terraform y Bicep para obtener ayuda sobre cómo 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
- Instale y configure Terraform.
- Instale CLI de Azure (v 2.38.0+).
- Revise el diagrama de arquitectura y los recursos de Azure que implemente en la plantilla Node.js o Python Terraform.
Importante
Las implementaciones de Terraform requieren iniciar sesión en la CLI de Azure incluso si se usa azd. El proveedor de Terraform azurerm se autentica mediante CLI de Azure de forma predeterminada y no lee tokens de la caché de credenciales de azd. Si solo ejecutas azd auth login, azd up falla en el paso de aprovisionamiento con ERROR: Please run 'az login' to setup account. Consulte Autenticación en Azure para obtener el flujo de inicio de sesión recomendado.
Autenticación en Azure
Dado que Terraform usa CLI de Azure para autenticarse, debe haber iniciado sesión tanto en azd como en az antes de ejecutar azd up. Puede hacerlo de una de estas dos maneras.
Opción 1: Iniciar sesión una vez con CLI de Azure (recomendado)
Configure azd para delegar la autenticación en CLI de Azure. Esta configuración le permite iniciar sesión una vez con az login y usar las mismas credenciales para ambas herramientas.
azd config set auth.useAzCliAuth true
az login
Si trabaja con varios inquilinos, incluya el --tenant parámetro :
az login --tenant <tenant-id>
Opción 2: Iniciar sesión en cada herramienta por separado
Si prefiere mantener separadas la autenticación de azd y la de CLI de Azure, inicie sesión en cada herramienta con su propio comando:
azd auth login
az login
Debe actualizar ambas sesiones cuando expire cualquiera de los tokens.
Configuración de Terraform como proveedor de IaC
Abra el archivo
azure.yamlque se encuentra en la raíz de su proyecto y asegúrese de que tiene las siguientes líneas para sobrescribir el valor predeterminado, que es Bicep.infra: provider: terraformAgregue todos los archivos
.tfal directorioinfraque se encuentra en la raíz del proyecto.Ejecute el
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 que ejecute 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 estado 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 estatal
- 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.jsona 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.tfque se encuentra en la carpetainfrapara 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_groupEjecute el siguiente comando
azdsegún el flujo de trabajo habitual. Cuando se detecta el estado remoto,azdinicializa 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 CLI de Azure.
- Para obtener más información sobre el estado remoto, consulte store Terraform state in Azure Storage.
- Plantilla: React Web App con Node.js API y MongoDB (Terraform) en Azure
Pasos siguientes
Preguntas más frecuentes sobre la CLI para desarrolladores de Azure