ESPAÇO PUBLICITÁRIO DISPONÍVEL · FALE CONOSCO

Como Usar o Amazon Q Developer na CLI: Autocompletar Comandos, Explicar Erros e Gerar Scripts em Bash

365Finds Editorial
11.430 artigos Wiki catalogados

Use o 365 Wiki com sua IA

Copie o prompt abaixo, cole na IA que você já usa e faça sua pergunta.

Baixar o Skill completo

Experimente primeiro com o prompt. Se você usa o 365 Wiki com frequência, instale o Skill completo do 365Wiki para não precisar colá-lo novamente. Se não usa uma IA específica, as versões web do Gemini ou Microsoft Copilot também servem.

Para engenheiros de DevOps e desenvolvedores, o terminal é a interface primária para gerenciar infraestrutura, orquestrar pipelines de CI/CD e diagnosticar falhas em tempo real. No entanto, memorizar dezenas de argumentos e parâmetros para ferramentas como aws, kubectl, docker e terraform—ou decifrar saídas de erro enigmáticas durante incidentes de produção—consome tempo e foco. A interface de linha de comando (CLI) do Amazon Q Developer resolve essas dificuldades ao integrar inteligência artificial generativa e autocompletar contextual diretamente em ambientes macOS, Linux e WSL.

Construído com base nas tecnologias do Fig e do Amazon CodeWhisperer for CLI, o Amazon Q Developer CLI funciona como um copiloto interativo no shell. Ele oferece menus visuais suspensos de autocompletar em tempo real para mais de 500 ferramentas de linha de comando, traduz comandos descritos em linguagem natural, diagnostica mensagens de erro e bloqueios de permissão por meio de chat integrado no próprio terminal e auxilia na geração de scripts robustos em Bash.


1. Pré-requisitos e Instalação

O Amazon Q Developer CLI possui suporte nativo para macOS e Linux, além de operar no Windows por meio do Windows Subsystem for Linux (WSL). Ele integra-se perfeitamente aos interpretadores de comandos mais utilizados, como zsh, bash e fish.

Etapas de Instalação

No macOS, instale o utilitário através do Homebrew:

brew install amazon-q

No Linux ou WSL, utilize o instalador oficial via script:

curl --proto '=https' --tlsv1.2 -sSf https://desktop-release.q.us-east-1.amazonaws.com/install.sh | bash

Após o término da instalação, abra uma nova janela de terminal ou execute o comando de inicialização para carregar as integrações de shell:

q

Autenticação e Modalidades de Uso

O Amazon Q Developer oferece dois modelos de autenticação:

  1. Plano Gratuito (Desenvolvedores Individuais): Autenticação simples por meio de um AWS Builder ID gratuito. Não exige cartão de crédito ou conta corporativa da AWS, incluindo autocompletar irrestrito na CLI, tradução de comandos e uma cota mensal generosa de interações de chat.
  2. Plano Pro (Empresas e Equipes): Gerenciamento centralizado via AWS IAM Identity Center (US$ 19 por usuário ao mês). Habilita login único corporativo (SSO), políticas estritas de conformidade, faturamento centralizado e conexão com repositórios privados da organização.

Inicie a sessão no terminal executando:

q login

Depois de autenticar-se na janela do navegador, valide o ambiente local executando a ferramenta de diagnóstico:

q doctor

Esse comando analisa os ganchos do shell, o status dos daemons em segundo plano, a validade das credenciais e a conectividade de rede com os serviços da AWS.


2. Autocompletar Inteligente para mais de 500 Ferramentas de CLI

Ao contrário do autocompletar convencional baseado na tecla Tab, que depende de correspondências estáticas ou scripts pré-configurados, o Amazon Q Developer exibe uma janela flutuante dinâmica conforme você digita.

Como Funciona o Autocompletar

Ao digitar comandos suportados—como git, docker, kubectl, aws, npm ou helm—um menu suspenso aparece imediatamente abaixo do cursor, exibindo subcomandos, parâmetros, descrições detalhadas e enumerações válidas.

Exemplo Prático: Sintaxe Complexa da AWS CLI sem Consultar a Documentação

Configurar filtros detalhados na AWS CLI costuma exigir pausas para consultar documentações extensas. Com o Amazon Q CLI:

# A digitação abaixo aciona explicações imediatas de flags e opções válidas:
aws ec2 describe-instances --filters "Name=instance-state-name,Values=

O menu suspensa exibe valores como running, stopped e pending, prevenindo erros de digitação e poupando tempo de alternância entre o navegador e o terminal.


3. Explicação de Erros de Shell e Diagnóstico de Falhas

Falhas durante execuções de pipelines de CI/CD ou provisionamentos de infraestrutura frequentemente retornam códigos de saída vagos ou erros de negação de acesso sem contexto. O Amazon Q Developer CLI oferece diagnóstico interativo direto no terminal por meio do comando q chat.

Iniciando o Chat no Terminal

Para abrir uma sessão de conversa interativa sem sair do diretório atual, execute:

q chat

Dentro do q chat, o assistente mantém o contexto do diretório de trabalho atual, o histórico do shell e o estado do ambiente local.

Diagnóstico de Permissões e Erros de Chamada de API

Quando um comando falhar, cole o comando executado e a mensagem de erro (stderr) na janela de chat.

Cenário de Falha: Acesso Negado no Amazon S3

An error occurred (AccessDenied) when calling the PutObject operation:
User: arn:aws:iam::123456789012:user/deployer is not authorized to perform:
s3:PutObject on resource: "arn:aws:s3:::prod-artifacts-vault/v2/app.tar.gz"
because no identity-based policy allows the s3:PutObject action.

Pergunta ao q chat:

"Explique por que esta operação PutObject falhou e gere uma política IAM em JSON com privilégios mínimos permitindo que o usuário deployer envie arquivos exclusivamente para o bucket prod-artifacts-vault."

O Amazon Q Developer processa o erro e fornece:

  1. Explicação clara indicando que falta uma política baseada em identidade com a permissão explícita s3:PutObject.
  2. A política IAM recomendada respeitando o princípio do menor privilégio:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowArtifactUpload",
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:PutObjectAcl"
      ],
      "Resource": "arn:aws:s3:::prod-artifacts-vault/*"
    }
  ]
}
  1. Comandos de teste na AWS CLI para validar o upload assim que a política for vinculada.

Análise de Códigos de Saída do Sistema Operacional

O Amazon Q também interpreta erros comuns do ambiente de shell:


4. Traduzindo Linguagem Natural em Comandos com q translate

Quando o objetivo operacional é claro, mas os modificadores exatos de uma ferramenta são difíceis de lembrar, o q translate traduz instruções em linguagem natural para comandos precisos.

Utilização e Atalhos

Invoque o utilitário pelo comando completo ou usando o atalho com o prefixo #:

q translate "find all files in /var/log modified in the last 24 hours larger than 50MB"

Ou usando o atalho rápido:

# localizar todos os arquivos em /var/log modificados nas ultimas 24 horas maiores que 50MB

O Amazon Q interpreta o pedido e gera o comando apropriado:

find /var/log -type f -mtime -1 -size +50M

Confirmação Interativa de Segurança

O Amazon Q Developer CLI não executa comandos automaticamente sem autorização prévia. Ele oferece três opções:

Essa trava de segurança é essencial em servidores de produção para evitar comandos acidentais ou destrutivos.


5. Gerando Scripts de Automação Estruturados em Bash

Para tarefas de infraestrutura que exigem tratamento de erros, checagens de integridade e lógica condicional, comandos de linha única são insuficientes. Com o q chat, engenheiros podem projetar scripts completos e defensivos em Bash.

Fluxo de Criação de Scripts

  1. Abra o q chat no diretório base do projeto.
  2. Especifique os requisitos, regras de negócio e exigências de tratamento de exceções.

Exemplo de Solicitação:

"Crie um script Bash pronto para produção que identifique contêineres Docker cujo nome comece com 'prod-*', realize o backup do PostgreSQL usando pg_dumpall, compacte com gzip, faça o upload para o bucket S3 'company-db-backups' e delete backups locais com mais de 3 dias. Inclua tratamento rigoroso de falhas e logs formatados."

Estrutura do Script Produzido

O Amazon Q gera um código alinhado às melhores práticas de engenharia de software para Linux:

#!/usr/bin/env bash
# backup_docker_postgres.sh - Automação de backup de PostgreSQL em contêineres e upload para S3

set -euo pipefail
IFS=$'\n\t'

BACKUP_DIR="/var/backups/postgres"
S3_BUCKET="s3://company-db-backups"
TIMESTAMP="$(date +"%Y%m%d_%H%M%S")"
RETENTION_DAYS=3

log() {
  echo "[$(date +'%Y-%m-%d %H:%M:%S')] $*"
}

cleanup() {
  log "Removendo arquivos de backup locais com mais de ${RETENTION_DAYS} dias..."
  find "${BACKUP_DIR}" -type f -name "*.sql.gz" -mtime +"${RETENTION_DAYS}" -delete
}

trap cleanup EXIT

mkdir -p "${BACKUP_DIR}"

# Localizar contêineres de produção ativos
CONTAINERS=$(docker ps --filter "name=prod-*" --format "{{.Names}}")

if [[ -z "${CONTAINERS}" ]]; then
  log "Nenhum contêiner correspondente a 'prod-*' encontrado. Encerrando."
  exit 0
fi

for CONTAINER in ${CONTAINERS}; do
  ARCHIVE_FILE="${BACKUP_DIR}/${CONTAINER}_${TIMESTAMP}.sql.gz"
  log "Iniciando backup do contêiner: ${CONTAINER}..."

  # Compactação em stream para evitar armazenamento temporário em disco sem compressão
  docker exec -t "${CONTAINER}" pg_dumpall -U postgres | gzip > "${ARCHIVE_FILE}"

  log "Enviando ${ARCHIVE_FILE} para ${S3_BUCKET}/${CONTAINER}/..."
  aws s3 cp "${ARCHIVE_FILE}" "${S3_BUCKET}/${CONTAINER}/"

  log "Backup e upload concluídos com sucesso para: ${CONTAINER}"
done

log "Todos os backups de banco de dados foram concluídos."

Características Técnicas Relevantes


6. Cenários de Aplicação Prática em DevOps

Cenário OperacionalDificuldade TradicionalSolução com Amazon Q Developer CLI
Depuração de Pods no KubernetesSintaxe complexa de filtros JSONPath e seletores no kubectlExecutar: q translate "listar pods no namespace production com mais de 5 reinícios em formato de tabela"
Auditoria de Recursos Ociosos na NuvemVolumes de disco órfãos gerando cobranças desnecessáriasExecutar: q translate "localizar volumes EBS desanexados em us-east-1 e exibir seus VolumeIds"
Resolução de Conflitos no GitEstados de HEAD desanexado ou fluxos complexos de rebaseNo q chat: Colar a saída do git status para receber instruções sequenciais de resolução de conflito
Falhas em Builds de CI/CDLogs gigantescos e difíceis de interpretar em runnersNo q chat: Colar o trecho central do erro para diagnosticar divergências de dependências ou variáveis faltantes

7. Diretrizes de Segurança para Uso em Produção

Ao adotar ferramentas baseadas em IA no terminal, mantenha práticas operacionais responsáveis:

  1. Inspecione Antes de Executar: Diante de ações que modifiquem ou excluam recursos (rm, dd, kubectl delete, aws s3 rm), selecione sempre Edit para conferir os caminhos e parâmetros antes de acionar o comando.
  2. Proteja Informações Confidenciais: Nunca cole chaves de acesso, senhas ou tokens secretos no q chat. Utilize nomes de variáveis de ambiente, como ${DATABASE_PASSWORD}, nos prompts.
  3. Respeito aos Privilégios do IAM: O Amazon Q CLI não contorna as permissões de segurança existentes. Ele atua sob o escopo estrito das credenciais da AWS configuradas no ambiente local (aws sts get-caller-identity).
  4. Validação em Ambientes de Teste: Teste scripts gerados em contêineres locais ou instâncias de homologação antes de integrá-los a agendamentos cron ou pipelines principais.

8. Conclusão e Recomendação

O Amazon Q Developer CLI aproxima a documentação técnica da execução prática no terminal. Para desenvolvedores individuais e equipes enxutas, o Plano Gratuito com AWS Builder ID viabiliza autocompletar avançado, diagnóstico de erros e tradução de comandos sem qualquer custo financeiro. Para organizações de médio e grande porte que demandam login único (SSO), governança centralizada e controle corporativo, o Plano Pro por US$ 19 mensais por usuário oferece o suporte institucional necessário.

Adotar o Amazon Q Developer CLI permite que times de engenharia reduzam tarefas repetitivas, diminuam erros humanos de digitação e operem infraestruturas complexas com mais agilidade e segurança.


Referências