Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save lijie2000/94e52bf0b7890ee528f9ecdf6c6f7378 to your computer and use it in GitHub Desktop.
Save lijie2000/94e52bf0b7890ee528f9ecdf6c6f7378 to your computer and use it in GitHub Desktop.
############################################################################################################
################## #############################
################## #############################
This Gist collection contains all localstack related examples
################## #############################
################## #############################
############################################################################################################
version: '2.1'
services:
localstack:
container_name: "localstack" # Container name in your docker
image: localstack/localstack:latest # Will download latest version of localstack
ports:
- "4566:4566" # Default port forward
- "9200:4571" # Elasticsearch port forward
environment:
- SERVICES=es, s3, ec2, dynamodb, elasticcache, sqs #AWS Services that you want in your localstack
- DEBUG=1 #Debug level 1 if you want to logs, 0 if you want to disable
- START_WEB=0
- LAMBDA_REMOTE_DOCKER=0
- DATA_DIR=/tmp/localstack/data
- DEFAULT_REGION=us-east-1
volumes:
- './.localstack:/tmp/localstack'
- '/var/run/docker.sock:/var/run/docker.sock'
1) Create es domain -
# aws --endpoint-url=http://localhost:4566 es create-elasticsearch-domain --domain-name dev-domain --elasticsearch-version 6.8.1
(Note: It take around 5-10 min to up the domain in localstack)
2) Check if domain is up or not(Default port is 4571) -
# curl -X GET "http://localhost:9200"
3) Create new index in your domain -
# curl -X PUT "localhost:9200/newindex?pretty"
4) List all indices from your domain -
# curl -X GET "http://localhost:9200/_cat/indices?pretty"
5) List all elasticsearch domains -
# aws --endpoint-url=http://localhost:4566 es list-domain-names
6) Delete domain from elasticsearch -
# aws --endpoint-url=http://localhost:4566 es delete-elasticsearch-domain --domain-name dev-domain
1) Create s3 bucket -
# aws --endpoint-url=http://localhost:4566 s3 mb s3://my-test-bucket
2) List s3 buckets -
# aws --endpoint-url="http://localhost:4566" s3 ls
3) Upload file on s3 bucket -
# aws --endpoint-url="http://localhost:4566" s3 sync "myfiles" s3://my-test-bucket
4) List files from AWS CLI -
# aws --endpoint-url="http://localhost:4566" s3 ls s3://my-test-bucket
6) Access file via URL(File name was download.jpg) -
# http://localhost:4566/my-test-bucket/download.jpg
provider "aws" {
region = "us-east-1"
access_key = "test"
secret_key = "test"
skip_credentials_validation = true
skip_requesting_account_id = true
skip_metadata_api_check = true
s3_force_path_style = true
# Starting with localstack version 0.11.0, all APIs are exposed via a single edge service,
# which is accessible on http://localhost:4566 by default
endpoints {
s3 = "http://localhost:4566"
dynamodb = "http://localhost:4566"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment