python
(Suportado versão Python 3.6 até 3.9)
python3 --version
pip
(Python package manager)
pip3 --version
Docker
docker --version
Variação de comandos:
O comando python3
pode ser utilizado também como python
dependendo da instalação ou OS, contanto que a versão seja compatível com os requisitos, assim como o comando pip3
pode ser utilizado também como pip
.
- Mac OS Mojave
- Python 3.9.4
- pip 20.2.3 (python 3.9)
- Docker version 20.10.10, build b485636
python3 -m pip install localstack
Ao finalizar a instalação deve ser possivel executar localstack --help
Links:
https://docs.localstack.cloud/get-started/#localstack-cli
Inciando localstack (serviços disponiveis) com os seguintes serviços respectivamente (baseado em serviços aws):
- S3
- Lambda
- CloudWatch Logs
- DynamoDB
SERVICES=s3,lambda,dynamodb,logs,iam localstack start
Para iniciar com o debug ativo (maior quantidade de logs e logs mais detalhados)
SERVICES=s3,lambda,dynamodb,logs,iam DEBUG=1 localstack start
Para executar em modo background sem manter o terminal ocupado exibindo os logs
SERVICES=s3,lambda,dynamodb,logs,iam localstack start -d
Para finalizar o ambiente localstack quando rodando em backgroud
localstack stop
Para verificar o status do Localstack, ou via url http://localhost:4566/
localstack status
# retorno quando esta ativo
┏━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Runtime version ┃ 0.14.2 ┃
│ Docker image │ tag: latest, id: 3f87059df553, 📆 2022-04-13T14:51:49 │
│ Runtime status │ ✔ running (name: "localstack_main", IP: 172.17.0.2) │
└─────────────────┴───────────────────────────────────────────────────────┘
Para verificar o status dos serviços, ou via url http://localhost:4566/health
localstack status services
# retorno quando esta ativo
┏━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓
┃ Service ┃ Status ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩
│ acm │ ✔ available │
│ apigateway │ ✔ available │
│ cloudformation │ ✔ available │
│ cloudwatch │ ✔ available │
│ config │ ✔ available │
│ dynamodb │ ✔ available │
│ dynamodbstreams │ ✔ available │
│ ec2 │ ✔ available │
│ es │ ✔ available │
│ events │ ✔ available │
│ firehose │ ✔ available │
│ iam │ ✔ available │
│ kinesis │ ✔ available │
│ kms │ ✔ available │
│ lambda │ ✔ available │
│ logs │ ✔ available │
│ opensearch │ ✔ available │
│ redshift │ ✔ available │
│ resource-groups │ ✔ available │
│ resourcegroupstaggingapi │ ✔ available │
│ route53 │ ✔ available │
│ route53resolver │ ✔ available │
│ s3 │ ✔ running │
│ s3control │ ✔ available │
│ secretsmanager │ ✔ available │
│ ses │ ✔ available │
│ sns │ ✔ available │
│ sqs │ ✔ available │
│ ssm │ ✔ available │
│ stepfunctions │ ✔ available │
│ sts │ ✔ available │
│ support │ ✔ available │
│ swf │ ✔ available │
└──────────────────────────┴─────────────┘
Iniciando no modo background é possível acessar os logs de execução com o comando:
localstack logs -f
# -f : para acompanhar os logs continuamente
Caso de algum erro do em relação a dependencia cryptography ModuleNotFoundError: No module named 'cryptography'
, basta instalar:
pip install cryptography
Links:
https://docs.localstack.cloud/localstack/configuration/
https://docs.aws.amazon.com/cli/latest/reference/#available-services
https://docs.localstack.cloud/aws/feature-coverage/
docker run --rm -it -p "4510-4559:4510-4559" -p "4566:4566" localstack/localstack -e "LOCALSTACK_SERVICES=s3,lambda,dynamodb,logs,iam" -e "DEBUG=1"
version: "3.8"
services:
localstack:
container_name: "${LOCALSTACK_DOCKER_NAME-localstack_main}"
image: localstack/localstack
network_mode: bridge
ports:
- "4510-4559:4510-4559"
- "4566:4566"
environment:
- DEBUG=${DEBUG-1} # ativa modo debug por padrao
- DATA_DIR=${DATA_DIR-}
- LAMBDA_EXECUTOR=${LAMBDA_EXECUTOR-}
- HOST_TMP_FOLDER={$TMPDIR:-/tmp/}localstack
- DOCKER_HOST=unix:///var/run/docker.sock
- LOCALSTACK_SERVICES=s3,lambda,dynamodb,logs,iam
volumes:
- "${TMPDIR:-/tmp}/localstack:/tmp/localstack"
- "/var/run/docker.sock:/var/run/docker.sock"
Com o arquivo docker-compose.yml
com o conteudo acima, basta executar:
docker-compose up
Podemos fazer uso dos serviços AWS no Localstack a partir de duas ferramentas AWS CLI e awscli-local. Recomendo a instalação de ambos.
Ferramenta oficial da AWS para gerenciar serviços, utilizando o comando aws
.
Para instalação escolher de acordo com o SO https://aws.amazon.com/cli/
- Configurando AWS CLI
#Configure AWS CLI
aws configure --profile localstack
AWS Access Key ID [None]: test
AWS Secret Access Key [None]: test
Default region name [None]: us-east-1
Default output format [None]:
- Configurando variável de ambiente
Utilizando a porta padrão exposta pelo Localstack
#Configure Environment Variables
export LOCALSTACK_ENDPOINT_URL="http://localhost:4566"
Para verificar se a configuração ficou correta podemos executar o seguinte comando abaixo para listar os buckets
#List all buckets
aws --profile localstack --endpoint-url=$LOCALSTACK_ENDPOINT_URL s3 ls
Ferramenta adaptada a partir do AWS CLI para uso local apenas que facilita utilização dos comandos via terminal, utilizando o comando awslocal
.
Para instalação:
pip3 install awscli-local
Para verificar se esta funcionando corretamente
#List all buckets
awslocal s3 ls
Links: