localstack是一个本地类似亚马逊sqs等云环境的docker镜像;
安装它,可以用awscli的接口进行无差别的访问,即把亚马逊云的环境部署在本地测试服务器上一样。
安装pip:
https://bootstrap.pypa.io/2.6/get-pip.py
这个地址是 自动安装pip的一个python脚本。可以通过修改2.6这个值,找到对应您python版本的pip版本。
安装localstack:
采用pip安装localstack。首先需要服务器已经安装了python2.7以上。并且安装了pip的包工具。
安装:
$ pip install localstack
初始化:
$ DATA_DIR=/home/localstack_data PORT_WEB_UI=8080 localstack start
启动docker 脚本:
docker run -d -it -e HOSTNAME="localhost.localdomain" -e LOCALSTACK_HOSTNAME="localhost"\
-e TEST_AWS_ACCOUNT_ID="000000000000" -e DEFAULT_REGION="us-east-1" -e PORT_WEB_UI="8080"\
-e DATA_DIR="/tmp/localstack_data" --rm --privileged\
--name localstack_main\
-p 4566:4566\
-v "/home/localstack_data:/tmp/localstack_data"\
-v "/tmp/localstack:/tmp/localstack"\
-v "/var/run/docker.sock:/var/run/docker.sock"\
-e DOCKER_HOST="unix:///var/run/docker.sock"\
-e HOST_TMP_FOLDER="/tmp/localstack" "localstack/localstack"
参数详解:
#脚本说明:
#-e 参数用于设置docker 的环境变量值
#HOSTNAME | LOCALSTACK_HOSTNAME | TEST_AWS_ACCOUNT_ID
#DEFAULT_REGION |PORT_WEB_UI | DATA_DIR
#以上docker容器内的运行参数不需要修改。
#localstack容器挂载到外部的物理目录/home/localstack_data
#--name localstack_main 指定容器的名称
测试sqsl队列的方式
安装awscli客户端工具:
$ pip install awscli
测试接口:
aws --endpoint-url=http://localhost:4566 sqs list-queues
可以查看已经存在的消息队列列表,刚安装好是返回一个空的json
创建一个消息队列
aws --endpoint-url=http://localhost:4566 sqs create-queue --queue-name=sqs.fifo
#发送消息给队列
aws --endpoint-url=http://localhost:4566 sqs send-message\
--queue-url http://localhost:4566/000000000000/sqs.fifo --message-body "This a message"
# 查看队列消息
aws --endpoint-url=http://localhost:4566 sqs receive-message\
--queue-url=http://localhost:4566/000000000000/sqs.fifo\
--attribute-names All --message-attribute-names All --max-number-of-messages 10
#删除消息
aws --endpoint-url=http://localhost:4566 sqs delete-message\
--queue-url=http://localhost:4566/000000000000/sqs.fifo
--receipt-handle [这里填写消息里面的handle值]
好了,本文全部内容结束,感谢您阅读。