如果你使用这个例子,你将有一个AWS Localstack Docker实例在你的本地环境中运行。这将使你能够在没有AWS账户的情况下测试AWS命令或应用程序。所有这些都发生在你的本地环境中。
这只是在eu-west-1 区域上运行的s3 服务的一个最基本的例子设置。如果你得到一个与 "卷 "有关的错误,请参考文档。这在Mac OS上运行良好。
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"
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"
一旦你运行它,你应该看到如下所示的容器:
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 应该产生{"status": "running"} 响应。所有启用的API(在我们的例子中是s3 )都可以通过边缘服务端口4566 。
假设aws cli已经安装在你的系统上。创建一个专门用于我们Localstack设置的自定义配置文件:
$ 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]:
确认它是否已经被创建:
$ cat ~/.aws/config
[profile localstack]
region = eu-west-1
$ cat ~/.aws/credentials
[localstack]
aws_access_key_id = test
aws_secret_access_key = test
测试
在终端,你应该在命令中添加profile。例如,$ aws --profile localstack 。在你的应用程序中,使用配置,如下图所示:
aws.Config{
Address: "http://localhost:4566",
Region: "eu-west-1",
Profile: "localstack",
ID: "test",
Secret: "test",
}