Compartir a través de


Preguntas más frecuentes sobre las variables de entorno

En este artículo se responden las preguntas más frecuentes sobre cómo trabajar con variables de entorno y la CLI para desarrolladores de Azure (azd).

¿Cuáles son las diferencias entre azd las variables de entorno y las variables de entorno del sistema?

azd Las variables de entorno se almacenan en el .env archivo del .azure/<environment name> directorio del proyecto y son independientes de las variables de entorno del sistema o del sistema operativo. azd Las variables de entorno configuran tareas de implementación y aprovisionamiento de plantillas y son accesibles mediante comandos como azd env o azd env get-values.

Captura de pantalla de la estructura de carpetas del entorno.

Las variables de entorno del sistema no son accesibles directamente a través azd de comandos y deben administrarse con scripts de Shell o PowerShell personalizados, normalmente mediante azd enlaces.

¿Los comandos pueden azd leer y escribir directamente variables de entorno del sistema?

No, azd los comandos no pueden leer ni escribir variables de entorno del sistema. Comandos como azd env set o azd env get-values funcionan en valores almacenados en el archivo de plantilla .env para un entorno específico azd . azd Los entornos se administran mediante subcarpetas en el directorio de la .azure/<environment name> plantilla de proyecto, lo que permite que la plantilla tenga varios entornos. Las subcarpetas de entorno contienen archivos de configuración como, por .env ejemplo, que describen el entorno.

Use scripts de Shell o PowerShell personalizados con azd enlaces para leer o escribir variables de entorno de nivel de sistema.

¿Cuál es la relación entre las variables de salida establecidas en el main.bicep archivo y azd las variables de entorno?

Las variables de salida establecidas en el main.bicep archivo se almacenan automáticamente en el archivo de la .env azd plantilla. Tenga en cuenta las siguientes variables de salida en un main.bicep archivo de infraestructura de plantilla:

output API_BASE_URL string = api.outputs.SERVICE_API_URI
output REACT_APP_WEB_BASE_URL string = web.outputs.SERVICE_WEB_URI

Después de una operación correcta azd up o azd provision, azd escribe estas dos variables en el .env archivo en el .azure/<environment name> directorio del proyecto:

API_BASE_URL="<example-api-url>"
output REACT_APP_WEB_BASE_URL="<example-app-url>"

A continuación, puede acceder a esas variables desde el .env archivo mediante azd env get-values.

¿Qué variables de entorno se establecen en el .env archivo de forma predeterminada?

Las siguientes variables de entorno se establecen en el .env archivo de forma predeterminada:

Nombre Descripción Valores de ejemplo 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

Recupere azd las variables de entorno mediante el azd env get-values comando .

azd env get-values

Entre las razones comunes para acceder azd a las variables de entorno se incluyen las siguientes:

  • Realice una configuración adicional en scripts de enlace.
  • Exponga los .env valores de la plantilla al marco de código de la aplicación, como Node.js o .NET.
  • Escriba los valores en las .env variables de entorno del sistema.

Sugerencia

Tenga cuidado al establecer variables de entorno del sistema, ya que pueden provocar conflictos con otras plantillas que comparten los mismos nombres de variables de entorno.

Cómo establecer manualmente una nueva azd variable de entorno?

Establezca variables de entorno adicionales azd mediante el azd env set comando y proporcione la clave y el valor de la variable.

Entre las razones comunes para establecer azd variables de entorno se incluyen las siguientes:

  • Acceda a la información de recursos de Azure creada durante el aprovisionamiento que se necesita durante la implementación.
  • Invalide o cambie los valores predeterminados azd de las variables de entorno.
  • Proporcione valores de configuración personalizados adicionales para su uso en el aprovisionamiento, la implementación o los scripts personalizados.
azd env set MY_KEY MyValue

Cómo copiar o escribir azd variables de entorno como variables de entorno del sistema?

En algunos escenarios, es posible que desee copiar azd variables de entorno en otro archivo de entorno o en el entorno del sistema para su uso por marcos de lenguaje. Por ejemplo, puede usar direcciones URL de punto de conexión de los servicios de Azure aprovisionados para conectarse a esos servicios en el código de la aplicación. Use scripts personalizados para recuperar azd variables de entorno y, a continuación, establecerlas como variables de entorno del sistema. Es habitual ejecutar estos scripts como enlaces durante el azd ciclo de vida, como se muestra en el ejemplo siguiente:

Nota:

Tenga cuidado al copiar azd variables de entorno en el sistema local u otros entornos operativos. Las variables de entorno del sistema con nombres coincidentes se pueden recoger y azd provocar conflictos entre diferentes azd plantillas o entornos diferentes azd .

postprovision:
    windows:
        shell: pwsh
        run: ./scripts/map-env-vars.ps1
        interactive: false
        continueOnError: false
    posix:
        shell: sh
        run: ./scripts/map-env-vars.sh
        interactive: false
        continueOnError: false

El script de shell al que se hace referencia para Linux recupera las azd variables de entorno y las exporta como variables de entorno del sistema:

echo "Loading azd .env file from current environment..."

while IFS='=' read -r key value; do
    value=$(echo "$value" | sed 's/^"//' | sed 's/"$//')
    export "$key=$value"
done <<EOF
$(azd env get-values)
EOF

El script de PowerShell al que se hace referencia para Windows recupera las azd variables de entorno y las exporta como variables de entorno del sistema:

Write-Host "Loading azd .env file from current environment"
foreach ($line in (& azd env get-values)) {
    if ($line -match "([^=]+)=(.*)") {
        $key = $matches[1]
        $value = $matches[2] -replace '^"|"$'
        [Environment]::SetEnvironmentVariable($key, $value)
    }
}

Pasos siguientes