Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo responde a perguntas frequentes sobre como trabalhar com variáveis de ambiente e a CLI do Desenvolvedor do Azure (azd).
Sugestão
Para obter um guia abrangente sobre como criar e gerenciar ambientes na CLI do Desenvolvedor do Azure, consulte Trabalhar com ambientes na CLI do Desenvolvedor do Azure.
Quais são as diferenças entre azd variáveis de ambiente e variáveis de ambiente do sistema?
azd as variáveis de ambiente são armazenadas no .env arquivo no .azure/<environment name> diretório do seu projeto e são separadas das variáveis de ambiente do seu sistema/sistema operacional.
azd As variáveis de ambiente configuram tarefas de provisionamento e implantação de modelo e são acessíveis usando comandos como azd env ou azd env get-values.
As variáveis de ambiente do sistema não são diretamente acessíveis por meio de azd comandos e devem ser gerenciadas com scripts personalizados de shell ou PowerShell, geralmente usando azdganchos.
Comandos azd podem ler e gravar diretamente variáveis de ambiente do sistema?
Não, azd os comandos não podem ler ou gravar variáveis de ambiente do sistema. Comandos como azd env set ou azd env get-values operam em valores armazenados no arquivo de modelo .env para um ambiente específico azd .
azd Os ambientes são gerenciados usando subpastas no diretório do seu modelo de projeto, o .azure/<environment name> que permite que seu modelo tenha vários ambientes. As subpastas de ambiente contêm arquivos de configuração, como .env os que descrevem o ambiente.
Use scripts personalizados de shell ou PowerShell com azdhooks para ler ou gravar variáveis de ambiente a nível de sistema.
Qual é a relação entre as variáveis de saída definidas no arquivo main.bicep e as variáveis de ambiente azd?
As variáveis de saída definidas no main.bicep arquivo são armazenadas automaticamente no .env arquivo do seu azd modelo. Considere as seguintes variáveis de saída em um arquivo de main.bicep infraestrutura de modelo:
output API_BASE_URL string = api.outputs.SERVICE_API_URI
output REACT_APP_WEB_BASE_URL string = web.outputs.SERVICE_WEB_URI
Após um azd up ou azd provision bem-sucedido, azd grava estas duas variáveis no ficheiro .env na diretoria .azure/<environment name> do projeto.
API_BASE_URL="<example-api-url>"
output REACT_APP_WEB_BASE_URL="<example-app-url>"
Em seguida, pode aceder a essas variáveis do arquivo usando .envazd env get-values.
Quais variáveis de .env ambiente são definidas no arquivo por padrão?
As seguintes variáveis de .env ambiente são definidas no arquivo por padrão:
| Nome | Descrição | Valores de exemplo | 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 |
A localização do ambiente atualmente em uso. | eastus2 |
Logo antes de um ambiente ser provisionado pela primeira vez. |
AZURE_PRINCIPAL_ID |
A entidade de usuário/serviço em execução. | 925cff12-ffff-4e9f-9580-8c06239dcaa4 |
Determinado automaticamente durante o provisionamento (efêmero). |
AZURE_SUBSCRIPTION_ID |
A subscrição pretendida. | 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 contentor publicada no Registo de Contentores do Azure para serviços de aplicações de contentores. | todoapp/web-dev:azdev-deploy-1664988805 |
Após uma publicação bem-sucedida de uma containerapp imagem |
Qual é a abordagem recomendada para recuperar azd variáveis de ambiente do .env arquivo? Por que eu precisaria fazer isso?
Recupere azd variáveis de ambiente usando o azd env get-values comando.
azd env get-values
Os motivos comuns para acessar azd variáveis de ambiente incluem o seguinte:
- Realize configurações adicionais em scripts de hook.
- Exponha os
.envvalores do modelo para a estrutura de código do aplicativo, como Node.js ou .NET. - Escreva os valores do sistema nas variáveis de ambiente
.env.
Sugestão
Tenha cuidado ao definir variáveis de ambiente do sistema, pois elas podem causar conflitos com outros modelos que compartilham os mesmos nomes de variáveis de ambiente.
Como defino manualmente uma nova azd variável de ambiente?
Defina variáveis de ambiente adicionais azd usando o azd env set comando, fornecendo a chave e o valor para sua variável.
Os motivos comuns para definir azd variáveis de ambiente incluem o seguinte:
- Acesse as informações de recursos do Azure criadas durante o provisionamento que são necessárias durante a implantação.
- Substitua ou altere os valores das variáveis de ambiente padrão
azd. - Forneça valores de configuração personalizados adicionais para uso em provisionamento, implantação ou scripts personalizados.
azd env set MY_KEY MyValue
Como faço para copiar ou gravar azd variáveis de ambiente como variáveis de ambiente do sistema?
Em alguns cenários, talvez você queira copiar azd variáveis de ambiente para outro arquivo de ambiente ou para o ambiente do sistema para uso por estruturas de linguagem. Por exemplo, talvez você queira usar URLs de ponto de extremidade de serviços provisionados do Azure para se conectar a esses serviços no código do seu aplicativo. Use scripts personalizados para recuperar azd variáveis de ambiente e, em seguida, defina-as como variáveis de ambiente do sistema. É comum executar esses scripts como ganchos durante o azd ciclo de vida, como visto no exemplo a seguir:
Observação
Tenha cuidado ao copiar variáveis de azd ambiente para o seu sistema local ou outros ambientes operacionais. Variáveis de ambiente do sistema com nomes correspondentes podem ser captadas por azd e causar conflitos entre diferentes azd modelos ou diferentes azd ambientes.
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
O shell script referenciado para Linux recupera as azd variáveis de ambiente e as exporta como variáveis de ambiente do 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
O script PowerShell referenciado para Windows recupera as variáveis de azd ambiente e as exporta como variáveis de ambiente do 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)
}
}