Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, ortam değişkenleri ve Azure Geliştirici CLI(azd) ile çalışma hakkında sık sorulan sorular yanıtlanmaktadır.
İpucu
Azure Geliştirici CLI'sinde ortam oluşturma ve yönetme hakkında kapsamlı bir kılavuz için bkz. Azure Geliştirici CLI'sinde ortamlarla çalışma.
Ortam değişkenleri ile sistem ortamı değişkenleri arasındaki azd farklar nelerdir?
azd ortam değişkenleri projenizin dizinindeki dosyada .env.azure/<environment name> depolanır ve sistem/işletim sistemi ortam değişkenlerinden ayrıdır.
azdortam değişkenleri şablon sağlama ve dağıtım görevlerini yapılandırırken veya azd env get-valuesgibi azd env komutlar kullanılarak erişilebilir.
Sistem ortamı değişkenlerine komutlar aracılığıyla azd doğrudan erişilemez ve genellikle kancalar kullanılarak azd özel kabuk veya PowerShell betikleriyle yönetilmelidir.
Komutlar sistem ortamı değişkenlerini doğrudan okuyabilir ve yazabilir mi azd ?
Hayır, azd komutlar sistem ortamı değişkenlerini okuyamaz veya yazamaz. Gibi azd env set komutlar veya azd env get-values belirli azd bir ortam için şablon .env dosyasında depolanan değerler üzerinde çalışır.
azd ortamları, proje şablonunuzun dizinindeki .azure/<environment name> alt klasörler kullanılarak yönetilir ve bu da şablonunuzun birden çok ortam olmasını sağlar. Ortam alt klasörleri, ortamı açıklayan gibi .env yapılandırma dosyalarını tutar.
Sistem düzeyinde ortam değişkenlerini okumak veya yazmak için kancalıazd özel kabuk veya PowerShell betikleri kullanın.
Dosya ve azd ortam değişkenlerinde main.bicep ayarlanan çıkış değişkenleri arasındaki ilişki nedir?
Dosyada main.bicep ayarlanan çıkış değişkenleri otomatik olarak şablonunuzun azd dosyasında depolanır.env. Şablon altyapısı dosyasında aşağıdaki çıkış değişkenlerini main.bicep göz önünde bulundurun:
output API_BASE_URL string = api.outputs.SERVICE_API_URI
output REACT_APP_WEB_BASE_URL string = web.outputs.SERVICE_WEB_URI
veya başarılı azd upazd provisionazd olduktan sonra projenizin dizinindeki .azure/<environment name> dosyaya .env şu iki değişkeni yazar:
API_BASE_URL="<example-api-url>"
output REACT_APP_WEB_BASE_URL="<example-app-url>"
Daha sonra kullanarak azd env get-valuesbu değişkenlere dosyasından .env erişebilirsiniz.
Dosyada .env varsayılan olarak hangi ortam değişkenleri ayarlanır?
Dosyada .env varsayılan olarak aşağıdaki ortam değişkenleri ayarlanır:
| İsim | Açıklama | Örnek değerler | Uygun olduğunda |
|---|---|---|---|
AZURE_ENV_NAME |
Kullanımdaki ortamın adı. | todo-app-dev |
Bir ortam oluşturulduğunda (örneğin azd init veya azd env new çalıştırıldıktan sonra). |
AZURE_LOCATION |
Kullanımdaki ortamın konumu. | eastus2 |
Ortam ilk kez sağlanmadan hemen önce. |
AZURE_PRINCIPAL_ID |
Çalışan kullanıcı/hizmet sorumlusu. | 925cff12-ffff-4e9f-9580-8c06239dcaa4 |
Sağlama sırasında otomatik olarak belirlenir (kısa ömürlü). |
AZURE_SUBSCRIPTION_ID |
Hedeflenen abonelik. | 925cff12-ffff-4e9f-9580-8c06239dcaa4 |
Ortam ilk kez sağlanmadan hemen önce. |
SERVICE_<service>_IMAGE_NAME |
Kapsayıcı uygulama hizmetleri için Azure Container Registry'de yayımlanan kapsayıcı görüntüsünün tam adı. | todoapp/web-dev:azdev-deploy-1664988805 |
Bir görüntünün başarılı bir şekilde yayımlanmasının containerapp ardından |
Dosyadan .env ortam değişkenlerini almak azd için önerilen yaklaşım nedir? Bunu neden yapmam gereksin ki?
komutunu kullanarak azd env get-values ortam değişkenlerini alınazd.
azd env get-values
Ortam değişkenlerine erişmenin azd yaygın nedenleri şunlardır:
- Kanca betiklerinde ek yapılandırma gerçekleştirin.
- Şablondaki
.envdeğerleri Node.js veya .NET gibi uygulama kodu çerçevesine kullanıma sunma. -
.envDeğerleri sistem ortamı değişkenlerine yazın.
İpucu
Sistem ortam değişkenlerini ayarlarken dikkatli olun çünkü bunlar aynı ortam değişkeni adlarını paylaşan diğer şablonlarla çakışmalara neden olabilir.
Yeni azd bir ortam değişkenini el ile nasıl ayarlayabilirim?
komutunu kullanarak azd env set değişkeninizin anahtarını ve değerini sağlayarak ek azd ortam değişkenleri ayarlayın.
Ortam değişkenlerini ayarlamanın azd yaygın nedenleri şunlardır:
- Dağıtım sırasında gerekli olan sağlama sırasında oluşturulan Azure kaynak bilgilerine erişin.
- Varsayılan
azdortam değişkeni değerlerini geçersiz kılın veya değiştirin. - Sağlama, dağıtım veya özel betiklerde kullanmak için ek özel yapılandırma değerleri sağlayın.
azd env set MY_KEY MyValue
Ortam değişkenlerini sistem ortamı değişkenleri olarak nasıl kopyalayabilir veya yazabilirsiniz azd ?
Bazı senaryolarda ortam değişkenlerini dil çerçeveleri tarafından kullanılmak üzere başka bir ortam dosyasına veya sistem ortamınıza kopyalamak azd isteyebilirsiniz. Örneğin, uygulama kodunuzda bu hizmetlere bağlanmak için sağlanan Azure hizmetlerinden uç nokta URL'lerini kullanmak isteyebilirsiniz. Ortam değişkenlerini almak azd ve sonra bunları sistem ortamı değişkenleri olarak ayarlamak için özel betikler kullanın. Aşağıdaki örnekte görüldüğü gibi bu betikleri yaşam döngüsü boyunca azd kanca olarak çalıştırmak yaygın bir durumdur:
Uyarı
Ortam değişkenlerini yerel sisteminize veya diğer işletim ortamlarınıza kopyalarken azd dikkatli olun. Eşleşen adlara sahip sistem ortamı değişkenleri tarafından azd seçilebilir ve farklı şablonlar veya farklı azdazd ortamlar arasında çakışmalara neden olabilir.
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
Linux için başvuruda bulunan kabuk betiği ortam değişkenlerini alır azd ve bunları sistem ortamı değişkenleri olarak dışarı aktarır:
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
Windows için başvuruda bulunan PowerShell betiği ortam değişkenlerini alır azd ve bunları sistem ortamı değişkenleri olarak dışarı aktarır:
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)
}
}