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.
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
.
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 |
¿Cuál es el enfoque recomendado para recuperar azd
variables de entorno del .env
archivo? ¿Por qué tendría que hacer esto?
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)
}
}