docker.images/localstack/README.md

116 lines
3.2 KiB
Markdown

# LocalStack Configuration
LocalStack is a local sandbox of aws environment for testing Terraform Iac and other useful things without concern about billings & payments
more information is here: https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli?in=terraform%2Faws-get-started
## Requirements
first of all we need python & pip:
```bash
sudo pacman -S python
```
```bash
curl -sS https://bootstrap.pypa.io/get-pip.py | python
python -m pip install --upgrade pip
```
we need localstack python package:
```bash
pip install localstack
```
This installs the ```localstack-cli``` which is used to run the Docker image that hosts the LocalStack runtime.
## Runing
firstly, we need localstack container invoked:
```bash
docker-compose up -d
```
right now we have to start localstack on host (not in container):
```bash
localstack start -d
```
it will get output like that:
```bash
__ _______ __ __
/ / ____ _________ _/ / ___// /_____ ______/ /__
/ / / __ \/ ___/ __ `/ /\__ \/ __/ __ `/ ___/ //_/
/ /___/ /_/ / /__/ /_/ / /___/ / /_/ /_/ / /__/ ,<
/_____/\____/\___/\__,_/_//____/\__/\__,_/\___/_/|_|
💻 LocalStack CLI 1.4.0
[20:22:20] starting LocalStack in Docker mode 🐳
preparing environment
LocalStack container named "localstack_main" is already running
```
at last we can check services status:
```bash
localstack status services
```
more information on: https://github.com/localstack/localstack
## Helpful commands
use ```tflocal``` instead ```terraform```:
```bash
pip install terraform-local
```
```tflocal``` takes care of automatically configuring the local service endpoints, which allows you to easily deploy your unmodified Terraform scripts against LocalStack. Otherwise you must declare ```aws``` provider like that:
```tf
provider "aws" {
access_key = "test"
secret_key = "test"
region = "us-east-1"
s3_use_path_style = false
skip_credentials_validation = true
skip_metadata_api_check = true
skip_requesting_account_id = true
endpoints {
apigateway = "http://localhost:4566"
apigatewayv2 = "http://localhost:4566"
cloudformation = "http://localhost:4566"
cloudwatch = "http://localhost:4566"
dynamodb = "http://localhost:4566"
ec2 = "http://localhost:4566"
es = "http://localhost:4566"
elasticache = "http://localhost:4566"
firehose = "http://localhost:4566"
iam = "http://localhost:4566"
kinesis = "http://localhost:4566"
lambda = "http://localhost:4566"
rds = "http://localhost:4566"
redshift = "http://localhost:4566"
route53 = "http://localhost:4566"
s3 = "http://s3.localhost.localstack.cloud:4566"
secretsmanager = "http://localhost:4566"
ses = "http://localhost:4566"
sns = "http://localhost:4566"
sqs = "http://localhost:4566"
ssm = "http://localhost:4566"
stepfunctions = "http://localhost:4566"
sts = "http://localhost:4566"
}
}
```
more information on: https://docs.localstack.cloud/user-guide/integrations/terraform/