Administrar variables de entorno

Las variables de entorno se pueden configurar para influir 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 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: sustitución de parámetros de entrada (Bicep)

Supongamos que tiene establecida la variable AZURE_LOCATION de entorno:

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

En el main.parameters.json archivo, puede hacer referencia AZURE_LOCATION a 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 específico .env del entorno

Las salidas para el aprovisionamiento de infraestructura se almacenan automáticamente como variables de entorno en un .env archivo, ubicados en .azure/<environment name>/.env. Esta configuración permite que una aplicación local o scripts de implementación usen variables almacenadas en el .env archivo 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 La 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 La 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 containerapp imagen

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) o se establece directamente por el usuario en el entorno (azd env set <key> <value>). azd lee los valores como configuración y realiza de forma diferente.

Nombre Descripción Ejemplos Efectos
AZURE_AKS_CLUSTER_NAME Nombre del clúster de Azure Kubernetes Service que se va a establecer como destino. aks-my-cluster Propiedad necesaria para la implementación de un aks servicio.
AZURE_RESOURCE_GROUP Grupo de recursos específico al que se va a dirigir. Cadena de tipo. 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 El punto de conexión de Azure Container Registry para publicar la imagen de Docker. Cadena de tipo. myexampleacr.azurecr.io Propiedad necesaria para la implementación de un containerapp servicio o aks .
SERVICE_<service>_ENDPOINTS Los 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.