116 lines
3.2 KiB
Markdown
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/
|
|
|