Tüm Ürünler
Search
Belge Merkezi

Alibaba Cloud CLI:Control how Alibaba Cloud CLI API calls are executed

Son Güncelleme:Oct 06, 2026

Alibaba Cloud CLI ile API çağrıları yaparken tüm sayfalı verileri tek seferde almak, bir kaynağın oluşturulmasını beklemek veya komutu gerçekten çalıştırmadan doğrulamak gerekebilir. Bu konu, bu üç senaryoyu gerçekleştiren genel parametreleri ve bunların nasıl yapılandırılacağını açıklar.

Doğru parametreyi seçin

Üçü de tek bir API çağrısına uygulanan genel parametrelerdir. Senaryonuzuna göre parametre seçin:


Senaryo


Parametre


List API yalnızca bir sayfa döndürür ancak tüm verilere ihtiyacınız vardır


--pager


Oluşturma işleminden sonra kaynak durumunun hazır olmasını bekleyin


--waiter


Komutu gerçekten çalıştırmadan doğruluğunu kontrol edin


--cli-dry-run

Karşılıklı dışlama kuralları

  • --pager ve --waiter birlikte kullanılamaz. Bunları birleştirirseniz CLI aşağıdaki hatayı döndürür: ERROR: flag --pager is exclusive with --waiter.

  • --cli-dry-run, --pager veya --waiter ile birlikte kullanılabilir; ancak istek gönderilmediği için sayfalama ve yoklama işlemleri gerçekleşmez.

Tüm sayfaları otomatik olarak birleştirme (--pager)

Temel kullanım

Herhangi bir sayfalı List/Describe API'sine --pager ekleyin. CLI tüm sayfalar arasında otomatik olarak yineleme yapar ve sonuçları tek bir çıktıda birleştirir.

aliyun ecs describe-instances --biz-region-id cn-hangzhou --pager

İki sayfalama modu

CLI hangi modun kullanılacağını otomatik olarak belirler. Manuel yapılandırmaya gerek yoktur.

  • PageNumber modu: API yanıtı PageNumber, PageSize ve TotalCount alanlarını içerir. CLI tüm sayfalar alınana kadar sayfa numarasını artırır.

  • NextToken modu: API yanıtı bir NextToken alanı içerir. CLI NextToken boş bir dize olana kadar döndürülen NextToken değerini sonraki istek parametresi olarak iletir.

Not

Yanıt boş olmayan bir değere sahip NextToken alanı içeriyorsa NextToken modu kullanılır. Aksi takdirde PageNumber modu kullanılır.

Alan eşleme

Aşağıdaki alt parametrelerin tümü isteğe bağlıdır. API'nin sayfalama bilgileri için varsayılan olmayan alan adları kullandığı durumlarda CLI'ye API'nin hangi alan adlarını kullandığını bildirmek için bunları belirtmeniz yeterlidir. Çoğu durumda yalnızca --pager eklemek yeterlidir.


Alt parametre


Varsayılan


Ne zaman belirtilmeli


path


(yok)


Yanıttaki veri dizisi yolu en üst düzeyde değildir (örneğin Vpcs.Vpc[])


PageNumber


PageNumber


API sayfa numarası için farklı bir alan adı kullanır


PageSize


PageSize


API sayfa boyutu için farklı bir alan adı kullanır


TotalCount


TotalCount


API toplam kayıt sayısı için farklı bir alan adı kullanır


NextToken


NextToken


API sayfalama belirteci için farklı bir alan adı kullanır

Sözdizimi: --pager key=value key=value. Birden fazla alt parametre boşlukla ayrılır. value değeri belirli bir değer değil API yanıtındaki gerçek alan adıdır. Örneğin PageNumber=CurrentPage ifadesi başlangıç sayfası belirttiğiniz anlamına gelmez; API'nin sayfa numarasını temsil etmek için CurrentPage alanını kullandığı anlamına gelir.

Özel alan eşleme örnekleri

Veri dizisi API yanıtında Vpcs.Vpc[] içinde iç içe yerleştirilmiştir:

aliyun vpc describe-vpcs --biz-region-id cn-hangzhou --pager path=Vpcs.Vpc[]

API NextToken yerine Token kullanır (xxx ve list-yyy yer tutucu komutlardır):

aliyun xxx list-yyy --biz-region-id cn-hangzhou --pager NextToken=Token

Kaynak durumunu bekleme (--waiter)

Temel kullanım

CLI geçerli komutu tekrarlı olarak çağırır her yanıttan expr ifadesini kullanarak bir değer çıkarır ve çıkarılan değer to değerine eşit olduğunda yoklamayı durdurarak son yanıtı döndürür. timeout ve interval belirtilmediğinde CLI varsayılan olarak 5 saniyede bir olmak üzere maksimum 180 saniye (3 dakika) boyunca yoklama yapar.

aliyun ecs describe-instances \
  --biz-region-id cn-hangzhou \
  --instance-ids '["i-bp1xxxxx"]' \
  --waiter expr='Instances.Instance[0].Status' to=Running

Alt parametreler


Alt parametre


Gerekli


Varsayılan


Değer aralığı


Açıklama


expr


Evet


—


—


JSON yanıtında yoklanacak alanı belirten bir JMESPath ifadesidir.


to


Evet


—


—


Hedef değer. expr sonucu bu değerle eşleştiğinde yoklama durur ve veriler döndürülür.


timeout


Hayır


180


1–600 (saniye)


Maksimum yoklama bekleme süresi. Bu süre içinde hedef değer eşleşmezse CLI hata döndürür ve çıkar.


interval


Hayır


5


2–10 (saniye)


İki yoklama denemesi arasındaki aralık.

  • expr tarafından referans verilen alan dize türünde olmalıdır. API yanıtındaki alan bir sayı veya JSON boole değeri (true/false) ise CLI hemen hata döndürür.

  • to değeri her zaman dize olarak karşılaştırılır. Sayısal durumlar için to=1.0 yerine to=1 yazın. API bir boole değerini dize olarak döndürürse (örneğin "true") to=true yazın.

  • Yoklama sırasında bir API çağrısı HTTP hatası döndürürse CLI yeniden deneme yapmadan hemen durur ve hatayı çıktılar.

  • timeout süresi dolup hedef değer eşleşmezse CLI sıfır olmayan bir çıkış koduyla çıkar ve aşağıdakileri stderr kanalına yazar:

    wait 'Instances.Instance[0].Status' to 'Running' timeout(180seconds), last='Pending'

    last değeri son yoklamadan elde edilen gerçek değerdir.

Yoklama sıklığını kontrol etme

Yoklama aralığını kısaltın (maksimum 30 saniye bekleyin her 2 saniyede bir yoklayın):

aliyun ecs describe-instances \
  --biz-region-id cn-hangzhou \
  --instance-ids '["i-bp1xxxxx"]' \
  --waiter expr='Instances.Instance[0].Status' to=Running timeout=30 interval=2

Başlatılması daha uzun süren kaynaklar için bekleme süresini uzatın (maksimum 10 dakika bekleyin her 10 saniyede bir yoklayın):

aliyun ecs describe-instances \
  --biz-region-id cn-hangzhou \
  --instance-ids '["i-bp1xxxxx"]' \
  --waiter expr='Instances.Instance[0].Status' to=Running timeout=600 interval=10

Komutu çalıştırmadan doğrulama (--cli-dry-run)

Temel kullanım

Eklendiğinde etkili olan bir boole anahtarıdır. Değer atamasına gerek yoktur. CLI tam isteği oluşturur istek ayrıntılarını yazdırır ancak sunucuya göndermez.

aliyun ecs describe-instances --biz-region-id cn-hangzhou --cli-dry-run

Çıktı içeriği

Çıktı şunları içerir: HTTP yöntemi Endpoint API Action ve Query Parameters. endpoint adresinin doğru olup olmadığını ve parametre serileştirmesinin beklendiği gibi olup olmadığını doğrulamak için bunu kullanabilirsiniz.

Örnek çıktı:

============================================================
DRY-RUN MODE: Request Details (No actual API call)
============================================================
Method: POST
URL:
Endpoint: ecs.cn-hangzhou.aliyuncs.com
API Version: 2014-05-26
API Action: DescribeInstances
Protocol: HTTPS
Style: RPC
Query Parameters:
RegionId: cn-hangzhou
============================================================
Request NOT sent (dry-run mode)
============================================================
{
   "message": "dry-run mode - no request sent"
}

Tipik senaryolar

  • Hassas işlemleri (delete-instance veya stop-instance gibi) yürütmeden önce ön izleme yapın. Parametrelerin doğru olduğunu onayladıktan sonra --cli-dry-run parametresini kaldırarak işlemi yürütün.

  • CI/CD işlem hatlarında komut birleştirme doğruluğunu doğrulayın (kaynak tüketmeden veya maliyet oluşturmadan).

Otomasyon senaryosu: tam eşzamansız iş akışı

Senaryo: Bir VPC oluşturun durum available (kullanılabilir) olana kadar bekleyin ve ardından tam VPC listesini alın. Aşağıda üç parametrenin bir eşzamansız işlemi tamamlamak için birlikte nasıl çalıştığı gösterilmektedir.

Adım 1: Oluşturma komutunu --cli-dry-run ile doğrulayın

aliyun vpc create-vpc \
    --biz-region-id cn-hangzhou \
    --cidr-block 172.16.0.0/12 \
    --vpc-name test-vpc \
    --cli-dry-run

Endpoint adresinin ve parametre serileştirmesinin doğru olduğunu onayladıktan sonra --cli-dry-run parametresini kaldırarak işlemi yürütün.

Adım 2: Oluşturmayı yürütün ve VPC ID'sini çıkarın

VPC_ID=$(aliyun vpc create-vpc \
    --biz-region-id cn-hangzhou \
    --cidr-block 172.16.0.0/12 \
    --vpc-name test-vpc \
    --cli-query 'VpcId')

--cli-query, yanıtta VPC ID'sini çıkarır.

Adım 3: Örnek hazır olana kadar --waiter ile bekleyin

CLI durum Available olana veya 60 saniyelik zaman aşımına ulaşılana kadar her 5 saniyede bir yoklama yapar:

aliyun vpc describe-vpcs \
    --biz-region-id cn-hangzhou \
    --vpc-id "$VPC_ID" \
    --waiter expr='Vpcs.Vpc[0].Status' to=Available timeout=60

Adım 4: Tüm VPC'leri --pager ile alın

Çok sayıda VPC'niz varsa --pager olmadan yalnızca ilk sayfa döndürülür ve yeni VPC görünmeyebilir. Yeni oluşturulan VPC'nin listede göründüğünü onaylamak için --pager kullanın:

aliyun vpc describe-vpcs --biz-region-id cn-hangzhou --pager

Adım 5: VPC'yi silin (isteğe bağlı)

Daha önce oluşturulan VPC'yi silin:

aliyun vpc delete-vpc --vpc-id $VPC_ID 

SSS

--pager ve --waiter birlikte kullanılabilir mi?

Hayır. Bunlar birbirini dışlar. CLI aşağıdaki hatayı döndürür: ERROR: flag --pager is exclusive with --waiter. Bir kaynağın hazır olmasını beklemeniz ve ardından tam listeyi almanız gerekiyorsa iki ayrı komut kullanın.

İlgili belgeler