Todos os produtos
Search
Central de documentação

Alibaba Cloud CLI:Controle como as chamadas de API do Alibaba Cloud CLI são executadas

Última atualização: Sep 22, 2026

Ao usar o Alibaba Cloud CLI para chamar APIs, talvez você precise recuperar todos os dados paginados de uma vez, aguardar a criação de um recurso antes de prosseguir ou verifique a correção de um comando sem que o execute de fato. Este tópico descreve os parâmetros globais para esses três cenários e como os configure.

Escolha o parâmetro adequado

Os três são parâmetros globais que se aplicam a uma única chamada de API. Escolha o parâmetro de acordo com o seu cenário:

Cenário

Parâmetro

Uma API do tipo List retorna apenas uma página, mas você precisa de todos os dados

--pager

Aguardar a disponibilidade de um recurso após a criação

--waiter

Verifique a correção de um comando sem que o execute de fato

--cli-dry-run

Regras de exclusão mútua

  • O --pager e o --waiter não podem ser usados juntos. O CLI retorna o seguinte erro se você combiná-los: ERROR: flag --pager is exclusive with --waiter.

  • O --cli-dry-run pode coexistir com o --pager ou o --waiter, mas o CLI não envia a requisição, portanto a paginação e o polling não são executados.

Agregação automática de todas as páginas (--pager)

Uso básico

Adicione o --pager a qualquer API paginada do tipo List ou Describe. O CLI itera automaticamente por todas as páginas e mescla os resultados em uma única saída.

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

Dois modos de paginação

O CLI determina automaticamente qual modo usar. Nenhuma configuração manual é necessária.

  • Modo PageNumber: A resposta da API contém os campos PageNumber, PageSize e TotalCount. O CLI incrementa o número da página até que todas as páginas sejam recuperadas.

  • Modo NextToken: A resposta da API contém um campo NextToken. O CLI passa o valor de NextToken retornado como o próximo parâmetro da requisição até que o NextToken seja uma string vazia.

Nota

Se a resposta contiver um campo NextToken com um valor não vazio, o modo NextToken será usado. Caso contrário, o modo PageNumber será utilizado.

Mapeamento de campos

Os subparâmetros a seguir são todos opcionais. Especifique estes apenas quando uma API usar nomes de campo não padrão para as informações de paginação, indicando ao CLI quais nomes de campo a API utiliza. Na maioria dos casos, apenas adicionar o --pager é suficiente.

Subparâmetro

Padrão

Quando especificar

path

(nenhum)

O caminho do array de dados na resposta não está no nível superior (por exemplo, Vpcs.Vpc[])

PageNumber

PageNumber

A API usa um nome de campo diferente para o número da página

PageSize

PageSize

A API usa um nome de campo diferente para o tamanho da página

TotalCount

TotalCount

A API usa um nome de campo diferente para a contagem total de registros

NextToken

NextToken

A API usa um nome de campo diferente para o token de paginação

Sintaxe: --pager key=value key=value. Vários subparâmetros são separados por espaços. O value é o nome real do campo na resposta da API, não um valor específico. Por exemplo, PageNumber=CurrentPage significa que a API usa o campo CurrentPage para representar o número da página, e não que você está especificando uma página inicial.

Exemplos de mapeamento de campos personalizados

O array de dados está aninhado em Vpcs.Vpc[] na resposta da API:

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

A API usa Token em vez de NextToken (xxx e list-yyy são comandos de espaço reservado):

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

Aguarde o status do recurso (--waiter)

Uso básico

O CLI chama o comando atual repetidamente, extrai um valor de cada resposta usando a expressão expr e interrompe o polling quando o valor extraído é igual ao valor de to, retornando a última resposta. Quando timeout e interval não são especificados, o CLI faz o polling a cada 5 segundos por no máximo 180 segundos (3 minutos) por padrão.

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

Subparâmetros

Subparâmetro

Obrigatório

Padrão

Intervalo de valores

Descrição

expr

Sim

—

—

Uma expressão JMESPath que especifica o campo a ser consultado no polling da resposta JSON.

to

Sim

—

—

O valor alvo. O polling é interrompido e os dados são retornados quando o resultado de expr corresponde a este valor.

timeout

Não

180

1–600 (segundos)

O tempo máximo de espera do polling. Se o valor alvo não for correspondido dentro deste período, o CLI retorna um erro e encerra a execução.

interval

Não

5

2–10 (segundos)

O intervalo entre duas tentativas de polling.

  • O campo referenciado por expr deve ser do tipo string. Se o campo na resposta da API for um número ou um booleano JSON (true/false), o CLI retornará um erro imediatamente.

  • O valor de to é sempre comparado como uma string. Para status numéricos, escreva to=1 (e não to=1.0). Se a API retornar um booleano como string (por exemplo, "true"), escreva to=true.

  • Se uma chamada de API retornar um erro HTTP durante o polling, o CLI será interrompido imediatamente e exibirá o erro sem tentar novamente.

  • Quando o período de timeout expira sem corresponder ao valor alvo, o CLI encerra com um código de saída diferente de zero e envia o seguinte para o stderr:

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

    O valor last é o valor real obtido na última consulta do polling.

Controle a frequência do polling

Reduza o intervalo de polling (aguarde até 30 segundos, faça polling a cada 2 segundos):

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

Aumente o tempo de espera para recursos que demoram mais para iniciar (aguarde até 10 minutos, faça polling a cada 10 segundos):

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

Verifique o comando sem executá-lo (--cli-dry-run)

Uso básico

Um interruptor booleano que entra em vigor quando adicionado. Nenhuma atribuição de valor é necessária. O CLI constrói a requisição completa, imprime os detalhes da requisição, mas não a envia para o servidor.

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

Conteúdo da saída

A saída inclui: método HTTP, Endpoint, API Action e Query Parameters. Você pode usar isso para verificar se o endpoint está correto e se a serialização dos parâmetros está conforme o esperado.

Exemplo de saída:

============================================================
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"
}

Cenários típicos

  • Visualize antes de executar operações sensíveis (como delete-instance ou stop-instance). Confirme que os parâmetros estão corretos, remova o --cli-dry-run e execute.

  • Verifique a correção da montagem do comando em pipelines de CI/CD (sem consumir recursos ou gerar custos).

Cenário de automação: fluxo de trabalho assíncrono completo

Cenário: Crie uma VPC, aguarde até que o status fique disponível e, em seguida, recupere a lista completa de VPCs. O exemplo a seguir demonstra como os três parâmetros trabalham juntos para concluir uma operação assíncrona.

Passo 1: Verifique o comando de criação com o --cli-dry-run**

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

Confirme que o Endpoint e a serialização dos parâmetros estão corretos, remova o --cli-dry-run e execute.

Passo 2: Execute a criação e extraia o ID da VPC

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')

O --cli-query extrai o ID da VPC da resposta.

Passo 3: Aguarde a instância ficar pronta com o --waiter**

O CLI faz polling a cada 5 segundos até que o status mude para Available ou o tempo limite de 60 segundos seja atingido:

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

Passo 4: Recupere todas as VPCs com o --pager**

Quando você tem muitas VPCs, sem o --pager, apenas a primeira página é retornada e a nova VPC pode não ficar visível. Use o --pager para confirmar que a VPC recém-criada aparece na lista:

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

Passo 5: Exclua a VPC (opcional)

Exclua a VPC criada anteriormente:

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

Perguntas frequentes

O --pager e o --waiter podem ser usados juntos?

Não. Eles são mutuamente exclusivos. O CLI retorna o seguinte erro: ERROR: flag --pager is exclusive with --waiter. Se você precisar aguardar um recurso ficar pronto e, em seguida, recuperar a lista completa, use dois comandos separados.

Documentos relacionados