문서의 이전 판입니다!
0.11 버전부터 4566 포트로 모든 서비스에 접근 가능하다.EDGE_PORT 환경변수값으로 조정 가능하다.version: "3"
services:
localstack:
image: localstack/localstack:0.12.6 # 혹시나 자동 버전업으로 인한 오류를 막기위해 tag 명시
container_name: localstack
ports:
- "4566:4566"
- "4571:4571"
environment:
- SERVICES=sns,sqs,s3
- DEFAULT_REGION=ap-northeast-2
- HOSTNAME=localhost
- DATA_DIR=/tmp/localstack/data
- DOCKER_HOST=unix:///var/run/docker.sock
volumes:
- "${TMPDIR:-/tmp/localstack}:/tmp/localstack"
- "./localstack-init.d:/docker-entrypoint-initaws.d"
- "/var/run/docker.sock:/var/run/docker.sock"
localstack-init. 디렉토리에 *.sh 파일을 둔다. 이 파일은 정렬 순서대로 실행되므로 **00-init.sh, 01-create-xxx.sh 형태 등으로 만드는 것이 좋다.
* 해당 파일 안에서 awslocal 명령으로 aws 명령을 실행하면 된다.
* 본인 PC의 /tmp 혹은 /tmp/localstack 에 localstack 의 데이터가 저장된다.
<code sh>
sleep 30
# awslocal 호출 –endpoint-url=http://localstack:4566 생략 가능
# localstack 은 docker-compose service 이름인데, 여기에 밑줄이 있으면 네트워크 접속이 안됐음.
# regtion 은 DEFAULT_REGION=ap-northeast-2 으로 자동 지정됨.
echo “## creating topics”
awslocal sns create-topic –name my-sns
echo “## creating queues”
awslocal sqs create-queue –queue-name my-sqs
awslocal sns subscribe –topic-arn arn:aws:sns:ap-northeast-2:000000000000:my-sns \
–protocol sqs –notification-endpoint http://localstack:4566/queue/my-sqs \
</code>
===== Mac OS =====
<code sh>
TMPDIR=/private$TMPDIR docker-compose up
</code>
===== Web UI =====
* Web UI 는 기본 /localstack/localstack 에서는 deprecated 되었으며,
* localstack/localstack-full Docker Image를 사용해야 뜬다.
===== arn =====
* localstack 의 ARN 은 arn:aws:sns:[region]:000000000000 형태이다.
===== localstack 실행 후 초기화 =====
* docker-entrypoint-initaws.d/ volume 에 *.sh 파일들을 만들고, awslocal 명령으로 스크립트를 실행하면 된다.
* docker-compose 의 서비스 이름에 밑줄(_'') 이 들어있을 경우 올바로 네트워크 접속이 안됐음.