O AWS CLI é uma ferramenta muito útil para realizar tarefas simples na AWS (até algumas mais elaboradas), explorar algumas chamadas de API e fazer pequenos experimentos.
O objetivo deste guia não é transformar você em um ninja do AWS CLI, mas ensinar a usá-lo de uma maneira efetiva. Você aprenderá alguns comandos para desenvolver a intuição e, mais tarde, com o apoio da ajuda embutida conseguirá rapidamente localizar, entender e usar qualquer comando disponível.
Este guia também pode ser útil para quem já usou o AWS CLI antes, mas quer aprender como usá-lo melhor (ajuda, profiles, AWS_DEFAULT_REGION
, parâmetro --query
).
Para seguir este guia, você deve ter:
O AWS CLI está disponível nos principais sistemas operacionas: Windows, Linux e MacOS. O passo-a-passo de como instalá-lo está disponível em AWS CLI.
Neste guia, iremos usar o AWS CloudShell, uma forma rápida e gratuita de ter acesso ao AWS CLI
disponível na console da AWS para que você não precise gastar tempo neste passo. Entretanto, você também pode instalar o AWS CLI
no seu computador para seguir este tutorial.
Para isto, basta acessar o AWS console e clicar no ícone do CloudShell (parte superior direita) como mostrado abaixo.
Após clicar no ícone do CloudShell, após alguns minutos um shell deve aparecer.
Se você usar o AWS CloudShell, as credenciais serão obtidas automaticamente a partir do usuário que se autenticou na console. Você pode pular este passo.
Se você optar por instalar o AWS CLI
no seu computador, você precisará configurá-lo, isto é, basicamente informar as credencias que serão usadas para autenticar os comandos e a sua região de preferência. Isto pode ser feito com o comando aws configure
, mas antes você precisa obter uma access-key
e a respectiva secret-key
. Para isto, siga as instruções em How do I create an AWS access key?.
aws configure
AWS Access Key ID [None]: <digite-sua-access-key>
AWS Secret Access Key [None]: <digite-sua-secret-key>
Default region name [None]: us-east-1
Default output format [None]:
Pronto, você configurou o AWS CLI!
Você está começando de um página em branco, estão vamos recorrer a ajuda do AWS CLI. Ao longo deste guia, você verá que saber usar a ajuda efetivamente permitirá ir bem longe, mesmo sem contar com o google.
Sendo assim, vamos começar com a ajuda geral. Para isto basta digitar aws help
.
aws help
NAME
aws -
DESCRIPTION
The AWS Command Line Interface is a unified tool to manage your AWS
services.
SYNOPSIS
aws [options] <command> <subcommand> [parameters]
Use aws command help for information on a specific command. Use aws
help topics to view a list of available help topics. The synopsis for
each command shows its parameters and their usage. Optional parameters
are shown in square brackets
OPTIONS
--debug (boolean)
Turn on debug logging.
...
O resultado mostra a estrutura geral de um comando e costuma ser bem útil. Vamos explorar algumas partes:
NAME
- o nome do comandoDESCRIPTION
- um resumo do que ele fazSYNOPSYS
- o formato de como usá-loOPTIONS
- as opções disponíveisComo a ajuda é do comando aws
a explicação é bem genérica, mas você verá que ela trará informações mais relevantes nos passos seguintes. Lembre-se o foco é desenvolver a intuição de como usar o AWS CLI
.
Neste caso, a parte mais útil é a que mostra a lista dos serviços disponíveis (AVAILABLE SERVICES
) dentro do AWS CLI
. Ela pode ser encoontrada rolando para baixo (apertando espaço) até chegar em AVAILABLE SERVICES
. Outra forma é usando a busca para encontrar o texto desejado (isto não renderiza bem no CloudShell), basta digitar /<texto-a-ser-encontrado>
, neste caso, /AVAIL
. A partir dali você poderá ver todos os serviços suportados pelo AWS CLI e encontrar ajuda adicional para um serviço específico.
...
AVAILABLE SERVICES
o accessanalyzer
o acm
o acm-pca
o alexaforbusiness
...
Uma vez que você souber o identificador do serviço, que geralmente é o nome do serviço em letras minúsculas, você poderá pedir a ajuda específica digitando aws <identificador-do-servico> help
. Suponha que você queira saber o que está disponível no comando acm
(AWS Certificate Manager), basta digitar aws acm help
.
aws acm help
...
DESCRIPTION
Welcome to the AWS Certificate Manager (ACM) API documentation.
You can use ACM to manage SSL/TLS certificates for your AWS-based web-
sites and applications. For general information about using ACM, see
the ` AWS Certificate Manager User Guide
https://docs.aws.amazon.com/acm/latest/userguide/
`
__ .
AVAILABLE COMMANDS
o add-tags-to-certificate
o delete-certificate
o describe-certificate
o export-certificate
o get-certificate
...
Olhando a descrição (DESCRIPTION
) você ter uma ideia bem melhor do que o serviço oferece, mesmo que você não o conhecesse.
You can use ACM to manage SSL/TLS certificates for your AWS-based web-sites and applications.
O próximo passo é olhar os comandos listados na sessão AVAILABLE COMMANDS
. Por exemplo, se você quiser exportar um certificado, o comando export-certificate
parece promissor, mas, neste momento, o mais importante é você desenvolver a intuição de como navegar na ajuda.
Na próxima sessão, vamos usar estes aprendizados em um caso prático.
Vamos começar com um objetivo simples e ver como usar o AWS CLI
para endereçá-lo.
Suponha que seu gerente pediu para você criar um novo bucket no S3 para armazenar um arquivo. Usando o aprendizado da sessão anterior, você descobrirá que o serviço S3 é identificado no AWS CLI como s3
.
Vamos começar, listando os buckets existentes na conta para evitar erros durante a criação. Então como listamos os buckets? Vamos recorrer a ajuda, iniciando pelos comandos disponíveis dentro AWS CLI para o S3.
aws s3 help
...
AVAILABLE COMMANDS
o cp
o ls
o mb
o mv
o presign
o rb
o rm
o sync
o website
Olhando a lista de comandos disponíveis (AVAILABLE COMMANDS
), parece que o ls
(list) é o mais promissor. Então, vamos ver os detalhes dele usando novamente a ajuda. Ao invés de digitar aws s3 help
iremos usar aws s3 ls help
. Note que o help vai ficando mais específico aws <identificador-do-servico> <comando-do-servico> help
.
aws s3 ls help
...
SYNOPSIS
ls
<S3Uri> or NONE
[--recursive]
[--page-size <value>]
[--human-readable]
[--summarize]
[--request-payer <value>]
...
O comando pode ser usado de várias maneiras informando uma S3Uri
ou não informando (NONE
). Além disto, ele parece oferecer alguns parâmetros opcionais (representados entre []
) como --recursive
e --human-readable
, mas iremos ignorá-los nesta sessão. Portanto, vamos ver o que ele retorna sem nenhum parâmetro.
aws s3 ls
2016-11-30 14:43:57 lost-corner-bucket-1
2017-10-11 10:58:10 lost-corner-bucket-2
...
2020-07-26 15:15:32 lost-corner-bucket-n
Agora que já vimos os buckets existentes na conta, vamos usar o AWS CLI
para criar um novo bucket. Vamos começar entendendo como usar o comando de criar um bucket aws s3 mb
(make bucket).
aws s3 mb help
...
NAME
mb -
DESCRIPTION
Creates an S3 bucket.
See 'aws help' for descriptions of global parameters.
SYNOPSIS
mb
<S3Uri>
Fácil, não?! Note que o comando precisa de uma S3Uri
e não o nome do bucket, isto é, você deverá usar s3://nome-do-bucket
ao invés de somente nome-do-bucket
. Os nomes dos buckets no S3 são globalmente únicos, isto é, se você tentar criar um bucket com o mesmo nome que você, alguém da sua empresa ou mesmo outro cliente já usou, o S3 não deixará. Para evitar isto, melhor adicionar algum prefixo “único” ao nome, por exemplo, seu nome, alias do email ou nome da empresa. Neste caso, usarei <seu-prefixo>
para dizer que deverá trocar pelo seu prefixo. Você pegou a ideia, portanto não copie sem substituir.
aws s3 mb s3://<seu-prefixo>-meu-bucket
Pronto, você criou o seu primeiro bucket usand o AWS CLI.
Agora vamos copiar um arquivo para o bucket. Você pode usar qualquer arquivo com informações não sensíveis do seu computar ou criar um (echo "teste" > arquivo.txt
).
Vamos começar explorando o comando de cópia do AWS CLI. Para isto, parece que o comando cp
(copy), parece o correto. Vamos checar…
aws s3 cp help
...
DESCRIPTION
Copies a local file or S3 object to another location locally or in S3.
See 'aws help' for descriptions of global parameters.
SYNOPSIS
cp
<LocalPath> <S3Uri> or <S3Uri> <LocalPath> or <S3Uri> <S3Uri>
[--dryrun]
...
Olhando a descrição (DESCRIPTION
) parece que é ele mesmo que estamos buscando (“Copies a local file … to another location”). Vamos para a descrição (SYNOPSIS
) e vemos que precisamos do caminho local seguido de um S3Uri
. O comando traz várias opções de cópia, mas iremos ignorá-las agora.
Então de posso de todas as informações, vamos fazer a cópia.
aws s3 cp arquivo.txt s3://<seu-prefixo>-meu-bucket
E para finalizar, vamos ver se o arquivo está no bucket.
aws s3 ls s3://<seu-prefixo>-meu-bucket
Parabéns, você completou a tarefa! 👏👏👏
Agora o que já aprendeu como manipular alguns comando do S3, que tal um desafio?
Você não vai querer deixar o arquivo de teste que subiu na parte anterior ocupando espaço no S3. Que tal usar o AWS CLI para apagá-lo? Boa sorte!
Travou?! Deixe a sua dúvida no comentários no final da página ou aguarde a próxima parte que trará um exemplo de solução.
Na primeira parte do guia você aprendeu a:
Se você gostou deste guia, não esqueça de deixar a sua opinião e o que gostaria ver nas próximas partes nos comentários.
Para saber sobre as próximas atualizações, deixe o seu e-mail na caixa abaixo. Não iremos mandar spam!