Compartir a través de


Uso de Terraform como una herramienta de código como herramienta de código para la CLI para desarrolladores de Azure

La CLI para desarrolladores de Azure (azd) admite varias infraestructuras como proveedores de 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. Obtenga más información sobre la compatibilidad con características alfa y beta en la página de estrategia de versiones y versiones de características.

Requisitos previos

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 de la documentación oficial de Terraform.

Configuración de Terraform como proveedor de IaC

  1. Abra el azure.yaml archivo 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
    
  2. Agregue todos los .tf archivos al infra directorio que se encuentra en la raíz del proyecto.

  3. 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 debido a almacenar el estado localmente

Habilitación del estado remoto

  1. Asegúrese de configurar una cuenta de almacenamiento de estado remoto.

  2. Agregue un nuevo archivo llamado provider.conf.json en la infra carpeta .

    {
        "storage_account_name": "${RS_STORAGE_ACCOUNT}",
        "container_name": "${RS_CONTAINER_NAME}",
        "key": "azd/azdremotetest.tfstate",
        "resource_group_name": "${RS_RESOURCE_GROUP}"
    }
    
  3. Actualización provider.tf que se encuentra en la infra carpeta para establecer el back-end en remoto

    # Configure the Azure Provider
    terraform {
      required_version = ">= 1.1.7, < 2.0.0"
      backend "azurerm" {
      }
    
  4. Ejecute azd env set <key> <value> para agregar la configuración en el .env archivo. 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
    
  5. Ejecute el siguiente azd comando según el flujo de trabajo habitual. Cuando se detecta el estado remoto, azd inicializa Terraform con la configuración de back-end configurada.

  6. Para compartir el entorno con compañeros de equipo, asegúrese de que se 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 en el .env archivo.

Consulte también

Pasos siguientes