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.
Kapsayıcı örneklerinizde ortam değişkenleri ayarlamanız, kapsayıcı tarafından çalıştırılan uygulamanın veya betiğin dinamik yapılandırmasını sağlamanıza imkan tanır. Bu özellik, --envdocker run komut satırı bağımsız değişkenine benzer.
Kapsayıcıda ortam değişkenlerini ayarlamak için, kapsayıcı örneği oluştururken bunları belirtin. Bu makalede Azure CLI, Azure PowerShell ve Azure portalı ile bir kapsayıcı başlattığınızda ortam değişkenlerini ayarlama örnekleri gösterilmektedir.
Örneğin, Microsoft aci-wordcount kapsayıcı görüntüsünü çalıştırırsanız, aşağıdaki ortam değişkenlerini belirterek davranışını değiştirebilirsiniz:
NumWords: STDOUT'a gönderilen sözcük sayısı.
MinLength: Bir sözcükte sayılacak en az karakter sayısıdır. Daha yüksek bir sayı "of" ve "the" gibi yaygın sözcükleri göz ardı eder.
Önemli
Gizli dizileri ortam değişkenleri olarak geçirmeniz gerekiyorsa, Azure Container Instances hem Windows hem de Linux kapsayıcıları için güvenli değerleri destekler.
Uyarı
Azure ile etkileşime geçmek için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.
Azure CLI örneği
aci-wordcount kapsayıcısının varsayılan çıkışını görmek için önce şu az container create komutuyla çalıştırın (ortam değişkeni belirtilmedi):
az container create \
--resource-group myResourceGroup \
--name mycontainer1 \
--image mcr.microsoft.com/azuredocs/aci-wordcount:latest \
--restart-policy OnFailure
Çıktıyı değiştirmek için --environment-variables bağımsız değişkeni ekleyerek ikinci bir kapsayıcı başlatın ve NumWords ve MinLength değişkenleri için değerler belirtin. Bu örnekte CLI'yi bir Bash kabuğunda veya Azure Cloud Shell'de çalıştırdığınız varsayılır. Windows Komut İstemi'ni kullanıyorsanız, değişkenleri "--environment-variables "NumWords"="5" "MinLength"="8"" olarak çift tırnak içinde belirtin.
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'
Her iki kapsayıcının durumu da Sonlandırıldı olarak gösterildikten sonra (durumu denetlemek için az container show komutunu kullanın), çıktıyı görmek için günlüklerini az container logs ile görüntüleyin.
az container logs --resource-group myResourceGroup --name mycontainer1
az container logs --resource-group myResourceGroup --name mycontainer2
Kapsayıcıların çıkışları, ortam değişkenlerini ayarlayarak ikinci kapsayıcının betik davranışını nasıl değiştirdiğiniz gösterir.
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)]
Azure PowerShell örneği
PowerShell'de ortam değişkenlerini ayarlamak CLI'ya benzer, ancak komut satırı bağımsız değişkenini -EnvironmentVariable kullanır.
İlk olarak, şu New-AzContainerGroup komutuyla aci-wordcount kapsayıcısını varsayılan yapılandırmasında başlatın:
New-AzContainerGroup `
-ResourceGroupName myResourceGroup `
-Name mycontainer1 `
-Image mcr.microsoft.com/azuredocs/aci-wordcount:latest
Şimdi aşağıdaki New-AzContainerGroup komutunu çalıştırın. Bu, bir dizi değişkeni dolduruldıktan sonra NumWords:
$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-AzContainerInstanceContainer -Name "mycontainer2" `
-EnvironmentVariable $envVars
)
Her iki kapsayıcının durumu Sonlandırıldı olduğunda (durumu kontrol etmek için Get-AzContainerInstanceLog komutunu kullanın), günlüklerini Get-AzContainerInstanceLog komutuyla alın.
Get-AzContainerInstanceLog -ResourceGroupName myResourceGroup -ContainerGroupName mycontainer1
Get-AzContainerInstanceLog -ResourceGroupName myResourceGroup -ContainerGroupName mycontainer2
Her kapsayıcının çıktısı, ortam değişkenlerini ayarlayarak kapsayıcı tarafından çalıştırılan betiği nasıl değiştirdiğiniz gösterilir.
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:\
Azure portalı örneği
Azure portalında bir kapsayıcı başlattığınızda ortam değişkenlerini ayarlamak için, kapsayıcıyı oluştururken bunları Gelişmiş sayfasında belirtin.
- Gelişmiş sayfasında Yeniden başlatma ilkesinihata olması durumunda ayarlayın.
- Ortam değişkenleri'nin,
NumWordsilk değişken için değeriyle girin ve ikinci değişken için değeriyle5girinMinLength. - Kapsayıcıyı doğrulamak ve dağıtmak için Gözden geçir + oluştur'u seçin.
Kapsayıcının günlüklerini görüntülemek için Ayarlar'ın altında Kapsayıcılar'ı ve ardından Günlükler'i seçin. Önceki CLI ve PowerShell bölümlerinde gösterilen çıkışa benzer şekilde, ortam değişkenlerinin betiğin davranışını nasıl değiştirdiğini görebilirsiniz. Her biri en az sekiz karakter uzunluğunda olmak üzere yalnızca beş sözcük görüntülenir.
Güvenli değerler
Güvenli değerlere sahip nesneler, uygulamanız için parolalar veya anahtarlar gibi hassas bilgileri barındırmaya yöneliktir. Ortam değişkenleri için güvenli değerler kullanmak, kapsayıcınızın görüntüsüne dahil etmekten daha güvenli ve daha esnektir. Bir diğer seçenek de Azure Container Instances'ta gizli birim bağlama bölümünde açıklanan gizli dizi birimlerini kullanmaktır.
Güvenli değerlere sahip ortam değişkenleri kapsayıcınızın özelliklerinde görünmez; değerlerine yalnızca kapsayıcı içinden erişilebilir. Örneğin, Azure portalında veya Azure CLI'da görüntülenen kapsayıcı özellikleri, değerini değil yalnızca güvenli bir değişkenin adını görüntüler.
Değişkenin secureValue türü için normal value yerine özelliğini belirterek güvenli bir ortam değişkeni ayarlayın. Aşağıdaki YAML'de tanımlanan iki değişken, iki değişken türünü gösterir.
YAML dağıtımı
Aşağıdaki kod parçacığıyla bir secure-env.yaml dosya oluşturun.
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
Kapsayıcı grubunu YAML ile dağıtmak için aşağıdaki komutu çalıştırın (kaynak grubu adını gerektiği gibi ayarlayın):
az container create --resource-group myResourceGroup --file secure-env.yaml
Ortam değişkenlerini doğrulama
Kapsayıcınızın ortam değişkenlerini sorgulamak için az container show komutunu çalıştırın:
az container show --resource-group myResourceGroup --name securetest --query 'containers[].environmentVariables'
JSON yanıtı hem güvenli olmayan ortam değişkeninin anahtarını hem de değerini gösterir, ancak yalnızca güvenli ortam değişkeninin adını gösterir:
[
[
{
"name": "NOTSECRET",
"secureValue": null,
"value": "my-exposed-value"
},
{
"name": "SECRET",
"secureValue": null,
"value": null
}
]
]
Komutunun çalışan bir kapsayıcıda yürütülmesini sağlayan az container exec komutuyla güvenli ortam değişkeninin ayarlandığını doğrulayabilirsiniz. Kapsayıcıda etkileşimli bir bash oturumu başlatmak için aşağıdaki komutu çalıştırın:
az container exec --resource-group myResourceGroup --name securetest --exec-command "/bin/sh"
Kapsayıcı içinde etkileşimli bir kabuk açtıktan sonra değişkenin SECRET değerine erişebilirsiniz.
root@caas-ef3ee231482549629ac8a40c0d3807fd-3881559887-5374l:/# echo $SECRET
my-secret-value
Sonraki adımlar
Çeşitli kapsayıcılarla büyük bir veri kümesini toplu işleme gibi görev tabanlı senaryolar, çalışma zamanında özel ortam değişkenlerinden yararlanabilir. Görev tabanlı kapsayıcıları çalıştırma hakkında daha fazla bilgi için Yeniden Başlatma İlkeleriyle Kapsayıcılı Görevleri Çalıştırma sayfasına bakın.