문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
aws:localstack [2021/02/22 15:31] kwon37xi |
aws:localstack [2022/03/29 12:49] kwon37xi [LocalStack] |
||
---|---|---|---|
줄 6: | 줄 6: | ||
* Python 기반이지만 [[: | * Python 기반이지만 [[: | ||
* Unit Test 시에 JUnit 4/5 를 모두 지원하여 자동으로 컨테이너를 띄웠다 내려줄 수 있다. | * Unit Test 시에 JUnit 4/5 를 모두 지원하여 자동으로 컨테이너를 띄웠다 내려줄 수 있다. | ||
+ | * [[aws: | ||
+ | * [[aws: | ||
===== Port ===== | ===== Port ===== | ||
줄 11: | 줄 13: | ||
* '' | * '' | ||
+ | ===== docker-compose ===== | ||
+ | * [[docker: | ||
+ | |||
+ | <code yml> | ||
+ | version: " | ||
+ | |||
+ | services: | ||
+ | localstack: | ||
+ | image: localstack/ | ||
+ | container_name: | ||
+ | ports: | ||
+ | - " | ||
+ | environment: | ||
+ | - SERVICES=sns, | ||
+ | - USE_SINGLE_REGION=1 | ||
+ | - DEFAULT_REGION=ap-northeast-2 | ||
+ | - HOSTNAME=localhost | ||
+ | - HOSTNAME_EXTERNAL=loaclhost | ||
+ | - DATA_DIR=/ | ||
+ | - DOCKER_HOST=unix:/// | ||
+ | volumes: | ||
+ | - " | ||
+ | - " | ||
+ | - "/ | ||
+ | </ | ||
+ | * '' | ||
+ | * 해당 파일 안에서 '' | ||
+ | * 본인 PC의 ''/ | ||
+ | * SQS 에 메시지가 쌓일 경우 뜨는 속도가 매우 느려진다 ''/ | ||
+ | <code sh> | ||
+ | sleep 30 | ||
+ | # awslocal 호출 --endpoint-url=http:// | ||
+ | # 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: | ||
+ | --protocol sqs --notification-endpoint http:// | ||
+ | </ | ||
===== Mac OS ===== | ===== Mac OS ===== | ||
줄 17: | 줄 64: | ||
</ | </ | ||
- | ===== Web UI ===== | + | ===== localstack-full |
- | * Web UI 는 기본 ''/ | + | * [[https:// |
- | * [[https:// | + | * ElasticSearch 등 잘 안쓰는 기능을 추가한 버전 |
+ | * WEB UI는 기존에는 '' | ||
+ | ===== arn ===== | ||
+ | * localstack 의 ARN 은 '' | ||
===== localstack 실행 후 초기화 ===== | ===== localstack 실행 후 초기화 ===== | ||
- | * [[https://hub.docker.com/r/mesosphere/ | + | |
+ | * docker-compose 의 서비스 이름에 밑줄('' | ||
+ | * 이후 '' | ||
+ | |||
+ | <code sh> | ||
+ | # localstack 은 컨테이너 이름. | ||
+ | docker exec -it localstack /bin/bash | ||
+ | |||
+ | # 명령실행 | ||
+ | awslocal ... | ||
+ | </ | ||
+ | |||
+ | ===== awslocal ===== | ||
+ | | ||
+ | <code sh> | ||
+ | # user 계정 영역에 설치 | ||
+ | pip install | ||
+ | </ | ||
+ | * 설치 없이 [[linux: | ||
+ | < | ||
+ | alias awslocal=" | ||
+ | |||
+ | # 환경변수 DEFAULT_REGION, LOCALSTACK_HOST, | ||
+ | </ | ||
+ | |||
+ | ===== Java SDK 설정 ===== | ||
+ | * [[aws:java_sdk|AWS Java SDK]]와 localstack 설정 | ||
+ | * credential 은 아무거나 | ||
+ | |||
+ | <code java> | ||
+ | AWSStaticCredentialsProvider localstackCrendentialProvider = | ||
+ | new AWSStaticCredentialsProvider(new BasicAWSCredentials(" | ||
+ | AwsClientBuilder.EndpointConfiguration localstackEndpointConfiguration = | ||
+ | new AwsClientBuilder.EndpointConfiguration(" | ||
+ | |||
+ | AmazonSNS amazonSNS = AmazonSNSClient | ||
+ | .standard() | ||
+ | .withEndpointConfiguration(localstackEndpointConfiguration) | ||
+ | .withCredentials(localstackCrendentialProvider) | ||
+ | .build(); | ||
+ | </ | ||
+ | |||
+ | ==== S3 ==== | ||
+ | * Java SDK 에서 localstack S3 설정은 **'' | ||
+ | |||
+ | <code java> | ||
+ | AmazonS3 amazonS3 = AmazonS3ClientBuilder | ||
+ | .standard() | ||
+ | .withEndpointConfiguration(localstackEndpointConfiguration) | ||
+ | .withCredentials(localstackCrendentialProvider) | ||
+ | .withPathStyleAccessEnabled(true) | ||
+ | .build(); | ||
+ | </ | ||
===== 참조 ===== | ===== 참조 ===== | ||
* [[http:// | * [[http:// | ||
+ | * [[https:// | ||
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// |