feat: experiment with localstack
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
# LocalStack
|
||||
## Setup
|
||||
Sign up for localstack and obtain the auth token. Then fire up a container:
|
||||
|
||||
```bash
|
||||
docker run -e LOCALSTACK_AUTH_TOKEN=ls-xxx-yyy-zzz-aaa-bbb -it \
|
||||
--name localstack --network macvlan localstack/localstack-pro localstack
|
||||
```
|
||||
|
||||
In terraform, configure aws endpoints to go to localstack and add localstack required configurations:
|
||||
```hcl
|
||||
provider "aws" {
|
||||
region = var.aws-region
|
||||
|
||||
# localstack config
|
||||
access_key = "test"
|
||||
secret_key = "test"
|
||||
skip_credentials_validation = true
|
||||
skip_metadata_api_check = true
|
||||
skip_requesting_account_id = true
|
||||
|
||||
# localstack endpoints https://docs.localstack.cloud/aws/integrations/infrastructure-as-code/terraform/#:~:text=tflocal%20is%20a%20small%20wrapper,unmodified%20Terraform%20scripts%20against%20LocalStack.
|
||||
endpoints {
|
||||
apigateway = "http://192.168.86.96:4566"
|
||||
apigatewayv2 = "http://192.168.86.96:4566"
|
||||
cloudformation = "http://192.168.86.96:4566"
|
||||
cloudwatch = "http://192.168.86.96:4566"
|
||||
dynamodb = "http://192.168.86.96:4566"
|
||||
ec2 = "http://192.168.86.96:4566"
|
||||
es = "http://192.168.86.96:4566"
|
||||
elasticache = "http://192.168.86.96:4566"
|
||||
firehose = "http://192.168.86.96:4566"
|
||||
iam = "http://192.168.86.96:4566"
|
||||
kinesis = "http://192.168.86.96:4566"
|
||||
lambda = "http://192.168.86.96:4566"
|
||||
rds = "http://192.168.86.96:4566"
|
||||
redshift = "http://192.168.86.96:4566"
|
||||
route53 = "http://192.168.86.96:4566"
|
||||
s3 = "http://192.168.86.96:4566"
|
||||
secretsmanager = "http://192.168.86.96:4566"
|
||||
ses = "http://192.168.86.96:4566"
|
||||
sns = "http://192.168.86.96:4566"
|
||||
sqs = "http://192.168.86.96:4566"
|
||||
ssm = "http://192.168.86.96:4566"
|
||||
stepfunctions = "http://192.168.86.96:4566"
|
||||
sts = "http://192.168.86.96:4566"
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
## Limitations
|
||||
At time of writing, localstack seems very limited. Many basic layers would not run.
|
||||
For example, vpc with ipv6 could not be created. It failed with the following error
|
||||
|
||||
```text
|
||||
│ Error: waiting for EC2 Subnet (subnet-c113e8c02abd344e0) EnableDns64 update: timeout while waiting for state to become 'true' (last state: 'false', timeout: 5m0s)
|
||||
│
|
||||
│ with module.vpc.aws_subnet.private[1],
|
||||
│ on .terraform/modules/vpc/main.tf line 293, in resource "aws_subnet" "private":
|
||||
│ 293: resource "aws_subnet" "private" {
|
||||
|
||||
```
|
||||
Reference in New Issue
Block a user