View a markdown version of this page

Saída de erro estruturada na AWS CLI - AWS Command Line Interface

Saída de erro estruturada na AWS CLI

Este tópico descreve os formatos de saída de erro estruturada para a AWS Command Line Interface (AWS CLI). A CLI grava erros em stderr e aceita os seguintes formatos:

  • enhanced (padrão): mensagem de erro com detalhes adicionais exibidos em linha. Use para depuração legível por humanos.

  • json: a saída é formatada como uma string JSON com todos os campos de erro. Use para automação e criação de scripts.

  • yaml: a saída é formatada como uma string YAML com todos os campos de erro. Use para automação e criação de scripts.

  • text: formata erros usando o formatador de texto. Use para verificação visual rápida.

  • table: formata erros usando o formatador de tabela. Use para verificação visual rápida.

  • legacy: formato de erro original sem detalhes estruturados. Use para compatibilidade com versões anteriores.

Configurar o formato do erro

É possível configurar o formato do erro usando qualquer um dos seguintes métodos:

Sinalizador da linha de comandos
$ aws <command> --cli-error-format json
Arquivo de configuração: (~/.aws/config)
[default] cli_error_format = json
Variável de ambiente
$ export AWS_CLI_ERROR_FORMAT=yaml

Formato de saída de erro

As seguintes seções descrevem cada formato.

Formato aprimorado (padrão)

O formato aprimorado exibe mensagens de erro com detalhes adicionais em linha para valores simples. Para estruturas complexas, o formato fornece uma dica para usar JSON ou YAML.

Exemplo: configuração de região ausente

aws: [ERROR]: An error occurred (NoRegion): You must specify a region. You can also configure your region by running "aws configure".

Exemplo: função do Lambda inexistente com campos adicionais

aws: [ERROR]: An error occurred (ResourceNotFoundException) when calling the GetFunction operation: Function not found: arn:aws:lambda:us-west-2:123456789012:function:nonexistent-function-12345 Additional error details: Type: User

A seção “Detalhes adicionais do erro” exibe apenas os campos definidos no modelo de estrutura de erro do serviço. Campos não modelados da resposta de erro não são exibidos.

Exemplo: campos de erro complexos

An error occurred (TransactionCanceledException) when calling the TransactWriteItems operation: Transaction cancelled, please refer cancellation reasons for specific reasons [ConditionalCheckFailed, None] Additional error details: CancellationReasons: <complex value> Use "--cli-error-format json" or another error format to see the full details.

Formato JSON

O formato JSON fornece uma representação estruturada com todos os campos de erro.

Exemplo: configuração de região ausente

{ "Code": "NoRegion", "Message": "You must specify a region. You can also configure your region by running \"aws configure\"." }

Exemplo: função do Lambda inexistente

{ "Code": "ResourceNotFoundException", "Message": "Function not found: arn:aws:lambda:us-west-2:123456789012:function:nonexistent-function-12345", "Type": "User" }

Formato YAML

O formato YAML fornece uma representação estruturada com todos os campos de erro.

Exemplo: configuração de região ausente

Code: NoRegion Message: You must specify a region. You can also configure your region by running "aws configure".

Exemplo: função do Lambda inexistente

Code: ResourceNotFoundException Message: "Function not found: arn:aws:lambda:us-west-2:123456789012:function:nonexistent-function-12345" Type: User

Formato de texto

O formato de texto usa o mesmo formatador usado para uma saída bem-sucedida do comando.

Exemplo: função do Lambda inexistente

ResourceNotFoundException Function not found: arn:aws:lambda:us-west-2:123456789012:function:nonexistent-function-12345 User

Formato da tabela

O formato de tabela usa o mesmo formatador usado para uma saída bem-sucedida do comando.

Exemplo: função do Lambda inexistente

------------------------------------------------------------------------------------------------------------------------------------| | error | +----------------------------+--------------------------------------------------------------------------------------------------+------+ | Code | Message | Type | +----------------------------+--------------------------------------------------------------------------------------------------+------+ | ResourceNotFoundException | Function not found: arn:aws:lambda:us-west-2:123456789012:function:nonexistent-function-12345 | User | +----------------------------+--------------------------------------------------------------------------------------------------+------+

Formato legado

O formato legado fornece o formato de erro original sem detalhes estruturados. Esse formato não inclui o prefixo “An error occurred (ErrorCode):” para exceções da CLI.

Exemplo: configuração de região ausente

aws: [ERROR]: You must specify a region. You can also configure your region by running "aws configure".

Exemplo: função do Lambda inexistente

An error occurred (ResourceNotFoundException) when calling the GetFunction operation: Function not found: arn:aws:lambda:us-west-2:123456789012:function:nonexistent-function-12345
nota

Agora os erros incluem consistentemente o prefixo aws: [ERROR]: para exceções da CLI. As versões anteriores nem sempre incluíam esse prefixo.

As seguintes exceções sempre usam o formato legado, independentemente do formato de erro configurado:

  • UnknownArgumentError: exibe informações de uso.

  • Interrupções do teclado (KeyboardInterrupt)

Exemplo completo

O seguinte exemplo mostra um comando com a formatação de erro JSON.

$ aws lambda get-function \ --function-name nonexistent-function-12345 \ --cli-error-format json

Saída (stderr):

{ "Code": "ResourceNotFoundException", "Message": "Function not found: arn:aws:lambda:us-west-2:123456789012:function:nonexistent-function-12345", "Type": "User" }

O campo Type é um membro de erro modelado, definido na estrutura de erro do serviço Lambda. Apenas os campos definidos no modelo de erro do serviço são incluídos na saída de erro estruturada.