Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menjawab pertanyaan yang sering diajukan tentang bekerja dengan variabel lingkungan dan Azure Developer CLI (azd).
Petunjuk / Saran
Untuk panduan komprehensif tentang membuat dan mengelola lingkungan di Azure Developer CLI, lihat Bekerja dengan lingkungan di Azure Developer CLI.
Apa perbedaan antara azd variabel lingkungan dan variabel lingkungan sistem?
azd variabel lingkungan disimpan dalam .env file di .azure/<environment name> direktori proyek Anda dan terpisah dari variabel lingkungan sistem/OS Anda.
azd variabel lingkungan mengonfigurasi tugas provisi dan penyebaran templat dan dapat diakses menggunakan perintah seperti azd env atau azd env get-values.
Variabel lingkungan sistem tidak dapat diakses secara langsung melalui azd perintah dan harus dikelola dengan shell kustom atau skrip PowerShell, umumnya menggunakan azdkait.
Dapatkah azd perintah langsung membaca dan menulis variabel lingkungan sistem?
Tidak, azd perintah tidak dapat membaca atau menulis variabel lingkungan sistem. Perintah seperti azd env set atau azd env get-values beroperasi pada nilai yang disimpan dalam file templat .env untuk lingkungan tertentu azd .
azd lingkungan dikelola menggunakan subfolder di .azure/<environment name> direktori templat proyek Anda, yang memungkinkan templat Anda memiliki beberapa lingkungan. Subfolder lingkungan menyimpan file konfigurasi seperti .env yang menjelaskan lingkungan.
Gunakan shell kustom atau skrip PowerShell dengan azdkait untuk membaca atau menulis variabel lingkungan tingkat sistem.
Apa hubungan antara variabel output yang diatur dalam main.bicep variabel file dan azd lingkungan?
Variabel output yang diatur dalam main.bicep file secara otomatis disimpan dalam .env file templat Anda azd . Pertimbangkan variabel output berikut dalam main.bicep file infrastruktur templat:
output API_BASE_URL string = api.outputs.SERVICE_API_URI
output REACT_APP_WEB_BASE_URL string = web.outputs.SERVICE_WEB_URI
Setelah berhasil azd up atau azd provision, azd tulis kedua variabel ini ke .env file di .azure/<environment name> direktori proyek Anda:
API_BASE_URL="<example-api-url>"
output REACT_APP_WEB_BASE_URL="<example-app-url>"
Anda kemudian dapat mengakses variabel tersebut .env dari file menggunakan azd env get-values.
Variabel lingkungan mana yang diatur dalam .env file secara default?
Variabel lingkungan berikut diatur dalam .env file secara default:
| Nama | Deskripsi | Contoh nilai | Jika tersedia |
|---|---|---|---|
AZURE_ENV_NAME |
Nama lingkungan yang digunakan. | todo-app-dev |
Saat lingkungan dibuat (setelah menjalankan azd init atau azd env baru, misalnya). |
AZURE_LOCATION |
Lokasi lingkungan yang digunakan. | eastus2 |
Tepat sebelum lingkungan disediakan untuk pertama kalinya. |
AZURE_PRINCIPAL_ID |
Perwakilan pengguna/layanan yang sedang berjalan. | 925cff12-ffff-4e9f-9580-8c06239dcaa4 |
Ditentukan secara otomatis selama provisi (sementara). |
AZURE_SUBSCRIPTION_ID |
Langganan yang ditargetkan. | 925cff12-ffff-4e9f-9580-8c06239dcaa4 |
Tepat sebelum lingkungan disediakan untuk pertama kalinya. |
SERVICE_<service>_IMAGE_NAME |
Nama lengkap gambar kontainer yang diterbitkan ke Azure Container Registry untuk layanan aplikasi kontainer. | todoapp/web-dev:azdev-deploy-1664988805 |
Setelah penerbitan containerapp gambar berhasil |
Apa pendekatan yang direkomendasikan untuk mengambil azd variabel lingkungan dari .env file? Mengapa aku harus melakukan ini?
Ambil azd variabel lingkungan menggunakan azd env get-values perintah .
azd env get-values
Alasan umum untuk mengakses azd variabel lingkungan termasuk yang berikut ini:
- Lakukan konfigurasi tambahan dalam skrip kait.
- Mengekspos
.envnilai dari templat ke kerangka kerja kode aplikasi, seperti Node.js atau .NET. - Tulis nilai ke
.envvariabel lingkungan sistem.
Petunjuk / Saran
Berhati-hatilah saat mengatur variabel lingkungan sistem, karena dapat menyebabkan konflik dengan templat lain yang memiliki nama variabel lingkungan yang sama.
Bagaimana cara mengatur variabel lingkungan baru azd secara manual?
Atur variabel lingkungan tambahan azd menggunakan azd env set perintah , menyediakan kunci dan nilai untuk variabel Anda.
Alasan umum untuk mengatur azd variabel lingkungan termasuk yang berikut ini:
- Akses informasi sumber daya Azure yang dibuat selama provisi yang diperlukan selama penyebaran.
- Mengesampingkan atau mengubah nilai variabel lingkungan default
azd. - Berikan nilai konfigurasi kustom tambahan untuk digunakan dalam provisi, penyebaran, atau skrip kustom.
azd env set MY_KEY MyValue
Bagaimana cara menyalin atau menulis azd variabel lingkungan sebagai variabel lingkungan sistem?
Dalam beberapa skenario, Anda mungkin ingin menyalin azd variabel lingkungan ke file lingkungan lain atau ke lingkungan sistem Anda untuk digunakan oleh kerangka kerja bahasa. Misalnya, Anda mungkin ingin menggunakan URL titik akhir dari layanan Azure yang disediakan untuk menyambungkan ke layanan tersebut dalam kode aplikasi Anda. Gunakan skrip kustom untuk mengambil azd variabel lingkungan lalu atur sebagai variabel lingkungan sistem. Umum untuk menjalankan skrip ini sebagai kait selama azd siklus hidup, seperti yang terlihat dalam contoh berikut:
Nota
Berhati-hatilah saat menyalin azd variabel lingkungan ke sistem lokal Anda atau lingkungan operasi lainnya. Variabel lingkungan sistem dengan nama yang cocok dapat diambil oleh azd dan menyebabkan konflik antara templat yang berbeda azd atau lingkungan yang berbeda 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
Skrip shell yang dirujuk untuk Linux mengambil azd variabel lingkungan dan mengekspornya sebagai variabel lingkungan sistem:
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
Skrip PowerShell yang dirujuk untuk Windows mengambil azd variabel lingkungan dan mengekspornya sebagai variabel lingkungan sistem:
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)
}
}