有没有办法使用localstack和docker-compose.yml自动创建SQS队列?
我的docker-compose.yml:
version: '3.8'
services:
localstack:
image: localstack/localstack
ports:
- "4566:4566"
- "4571:4571"
- "${PORT_WEB_UI-8080}:${PORT_WEB_UI-8080}"
environment:
- SERVICES=${SERVICES- }
- DEBUG=${DEBUG- }
- DATA_DIR=${DATA_DIR- }
- PORT_WEB_UI=${PORT_WEB_UI- }
- LAMBDA_EXECUTOR=${LAMBDA_EXECUTOR- }
- KINESIS_ERROR_PROBABILITY=${KINESIS_ERROR_PROBABILITY- }
- DOCKER_HOST=unix:///var/run/docker.sock
volumes:
- "${TMPDIR:-/tmp/localstack}:/tmp/localstack"我希望在启动docker-compose时创建一些队列,而不是手动创建。
发布于 2021-11-22 09:43:54
如果您希望在docker up时自动引导所有需要的队列,您可以添加一个shell脚本,该脚本将在docker容器启动时由localstack运行。
下面是一个例子。
将以下内容添加到您的volumes:
- ./localstack_bootstrap:/docker-entrypoint-initaws.d/然后,在上面指定的目录(在我的示例中是localstack_bootstrap)中添加一个shell脚本,该脚本具有您喜欢的任何名称(我决定将其命名为sqs_bootstrap.sh),其中包含以下内容:
#!/usr/bin/env bash
set -euo pipefail
# enable debug
# set -x
echo "configuring sqs"
echo "==================="
LOCALSTACK_HOST=localhost
AWS_REGION=eu-central-1
create_queue() {
local QUEUE_NAME_TO_CREATE=$1
awslocal --endpoint-url=http://${LOCALSTACK_HOST}:4566 sqs create-queue --queue-name ${QUEUE_NAME_TO_CREATE} --region ${AWS_REGION} --attributes VisibilityTimeout=30
}
create_queue "queue1"
create_queue "queue2"别忘了运行chmod +x ./localstack_bootstrap/sqs_bootstrap.sh。
有关我在这里找到的更多详细信息- https://joerg-pfruender.github.io/software/docker/microservices/testing/2020/01/25/Localstack_in_Docker.html
发布于 2021-07-06 15:07:17
Localstack目前没有在启动时自动执行此操作的功能。就目前而言,我建议:
开始
https://stackoverflow.com/questions/68131349
复制相似问题