这里是文章模块栏目内容页
pip快速安装localstack和启动docker容器

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值]


好了,本文全部内容结束,感谢您阅读。