Azure CLI'yi başarıyla kullanmaya yönelik ipuçları
Azure CLI, birçok kabuk ortamından Azure kaynaklarını yapılandırmanıza ve yönetmenize olanak tanıyan bir komut satırı aracıdır. Tercih ettiğiniz kabuk ortamını seçtikten ve Azure CLI'yı yükledikten sonra, yaygın tuzaklardan kaçınma ve Azure CLI'yi başarıyla kullanma hakkında yararlı ipuçları bulmak için bu makaleyi kullanın.
Belirli Azure CLI komutları hakkında daha fazla bilgi edinmek için Bkz . Azure CLI Başvurusu listesi.
Betik dili seçme
Azure CLI, birçok betik dilinde çalıştırabileceğiniz açık kaynak bir araçtır.
- Azure CLI komutları için alıntı, kaçış karakteri ve satır devamlılığı kurallarını belirleyen betik dilidir.
- Tek veya çift tırnak işaretleri, kaçış karakterleri veya diller arasında satır devamlılığı karakterleri içeren Azure CLI komut söz dizimini kopyalamak zor olabilir.
- Azure CLI için Microsoft belgelerinin çoğu Bash'te yazılır ve test edilir.
- PowerShell seçtiğiniz betik diliyse, yerel PowerShell betik dili işlevselliğine sahip Azure PowerShell aracını kullanmayı göz önünde bulundurun.
Azure CLI için betik dili seçenekleri hakkında daha fazla bilgi için bkz . Doğru komut satırı aracını seçme.
SSS
En sık sorulan Azure CLI sorularını yanıtlamanıza yardımcı olacak bazı bağlantılar aşağıdadır:
Makale bağlantısının bulunduğu konu alanı | İpucu |
---|---|
Ara sunucu arkasında çalışma | Ara sunucu üzerinde çalışma hakkında bilgi. |
Web Hesabı Yöneticisi (WAM) | WAM ve bunun nasıl devre dışı bırakılıp devre dışı bırakılıp devre dışı bırakılamları hakkında bilgi. |
Yapılandırma ayarları | Kullanılabilir Azure CLI yapılandırma ayarlarının listesi, Azure CLI özelliklerini açma/kapatma ve varsayılan değerleri ayarlama. |
Çıkış biçimleri | Azure kaynak kimliklerini değişkenlerde depolama ve Azure CLI komutları tarafından döndürülen gizli dizileri koruma yönergeleri. |
Dizede JSON değerlerini geçirme | JSON parametre değerleri için örnekler alıntılama. |
Destek yaşam döngüsü | Azure CLI sürümleri ve bağımlılıkları için desteklenen işletim sistemleri, betik dilleri ve hizmet sonu hakkında bilgi. |
REST API | Azure kaynağında belirli bir Azure CLI komutu kullanılamadığında kullanılacak alternatif az rest komutu. |
Azure CLI başvuru grupları | Alt gruplarda ve tüm Azure CLI komutlarında detaya gitme özelliğine sahip Azure CLI başvuru gruplarının A'ya listesi. |
Azure CLI makaleleri | Azure CLI başvuru komutlarını kullanan Hızlı Başlangıçların, Nasıl Yapılır kılavuzlarının ve Öğreticilerin A'ya listesi. Liste, kolay arama için başvuru grubuna ve alt gruba göre gruplandırılır. |
Azure CLI örnekleri | Azure-samples/azure-cli-samples GitHub deposundaki örnekler de dahil olmak üzere Örneklerin A'dan Z'ye listesi. |
Sorun giderme | Hata nedeni ve düzeltme ipuçları. |
Yenilikler | Yeni Azure CLI özelliklerinin kısa özeti. |
Değerleri başka bir komuta geçirme
Değer birden çok kez kullanılıyorsa bir değişkene atayın. Değişkenler, değerleri birden çok kez kullanmanıza veya daha fazla genel betik oluşturmanıza olanak sağlar. Bu örnek, az vm list komutu tarafından bulunan bir kimliği bir değişkene atar.
# assign the list of running VMs to a variable
running_vm_ids=$(az vm list --resource-group MyResourceGroup --show-details \
--query "[?powerState=='VM running'].id" --output tsv)
# verify the value of the variable
echo $running_vm_ids
Değer yalnızca bir kez kullanılıyorsa, boru kullanmayı göz önünde bulundurun. (Piping, bir komutun çıkışını ikinci bir komuta giriş olarak geçirir.)
az vm list --query "[?powerState=='VM running'].name" --output tsv | grep my_vm
Çok değerli listeler için aşağıdaki seçenekleri göz önünde bulundurun:
- Sonuç üzerinde daha fazla denetime ihtiyacınız varsa bir "for" döngüsü kullanın:
#!/usr/bin/env bash
for vmList in $(az vm list --resource-group MyResourceGroup --show-details --query "[?powerState=='VM running'].id" -output tsv); do
echo stopping $vmList
az vm stop --ids $vmList
if [ $? -ne 0 ]; then
echo "Failed to stop $vmList"
exit 1
fi
echo $vmList stopped
done
- Alternatif olarak, gelişmiş performans için işlemleri paralel olarak çalıştırmak için bayrağını kullanın
xargs
ve kullanmayı-P
göz önünde bulundurun:
az vm list --resource-group MyResourceGroup --show-details \
--query "[?powerState=='VM stopped'].id" \
--output tsv | xargs -I {} -P 10 az vm start --ids "{}"
- Son olarak Azure CLI, xargs'nin aynı etkisini elde etmek için komutları paralel
--ids
olarak işlemek için yerleşik desteğe sahiptir.@-
borudan değerleri almak için kullanılır:
az vm list --resource-group MyResourceGroup --show-details \
--query "[?powerState=='VM stopped'].id" \
--output tsv | az vm start --ids @-
Bash yapılarını Azure CLI ile kullanma hakkında daha fazla bilgi için döngüler, durum deyimleri,.. sonra.. değilse ve hata işleme için bkz . Bash'i Azure CLI ile kullanmayı öğrenme.
Yaygın güncelleştirme parametreleri
Azure CLI komut grupları genellikle bir güncelleştirme komutuna sahiptir. Örneğin Azure Sanal Makineler az vm update komutunu içerir. Güncelleştirme komutlarının çoğu üç yaygın parametreyi sunar: --add
, --set
ve --remove
.
--set
ve --add
parametreleri, boşlukla ayrılmış anahtar-değer çiftlerinin listesini alır: key1=value1 key2=value2
. Hangi özellikleri güncelleştirebileceğinizi görmek için az vm show gibi bir show komutu kullanın.
az vm show --resource-group VMResources --name virtual-machine-01
Komutu basitleştirmek için bir JSON dizesi kullanmayı göz önünde bulundurun. Örneğin, bir sanal makineye yeni bir veri diski eklemek için aşağıdaki değeri kullanın:
az vm update --resource-group VMResources --name virtual-machine-01 \
--add storageProfile.dataDisks "{\"createOption\": \"Attach\", \"managedDisk\":
{\"id\":
\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/yg/providers/Microsoft.Compute/disks/yg-disk\"},
\"lun\": 1}"
Genel kaynak komutları
Çalışmak istediğiniz bir hizmette Azure CLI desteği olmayabilir. Bu kaynaklarla çalışmak için az resource veya az rest komutlarını kullanabilirsiniz.
Eşzamanlı yürütme
Azure CLI komutlarını aynı makinede eşzamanlı olarak çalıştırırsanız, aynı Microsoft Kimlik Doğrulama Kitaplığı (MSAL) belirteç önbelleğine birden çok Azure CLI komutu yazarsa yazma çakışmaları oluşabilir.
Olası hataları önlemek için, her betik için ortam değişkenini AZURE_CONFIG_DIR
ayrı bir dizine ayarlayarak her betik için Azure CLI yapılandırma klasörünü yalıtın. Bu betikteki Azure CLI komutları yapılandırmayı ve belirteç önbelleğini varsayılan ~/.azure
klasör yerine yapılandırılmış konuma kaydeder.
export AZURE_CONFIG_DIR=/my/config/dir
Zaman uyumsuz işlemler
Azure'daki işlemler dikkate değer bir süre alabilir. Örneğin, bir veri merkezinde sanal makine yapılandırmak anlık bir işlem değildir. Azure CLI, diğer komutları kabul etmek için komut bitene kadar bekler. Bu nedenle birçok komut burada gösterildiği gibi bir --no-wait
parametre sunar:
az group delete --name MyResourceGroup --no-wait
Bir kaynak grubunu sildiğinizde, buna ait olan tüm kaynaklar da kaldırılır. Bu kaynakların kaldırılması uzun sürebilir. komutunu parametresiyle --no-wait
çalıştırdığınızda, konsol kaldırma işlemini kesintiye uğratmadan yeni komutları kabul eder.
Birçok komut, bazı koşullar karşılanıncaya kadar konsolu duraklatan bir bekleme seçeneği sunar. Aşağıdaki örnek, paralel olarak bağımsız kaynaklar oluşturmayı desteklemek için az vm wait komutunu kullanır:
az vm create --resource-group VMResources --name virtual-machine-01 --image centos --no-wait
az vm create --resource-group VMResources --name virtual-machine-02 --image centos --no-wait
subscription=$(az account show --query "id" -o tsv)
vm1_id="/subscriptions/$subscription/resourceGroups/VMResources/providers/Microsoft.Compute/virtualMachines/virtual-machine-01"
vm2_id="/subscriptions/$subscription/resourceGroups/VMResources/providers/Microsoft.Compute/virtualMachines/virtual-machine-02"
az vm wait --created --ids $vm1_id $vm2_id
her iki kimlik de oluşturulduktan sonra konsolunu yeniden kullanabilirsiniz.
Betik örnekleri
Azure Sanal Makineler ile çalışırken değişkenleri kullanma ve listede döngü oluşturma örnekleri aşağıda verilmiştir. Azure CLI ile Bash yapılarını kullanmayla ilgili döngüler, durum deyimleri ve varsa dahil olmak üzere ayrıntılı örnekler için.. sonra.. değilse ve hata işleme için bkz . Bash'i Azure CLI ile kullanmayı öğrenme.
Değişkenlerin kimliklerini kaydetmek için şu betikleri kullanın:
ECHO OFF
SETLOCAL
FOR /F "tokens=* USEBACKQ" %%F IN (
`az vm list --resource-group VMResources --show-details --query "[?powerState=='VM running'].id" --output tsv`
) DO (
SET "vm_ids=%%F %vm_ids%" :: construct the id list
)
az vm stop --ids %vm_ids% :: CLI stops all VMs in parallel
Listede döngü yapmak için şu betikleri kullanın:
ECHO OFF
SETLOCAL
FOR /F "tokens=* USEBACKQ" %%F IN (
`az vm list --resource-group VMResources --show-details --query "[?powerState=='VM running'].id" --output tsv`
) DO (
ECHO Stopping %%F
az vm stop --ids %%F
)