Mengatur variabel lingkungan dalam beberapa instans kontainer
Mengatur variabel lingkungan dalam instans kontainer memungkinkan Anda untuk memberikan konfigurasi dinamis dari aplikasi atau skrip yang dijalankan oleh kontainer. Fitur ini mirip --env
dengan argumen baris perintah dengan docker run
.
Untuk mengatur variabel lingkungan dalam kontainer, tentukan variabel tersebut saat Anda membuat instans kontainer. Artikel ini memperlihatkan contoh pengaturan variabel lingkungan saat Anda memulai kontainer dengan Azure CLI, Azure PowerShell, dan portal Microsoft Azure.
Misalnya, jika menjalankan gambar kontainer aci-wordcount Microsoft, Anda dapat mengubah perilakunya dengan menentukan variabel lingkungan berikut:
NumWords: Jumlah kata yang dikirim ke STDOUT.
MinLength: Jumlah karakter minimum dalam kata yang akan dihitung. Jumlah yang lebih tinggi mengabaikan kata-kata umum seperti "of" dan "the."
Jika Anda perlu meneruskan rahasia sebagai variabel lingkungan, Azure Container Instances mendukung nilai aman untuk kontainer Windows dan Linux.
Catatan
Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Untuk memulai, lihat Menginstal Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.
Contoh Azure CLI
Untuk melihat output default kontainer aci-wordcount, jalankan terlebih dahulu dengan perintah az container create ini (tidak ada variabel lingkungan yang ditentukan):
az container create \
--resource-group myResourceGroup \
--name mycontainer1 \
--image mcr.microsoft.com/azuredocs/aci-wordcount:latest \
--restart-policy OnFailure
Untuk memodifikasi output, mulai kontainer kedua dengan argumen --environment-variables
ditambahkan, menentukan nilai untuk variabel NumWords dan MinLength. (Contoh ini mengasumsikan Anda menjalankan CLI di shell Bash atau Azure Cloud Shell. Jika Anda menggunakan Prompt Perintah Windows, tentukan variabel dengan tanda kutip ganda, seperti --environment-variables "NumWords"="5" "MinLength"="8"
.)
az container create \
--resource-group myResourceGroup \
--name mycontainer2 \
--image mcr.microsoft.com/azuredocs/aci-wordcount:latest \
--restart-policy OnFailure \
--environment-variables 'NumWords'='5' 'MinLength'='8'
Setelah status kedua kontainer muncul sebagai Dihentikan (gunakan perintah az container show untuk memeriksa status), tampilkan log kontainer ini dengan perintah log kontainer az untuk melihat outputnya.
az container logs --resource-group myResourceGroup --name mycontainer1
az container logs --resource-group myResourceGroup --name mycontainer2
Output kontainer menunjukkan bagaimana Anda memodifikasi perilaku skrip kontainer kedua dengan mengatur variabel lingkungan.
mycontainer1
[('the', 990),
('and', 702),
('of', 628),
('to', 610),
('I', 544),
('you', 495),
('a', 453),
('my', 441),
('in', 399),
('HAMLET', 386)]
mycontainer2
[('CLAUDIUS', 120),
('POLONIUS', 113),
('GERTRUDE', 82),
('ROSENCRANTZ', 69),
('GUILDENSTERN', 54)]
Contoh Azure PowerShell
Mengatur variabel lingkungan di PowerShell serupa dengan CLI, tetapi menggunakan argumen baris perintah -EnvironmentVariable
.
Pertama, luncurkan kontainer aci-wordcount dalam konfigurasi defaultnya dengan perintah New-AzContainerGroup ini:
New-AzContainerGroup `
-ResourceGroupName myResourceGroup `
-Name mycontainer1 `
-Image mcr.microsoft.com/azuredocs/aci-wordcount:latest
Sekarang jalankan perintah New-AzContainerGroup berikut. Perintah ini menentukan variabel lingkungan NumWords dan MinLength setelah mengisi variabel array, envVars
:
$envVars = @(
New-AzContainerInstanceEnvironmentVariableObject -Name "NumWords" -Value "5"
New-AzContainerInstanceEnvironmentVariableObject -Name "MinLength" -Value "8"
)
$containerGroup = New-AzContainerGroup -ResourceGroupName "myResourceGroup" `
-Name "mycontainer2" `
-Image "mcr.microsoft.com/azuredocs/aci-wordcount:latest" `
-RestartPolicy "OnFailure" `
-Container @(
New-AzContainerGroupContainer -Name "mycontainer2" `
-EnvironmentVariable $envVars
)
Setelah kedua status kontainer Dihentikan (gunakanGet-AzContainerInstanceLog untuk memeriksa status), tarik log dengan perintah Get-AzContainerInstanceLog.
Get-AzContainerInstanceLog -ResourceGroupName myResourceGroup -ContainerGroupName mycontainer1
Get-AzContainerInstanceLog -ResourceGroupName myResourceGroup -ContainerGroupName mycontainer2
Output untuk setiap kontainer memperlihatkan bagaimana Anda telah memodifikasi skrip yang dijalankan oleh kontainer dengan mengatur variabel lingkungan.
PS Azure:\> Get-AzContainerInstanceLog -ResourceGroupName myResourceGroup -ContainerGroupName mycontainer1
[('the', 990),
('and', 702),
('of', 628),
('to', 610),
('I', 544),
('you', 495),
('a', 453),
('my', 441),
('in', 399),
('HAMLET', 386)]
Azure:\
PS Azure:\> Get-AzContainerInstanceLog -ResourceGroupName myResourceGroup -ContainerGroupName mycontainer2
[('CLAUDIUS', 120),
('POLONIUS', 113),
('GERTRUDE', 82),
('ROSENCRANTZ', 69),
('GUILDENSTERN', 54)]
Azure:\
Contoh portal Microsoft Azure
Untuk mengatur variabel lingkungan saat Anda memulai kontainer di portal Microsoft Azure, tentukan di halaman Tingkat Lanjut saat membuat kontainer.
- Di halaman Tingkat Lanjut, atur Kebijakan hidupkan ulang ke Pada kegagalan
- Di Variabel lingkungan, masukkan
NumWords
dengan nilai5
untuk variabel pertama, dan masukkanMinLength
dengan nilai8
untuk variabel kedua. - Pilih Tinjau + buat untuk memverifikasi lalu menyebarkan kontainer.
Untuk menampilkan log kontainer, di Pengaturan, pilih Kontainer, kemudian Log. Mirip dengan output yang ditampilkan di bagian CLI dan PowerShell sebelumnya, Anda dapat melihat bagaimana variabel lingkungan mengubah perilaku skrip. Hanya lima kata yang ditampilkan, masing-masing dengan panjang minimal delapan karakter.
Nilai aman
Objek dengan nilai aman ditujukan untuk menyimpan informasi sensitif seperti kata sandi atau kunci untuk aplikasi Anda. Menggunakan nilai aman untuk variabel lingkungan lebih aman dan fleksibel daripada memasukkannya ke dalam gambar kontainer Anda. Opsi lain adalah menggunakan volume rahasia, dijelaskan dalam Memasang volume rahasia di Azure Container Instances.
Variabel lingkungan dengan nilai aman tidak terlihat di properti kontainer Anda--nilainya hanya dapat diakses dari dalam kontainer. Misalnya, properti kontainer yang ditampilkan di portal Microsoft Azure atau Azure CLI hanya menampilkan nama variabel aman, bukan nilainya.
Atur variabel lingkungan aman dengan menentukan properti secureValue
bukannya value
yang biasa untuk tipe variabel. Dua variabel yang ditentukan dalam YAML berikut menunjukkan dua jenis variabel.
Penyebaran YAML
Buat file secure-env.yaml
dengan cuplikan berikut.
apiVersion: 2019-12-01
location: eastus
name: securetest
properties:
containers:
- name: mycontainer
properties:
environmentVariables:
- name: 'NOTSECRET'
value: 'my-exposed-value'
- name: 'SECRET'
secureValue: 'my-secret-value'
image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
ports: []
resources:
requests:
cpu: 1.0
memoryInGB: 1.5
osType: Linux
restartPolicy: Always
tags: null
type: Microsoft.ContainerInstance/containerGroups
Jalankan perintah berikut untuk menyebarkan grup kontainer dengan YAML (sesuaikan nama grup sumber daya seperlunya):
az container create --resource-group myResourceGroup --file secure-env.yaml
Memverifikasi variabel lingkungan
Jalankan perintah az container show untuk mengkueri variabel lingkungan kontainer Anda:
az container show --resource-group myResourceGroup --name securetest --query 'containers[].environmentVariables'
Respons JSON memperlihatkan kunci dan nilai variabel lingkungan yang tidak aman, tetapi hanya nama variabel lingkungan aman:
[
[
{
"name": "NOTSECRET",
"secureValue": null,
"value": "my-exposed-value"
},
{
"name": "SECRET",
"secureValue": null,
"value": null
}
]
]
Dengan perintah az container exec, yang memungkinkan menjalankan perintah dalam kontainer yang sedang berjalan, Anda dapat memverifikasi bahwa variabel lingkungan aman diatur. Jalankan perintah berikut untuk memulai sesi bash interaktif dalam kontainer:
az container exec --resource-group myResourceGroup --name securetest --exec-command "/bin/sh"
Setelah membuka shell interaktif dalam kontainer, Anda dapat mengakses SECRET
nilai variabel:
root@caas-ef3ee231482549629ac8a40c0d3807fd-3881559887-5374l:/# echo $SECRET
my-secret-value
Langkah berikutnya
Skenario berbasis tugas, seperti pemrosesan batch himpunan data besar dengan beberapa kontainer, dapat memanfaatkan variabel lingkungan kustom saat runtime. Untuk informasi selengkapnya tentang menjalankan kontainer berbasis tugas, lihat Menjalankan tugas kontainer dengan kebijakan mulai ulang.