Bu örneği kullanırsanız, yerel ortamınızda çalışan bir AWS Localstack Docker örneğiniz olacaktır. Bu, bir AWS hesabınız olmadan AWS komutlarını veya uygulamalarını test etmenize olanak tanır. Hepsi yerel ortamınızda olur.


Localstack


Bu, eu-west-1 bölgesinde çalışan s3 hizmeti için yalnızca basit bir örnek kurulumdur. Eğer "volume" ile ilgili bir hata alırsanız, dokümantasyona bakın. Bu, Mac OS için sorunsuz çalışıyor.


version: "2.1"

services:
localstack:
image: "localstack/localstack"
container_name: "localstack"
ports:
- "4566-4599:4566-4599"
environment:
- DEBUG=1
- DEFAULT_REGION=eu-west-1
- SERVICES=s3
- DATA_DIR=/tmp/localstack/data
- DOCKER_HOST=unix:///var/run/docker.sock
volumes:
- "/tmp/localstack:/tmp/localstack"
- "/var/run/docker.sock:/var/run/docker.sock"

Container yeniden başlatmalar arasında takılırsa, yukarıdakinin yerine aşağıdaki sürümü kullanın ve her yeniden başlatmadan önce rm -rf tmp/ komutunu çalıştırın.


version: "3.8"

services:
localstack:
image: "localstack/localstack"
container_name: "localstack"
ports:
- "4566-4599:4566-4599"
environment:
- DEBUG=1
- DEFAULT_REGION=eu-west-1
- SERVICES=lambda
- DATA_DIR=/tmp/localstack/data
- DOCKER_HOST=unix:///var/run/docker.sock
- LAMBDA_EXECUTOR=docker
- HOST_TMP_FOLDER=./tmp/localstack
volumes:
- "./tmp/localstack:/tmp/localstack"
- "/var/run/docker.sock:/var/run/docker.sock"

Çalıştırdıktan sonra, container aşağıda gösterildiği gibi görünecektir.


CONTAINER ID   IMAGE                   COMMAND                  PORTS                                        NAMES
600094dd55c1 localstack/localstack "docker-entrypoint.sh" 0.0.0.0:4566-4599->4566-4599/tcp, 8080/tcp localstack

http://localhost:4566 adresini ziyaret ettiğinizde {"status": "running"} çıktısını alacaksınız. Aktifleştirilen tüm APIler (bu örnekte s3) edge service port 4566'dan ulaşılabilir.


AWS


aws komutunun sisteminizde kurulu olduğunu varsayıyorum. Localstack kurulumumuza özgü bir profil oluşturalım.


$ aws configure --profile localstack
AWS Access Key ID [None]: test
AWS Secret Access Key [None]: test
Default region name [None]: eu-west-1
Default output format [None]:

Oluşturulup oluşturulmadığını onaylayın.


$ cat ~/.aws/config 
[profile localstack]
region = eu-west-1

$ cat ~/.aws/credentials
[localstack]
aws_access_key_id = test
aws_secret_access_key = test

Test


Terminalde komuta profil eklemelisiniz. Örnek: $ aws --profile localstack. Uygulamanızda, aşağıda gösterildiği gibi bir yapılandırma kullanabilirsiniz.


aws.Config{
Address: "http://localhost:4566",
Region: "eu-west-1",
Profile: "localstack",
ID: "test",
Secret: "test",
}