Gerenciar variáveis de ambiente

As variáveis de ambiente influenciam como os recursos são provisionados e implantados no Azure. Isso é especialmente útil ao executar azd em cenários de fluxo de trabalho de CI/CD.

Substituição de parâmetros de entrada

As variáveis de ambiente podem ser referenciadas em arquivos de parâmetro (*.parameters.json para Bicep, *.tfvars.json para Terraform) como parte do provisionamento. Quando uma sintaxe de substituição de variável de ambiente é encontrada, azd substitui automaticamente a referência pelo conjunto de valores de variável de ambiente real. A substituição também ocorre para determinadas definições de configuração em azure.yaml (propriedades documentadas com "Suporta substituição de variável de ambiente") e em arquivos de configuração de implantação, como manifestos de implantação para aks.

Exemplo de substituição de parâmetro de entrada (Bicep)

Suponha que você tenha a variável de ambiente AZURE_LOCATION definida:

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

No arquivo main.parameters.json você pode referenciar AZURE_LOCATION e permitir a substituição de ambiente usando a seguinte sintaxe:

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

Arquivo .env específico do ambiente

As saídas para provisionamento de infraestrutura são armazenadas automaticamente como variáveis de ambiente em um arquivo .env, localizado em .azure/<environment name>/.env. Essa configuração permite que um aplicativo local ou scripts de implantação usem variáveis armazenadas no arquivo .env para fazer referência a recursos hospedados no Azure, se necessário. Para ver essas saídas, execute azd env get-values ou azd env get-values --output json para saída JSON.

Variáveis de ambiente fornecidas por azd

A seguir estão as variáveis que são fornecidas automaticamente por azd:

Nome Descrição Exemplos Quando disponível
AZURE_ENV_NAME O nome do ambiente em uso. todo-app-dev Quando um ambiente é criado (depois de executar azd init ou azd env new, por exemplo).
AZURE_LOCATION O local do ambiente em uso. eastus2 Logo antes de um ambiente ser provisionado pela primeira vez.
AZURE_PRINCIPAL_ID O usuário/entidade de serviço em execução. 925cff12-ffff-4e9f-9580-8c06239dcaa4 Determinado automaticamente durante o provisionamento (efêmero).
AZURE_SUBSCRIPTION_ID A assinatura direcionada. 925cff12-ffff-4e9f-9580-8c06239dcaa4 Logo antes de um ambiente ser provisionado pela primeira vez.
SERVICE_<service>_IMAGE_NAME O nome completo da imagem de contêiner publicada no Registro de Contêiner do Azure para serviços de aplicativo de contêiner. todoapp/web-dev:azdev-deploy-1664988805 Após uma publicação bem-sucedida de uma imagem containerapp

Variáveis de ambiente fornecidas pelo usuário

As variáveis fornecidas pelo usuário podem ser declaradas como um parâmetro de saída de infraestrutura (que é armazenado automaticamente no .env) no arquivo main.bicep ou definidas diretamente pelo usuário no ambiente (azd env set <key> <value>). azd lê os valores como configuração e executa de forma diferente.

Nome Descrição Exemplos Efeitos
AZURE_AKS_CLUSTER_NAME O nome do cluster do Serviço Azure Kubernetes a ser direcionado. aks-my-cluster Propriedade necessária para a implantação de um serviço aks.
AZURE_RESOURCE_GROUP O grupo de recursos específico a ser direcionado. Tipo de cadeia de caracteres. rg-todo-dev azd não executará a descoberta do grupo de recursos e, em vez disso, fará referência a esse grupo de recursos. azd também não controla os arquivos de configuração de IaC criados, portanto, podem ser necessárias alterações nos arquivos de IaC.
AZURE_CONTAINER_REGISTRY_ENDPOINT O ponto de extremidade do Registro de Contêiner do Azure para publicar a imagem do docker. Tipo de cadeia de caracteres. myexampleacr.azurecr.io Propriedade necessária para a implantação de um containerapp ou serviço aks.
SERVICE_<service>_ENDPOINTS Os pontos de extremidade do serviço específico. Tipo array (bíceps) / list-equivalent (terraform). ['endpoint1', 'endpoint2'] Define os pontos de extremidade públicos para o serviço específico que serão usados por azd para exibição. Por padrão, azd descobre os nomes de host atribuídos automaticamente para um determinado host, como *.azurewebsites.net para appservice.

Habilitar o modo de demonstração

azd inclui um modo de demonstração que oculta sua ID de assinatura na saída do console. Esse recurso é útil para cenários em que você deseja demonstrar ou apresentar comandos azd em uma configuração pública.

O modo de demonstração apresenta a variável de ambiente: AZD_DEMO_MODE. Para habilitar o modo de demonstração, execute:

export AZD_DEMO_MODE true

Se você quiser que o modo de demonstração persista entre as reinicializações, você também pode executar:

setx AZD_DEMO_MODE true

ou no PowerShell:

$env:AZD_DEMO_MODE="true"