Administrar variables de entorno

Las variables de entorno influyen en cómo se aprovisionan e implementan los recursos en Azure. Esto resulta especialmente útil cuando se ejecuta azd en escenarios de flujo de trabajo de CI/CD.

Sustitución de parámetros de entrada

Se puede hacer referencia a las variables de entorno en archivos de parámetros (*.parameters.json para Bicep, *.tfvars.json para Terraform) como parte del aprovisionamiento. Cuando se encuentra una sintaxis de sustitución de variables de entorno, azd sustituye automáticamente la referencia por el valor de variable de entorno real establecido. La sustitución también se produce para determinadas opciones de configuración en azure.yaml (propiedades documentadas con "Admite sustitución de variables de entorno" y en archivos de configuración de implementación, como manifiestos de implementación para aks.

Ejemplo de sustitución de parámetros de entrada (Bicep)

Supongamos que tiene establecida la variable de entorno AZURE_LOCATION:

export AZURE_LOCATION=westus3
$env:AZURE_LOCATION='westus3'

En el archivo main.parameters.json, puede hacer referencia a AZURE_LOCATION y permitir la sustitución del entorno mediante la sintaxis siguiente:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "location": {
      "value": "${AZURE_LOCATION}"
    }
  }
}

Archivo .env específico del entorno

Las salidas para el aprovisionamiento de infraestructura se almacenan automáticamente como variables de entorno en un archivo .env, ubicado en .azure/<environment name>/.env. Esta configuración permite que una aplicación local o scripts de implementación usen variables almacenadas en el archivo .env para hacer referencia a recursos hospedados en Azure si es necesario. Para ver estas salidas, ejecute azd env get-valueso azd env get-values --output json para la salida JSON.

Variables de entorno proporcionadas por azd

A continuación se muestran las variables que proporciona azdautomáticamente:

Nombre Descripción Ejemplos Cuando está disponible
AZURE_ENV_NAME Nombre del entorno en uso. todo-app-dev Cuando se crea un entorno (después de ejecutar azd init o azd env new, por ejemplo).
AZURE_LOCATION Ubicación del entorno en uso. eastus2 Justo antes de que se aprovisione un entorno por primera vez.
AZURE_PRINCIPAL_ID Entidad de servicio o usuario en ejecución. 925cff12-ffff-4e9f-9580-8c06239dcaa4 Se determina automáticamente durante el aprovisionamiento (efímero).
AZURE_SUBSCRIPTION_ID Suscripción de destino. 925cff12-ffff-4e9f-9580-8c06239dcaa4 Justo antes de que se aprovisione un entorno por primera vez.
SERVICE_<service>_IMAGE_NAME Nombre completo de la imagen de contenedor publicada en Azure Container Registry para los servicios de aplicaciones de contenedor. todoapp/web-dev:azdev-deploy-1664988805 Después de una publicación correcta de una imagen containerapp

Variables de entorno proporcionadas por el usuario

Las variables proporcionadas por el usuario se pueden declarar como un parámetro de salida de infraestructura (que se almacena automáticamente en .env) en el archivo main.bicep o las establece directamente el usuario en el entorno (azd env set <key> <value>). azd lee los valores como configuración y actúa de forma diferente.

Nombre Descripción Ejemplos Efectos
AZURE_AKS_CLUSTER_NAME Nombre del clúster de Azure Kubernetes Service de destino. aks-my-cluster Propiedad necesaria para la implementación de un servicio aks.
AZURE_RESOURCE_GROUP Grupo de recursos específico de destino. Tipo cadena. rg-todo-dev azd no realizará la detección de grupos de recursos y, en su lugar, hará referencia a este grupo de recursos. azd tampoco controla los archivos de configuración de IaC creados, por lo que es posible que se necesiten cambios en los archivos IaC.
AZURE_CONTAINER_REGISTRY_ENDPOINT Punto de conexión de Azure Container Registry para publicar la imagen de docker. Tipo cadena. myexampleacr.azurecr.io Propiedad necesaria para la implementación de un servicio containerapp o aks.
SERVICE_<service>_ENDPOINTS Puntos de conexión del servicio en particular. Tipo array (bicep) / list-equivalent (terraform). ['endpoint1', 'endpoint2'] Establece los puntos de conexión públicos para el servicio determinado que usará azd para mostrar. De forma predeterminada, azd detecta los nombres de host asignados automáticamente para un host determinado, como *.azurewebsites.net para appservice.

Habilitación del modo de demostración

azd incluye un modo de demostración que oculta el identificador de suscripción en la salida de la consola. Esta característica es útil para escenarios en los que desea mostrar o presentar comandos azd en una configuración pública.

El modo de demostración presenta la variable de entorno: AZD_DEMO_MODE. Para habilitar el modo de demostración, ejecute:

export AZD_DEMO_MODE true

Si desea que el modo de demostración persista en los reinicios, también puede ejecutar:

setx AZD_DEMO_MODE true

o en PowerShell:

$env:AZD_DEMO_MODE="true"