在AWS控制台与SQS通信很容易,要想在EC2上与SQS通信,要用到python的工具包boto,网上的很多教程我使用都多多少少有些错误,现将过程记录如下:
一.安装boto
首先确认安装了python
$git clone git://github.com/boto/boto.git
$cd boto
$python setup.py install
如果提示没有安装git,$apt-get install git即可,这里我们用源码安装,你也可以用pip安装boto
$pip install boto
提示没有安装pip的话,$apt-get install pip安装即可。
二.配置boto安全证书
这里我们用配置文件,首先新建一个~/.boto文件,内容如下
[Credentials]
aws_access_key_id=YOURACCESSKEY
aws_secret_access_key=YOURSECRETKEY
现在可以使用boto了。
三.创建与SQS的连接
以下是在python的命令行模式下运行的,我的EC2是北京的,region就是‘cn-north-1’
>>>import boto.sqs
>>>conn=boto.sqs.connect_to_region('cn-north-1')
四.与AWS Services的SQS的交互
创建队列
>>>q=conn.create_queue('demo-sqs')
>>>conn.get_all_queues()
通过名字得到一个队列
>>>my_queue=conn.get_queue('queue-name')
向某个队列发送消息
>>>from boto.sqs.message import Message
>>>m=Message()
>>>m.set_body('This is my first message!')
>>>q.write(m)
>>>rs=q.get_messages()
>>>len(rs)
>>>m=rs[0]
>>>m.get_body()
在AWS的控制台可看到发送的消息。