Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Azure Developer CLI (azd) používá proměnné prostředí k ukládání a správě nastavení konfigurace pro prostředí nasazení. Tyto proměnné řídí, jak je vaše aplikace zřízená, nasazená a spuštěná v Azure. Tento článek vysvětluje, jak proměnné prostředí fungují v rámci azd prostředí, a poskytuje pokyny k jejich efektivní správě.
Principy proměnných prostředí
V kontextu Azure Developer CLI jsou proměnné prostředí páry klíč-hodnota, které jsou svázané s konkrétními pojmenovanými prostředími, jako jsou vývoj, testování nebo prod. Každé azd prostředí udržuje vlastní sadu proměnných prostředí, což umožňuje konfigurovat různá nastavení pro různé cíle nasazení.
Proměnné azd prostředí jsou uložené v .env souborech ve složkách prostředí ve .azure složce. Slouží jako vstupy pro:
- Pracovní postupy nasazení aplikací
- Konfigurace služeb a připojení Azure
- Zřizování infrastruktury prostřednictvím Bicep a Terraformu
Na rozdíl od tradičních proměnných prostředí, které existují na úrovni operačního systému, azd jsou proměnné prostředí vymezeny na konkrétní prostředí v rámci projektu a poskytují izolaci mezi různými cíli nasazení.
Proměnné prostředí poskytují několik klíčových výhod při práci s azd:
- Izolace prostředí: Udržujte konfigurace pro vývoj, testování a produkční prostředí oddělené a odlišné.
- Konzistence konfigurace: Zajistěte, aby všichni členové týmu používali stejná nastavení pro konkrétní prostředí.
- Infrastruktura jako kód: Definujte parametrizaci infrastruktury prostřednictvím proměnných místo pevně zakódovaných hodnot.
- Automatizace nasazení: Povolte kanály CI/CD k nasazení do různých prostředí pomocí stejného základu kódu, ale různých konfigurací.
- Zjednodušená správa: Snadné aktualizace nastavení ve všech službách v prostředí z centrálního umístění
Každé azd prostředí má vlastní sadu proměnných, což umožňuje konfigurace specifické pro prostředí a současně používat stejný kód aplikace a šablony infrastruktury.
Proměnné prostředí a soubory .env
azd Proměnné prostředí jsou uloženy v .env souborech v adresářích specifických pro prostředí vašeho projektu. Když vytváříte prostředí pomocí azd env new <name>, vytvoří se adresářová struktura:
.azure/
├── <environment-name>/
│ ├── .env # Environment variables for this environment
Soubor .env používá standardní formát, ve kterém každý řádek představuje dvojici klíč-hodnota:
KEY1=value1
KEY2=value2
Když spustíte příkazy, jako azd upje například , azd automaticky načte proměnné ze souboru vybraného .env prostředí.
Tyto proměnné ovlivňují:
-
Zřizování infrastruktury: Proměnné, jako jsou
AZURE_LOCATIONaAZURE_SUBSCRIPTION_IDurčují, kde a jak se vytvářejí prostředky. - Nasazení: Proměnné, jako jsou koncové body služby, určují, jak se vaše aplikace připojuje ke službám Azure.
- Konfigurace aplikace: Proměnné lze předat konfiguraci aplikace, aby bylo možné řídit jeho chování.
-
Pojmenování prostředků: Proměnné, jako jsou
AZURE_RESOURCE_GROUPvliv vzory pojmenování prostředků.
Soubor .env se také automaticky azd aktualizuje během operací, jako je azd init, azd provisiona azd deploy, zachytávání výstupů ze šablon infrastruktury a jejich ukládání pro budoucí použití.
Nastavení proměnných prostředí
Různé metody můžete použít k nastavení azd proměnných prostředí v závislosti na scénáři.
Použití příkazů rozhraní příkazového řádku
Doporučený způsob nastavení proměnné prostředí je použití azd env set příkazu, který zahrnuje kontroly pro zajištění platných hodnot:
azd env set <key> <value>
Pokud chcete například nastavit konfigurační hodnotu pro vaši aplikaci:
azd env set API_TIMEOUT 5000
Příkaz přidá nebo aktualizuje proměnnou v .env souboru aktuálně vybraného prostředí. Pomocí příznaku --environment můžete také cílit na konkrétní prostředí:
azd env set API_TIMEOUT 5000 --environment prod
Ověření správného nastavení proměnné prostředí:
azd env get-value API_TIMEOUT
Výstup z Bicep
Výkonnou funkcí azd je schopnost automaticky zaznamenávat výstupní parametry ze šablon infrastruktury Bicep jako proměnné prostředí. Například při definování výstupního parametru v main.bicep souboru:
output API_ENDPOINT string = apiService.outputs.SERVICE_ENDPOINT_URL
Po spuštění azd provisionse tento výstup automaticky uloží do souboru prostředí .env :
API_ENDPOINT=https://api-dev-123456.azurewebsites.net
Tento přístup zajišťuje, že vaše aplikace bude mít vždy přístup k nejaktuálnějším informacím o prostředcích, například:
- Koncové body služby a adresy URL
- Názvy a identifikátory prostředků
Získání a používání proměnných prostředí
Po nastavení můžete přistupovat k proměnným prostředí v několika kontextech.
Příkazy rozhraní příkazového řádku
Zobrazení všech proměnných prostředí pro aktuální prostředí:
azd env get-values
Zobrazení hodnoty konkrétní proměnné:
azd env get-value API_ENDPOINT
Pro strojově čitelný výstup (užitečný ve skriptech):
azd env get-values --output json
Použití proměnných prostředí v souborech infrastruktury
Pomocí proměnných prostředí můžete přizpůsobit šablony infrastruktury. To je užitečné pro pojmenování, označování nebo konfiguraci prostředků na základě aktuálního prostředí.
azd také používá značky k vyhledání prostředků v Azure pro nasazení a další úlohy.
Zvažte následující běžný tok:
Během
azd inittétoazddoby nastavíte tyto proměnné prostředí na základě odpovědi uživatele na výzvy:AZURE_ENV_NAME=myapp-dev AZURE_LOCATION=eastus2Odkazujte na tyto proměnné ve
main.parameters.jsoninfrasložce.azdnahradí hodnoty během zřizování a předá přeložené parametry do Bicep:{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "name": { "value": "${AZURE_ENV_NAME}" }, "location": { "value": "${AZURE_LOCATION}" } } }Definujte odpovídající parametry v šabloně Bicep:
@description('Name of the environment used to derive resource names and tags.') param name string @minLength(1) @description('Primary Azure region for all resources.') param location stringazdposkytuje tyto parametry Bicep s nahrazenými hodnotami vmain.parameters.json.Pomocí parametrů pro pojmenování prostředků a značky později určete, ke kterému prostředí prostředek patří:
var resourceToken = toLower(uniqueString(resourceGroup().id, name, location)) resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' = { name: 'st${resourceToken}' location: location sku: { name: 'Standard_LRS' } kind: 'StorageV2' tags: { Environment: name Project: 'myproject' } }
Tento model udržuje šablony flexibilní, umožňuje přizpůsobení podle prostředí bez změn kódu a zlepšuje zásady správného řízení prostředků (pojmenování, označování a zjišťování).
Poznámka:
azd také spoléhá na označování k vyhledání prostředků Azure během fáze nasazení.
Volané služby
azd Proměnné prostředí se automaticky předem načtou a jsou k dispozici v hácích a vlastních skriptech definovaných v azure.yaml souboru. Proměnné prostředí můžete získat přístup pomocí následující syntaxe:
# Use the variables in your script
echo "API endpoint: $API_ENDPOINT"
echo "Deploying to: $AZURE_LOCATION"
V souboru můžete definovat háky azure.yaml pro spuštění těchto skriptů v konkrétních bodech azd životního cyklu:
hooks:
postprovision:
windows:
shell: pwsh
run: ./scripts/load-env-vars.ps1
interactive: false
posix:
shell: sh
run: ./scripts/load-env-vars.sh
interactive: false
Tip
Další informace o používání háčků najdete v článku Přizpůsobení pracovních postupů pomocí háku .
Odebrání nebo aktualizace proměnných
Odebrání proměnné z prostředí:
azd env unset VARIABLE_NAME
Aktualizace existující proměnné:
azd env set VARIABLE_NAME "new-value"
Aktualizace místních proměnných prostředí z aktuálního stavu prostředků Azure:
azd env refresh
Aktualizace prostředí je užitečná v následujících případech:
- Chcete zajistit, aby místní
.envsoubor odrážel nejnovější výstupy z vaší infrastruktury (jako jsou připojovací řetězce, koncové body atd.). - Po aktualizaci prostředí potřebujete synchronizovat proměnné prostředí.
AZD vs. proměnné prostředí operačního systému
azd Proměnné prostředí a proměnné prostředí operačního systému slouží k různým účelům a pracují různými způsoby:
| Pojem | Azure Developer CLI | Operační systém |
|---|---|---|
| Umístění | Uložené v .azure/<env-name>/.env souborech |
Nastavení v prostředí operačního systému |
| Scope | Vymezeno na konkrétní pojmenované prostředí v rámci projektu | Globální pro uživatelskou relaci nebo systém |
| Vedení | Spravované pomocí azd env příkazů |
Spravované pomocí příkazů specifických pro operační systém (exportsetatd.) |
| Access | Automaticky načteno příkazy azd |
Obvykle se načítá explicitně ve skriptech nebo aplikacích. |
| Target | Svázané s prostředky a nasazeními Azure | Konfigurace systému pro obecné účely |
| Životní cyklus | Zachování mezi relacemi terminálu | V závislosti na tom, jak jsou nastavené, může být dočasné nebo trvalé. |
azd automaticky nečte ani zapisuje proměnné prostředí operačního systému. S oběma typy proměnných ale můžete pracovat pomocí vlastních skriptů.
Čtení azd proměnných prostředí a proměnných prostředí operačního systému:
# Access OS environment variable
echo "OS variable: $PATH"
# Access azd environment variable
echo "AZD variable: $(azd env get-value MY_VARIABLE)"
Zápis azd proměnných prostředí do proměnných prostředí operačního systému nebo architektury:
# Load all azd environment variables into the current shell session
while IFS='=' read -r key value; do
value=$(echo "$value" | sed 's/^"//' | sed 's/"$//')
export "$key=$value"
done <<EOF
$(azd env get-values)
EOF
Standardní proměnné prostředí
azd sady a používá několik běžných proměnných prostředí ve všech prostředích:
| Variable | Popis | Example | Při nastavení |
|---|---|---|---|
AZURE_ENV_NAME |
Název aktuálního prostředí | dev |
Při vytváření prostředí |
AZURE_LOCATION |
Oblast Azure, ve které se nasazují prostředky | eastus |
Během prvního zřizování |
AZURE_SUBSCRIPTION_ID |
ID použitého předplatného Azure | 00000000-0000-0000-0000-000000000000 |
Během prvního zřizování |
AZURE_RESOURCE_GROUP |
Název skupiny prostředků | rg-myapp-dev |
Během zřizování |
AZURE_PRINCIPAL_ID |
ID spuštěného uživatele nebo instančního objektu | 00000000-0000-0000-0000-000000000000 |
Během zřizování |
AZURE_PRINCIPAL_TYPE |
Typ objektu zabezpečení v prostředí. | 1a2b3c |
Během zřizování |
AZURE_TENANT_ID |
ID použitého tenanta Azure. | 00000000-0000-0000-0000-000000000000 |
Během zřizování |
Důležité informace o tajných kódech a citlivých datech
Proměnné prostředí jsou sice vhodné pro konfiguraci, ale vyžadují speciální zpracování citlivých dat:
Vyhněte se ukládání tajných kódů do souborů .env
.env soubory jsou obvykle uložené ve formátu prostého textu a mohou být snadno:
- Náhodné potvrzení správy zdrojového kódu
- Sdílené nebo zkopírované bez správných ochrany
- Zobrazit každý, kdo má přístup k souborům projektu
- Součástí protokolů nebo zpráv o chybách
Výstraha
Nikdy neukládejte tajné kódy do souboru Azure Developer CLI .env . Tyto soubory je možné snadno sdílet nebo kopírovat do neautorizovaných umístění nebo se vrátit se změnami do správy zdrojového kódu. Pro chráněná nebo bez tajných kódů používejte služby, jako je Azure Key Vault nebo Řízení přístupu na základě role (RBAC).
Alternativy pro zpracování tajných kódů
U citlivých dat zvažte tyto bezpečnější přístupy:
Odkazy na Azure Key Vault: Ukládejte tajné kódy ve službě Azure Key Vault a odkazujte na ně ve vašem
.envsouboru:azd env set-secret <secret-value>Tento příkaz vytvoří tajný klíč služby Key Vault a uloží na něj odkaz místo skutečné hodnoty v
.envsouboru.Spravované identity: Nakonfigurujte služby Azure tak, aby používaly spravované identity místo připojovacích řetězců nebo přístupových klíčů.
Zabezpečení specifické pro prostředí: Použití přísnějších kontrolních mechanismů zabezpečení u produkčních prostředí než u vývojových prostředí.
Tajné kódy za běhu: Vygenerujte během nasazování krátkodobé přihlašovací údaje místo ukládání trvalých tajných kódů.