我目前需要连接到fake_sqs服务器以用于开发目的但我找不到一种简单的方法来为boto.sqs连接指定端点。目前在java和node.js中,有一些方法可以指定队列端点,并通过传递诸如“localhst:someport'我可以连接到我自己的sqs-like实例。我已经用boto尝试了以下内容:
fake_region = regioninfo.SQSRegionInfo(name=name, endpoint=endpoint)
conn = fake_region.connect(aws_access_key_id="TEST", aws_secret_access_key="TEST", port=9324, is_secure=False);
然后:
queue = connAmazon.get_queue('some_queue')
但它无法检索队列对象,它返回None。有没有人实现连接到自己的sqs实例?
答案 0 :(得分:3)
以下是如何创建连接到fake_sqs的SQS连接:
region = boto.sqs.regioninfo.SQSRegionInfo(
connection=None,
name='fake_sqs',
endpoint='localhost', # or wherever fake_sqs is running
connection_cls=boto.sqs.connection.SQSConnection,
)
conn = boto.sqs.connection.SQSConnection(
aws_access_key_id='fake_key',
aws_secret_access_key='fake_secret',
is_secure=False,
port=4568, # or wherever fake_sqs is running
region=region,
)
region.connection = conn
# you can now work with conn
# conn.create_queue('test_queue')
请注意,在撰写本文时,fake_sqs库未对GET请求做出正确响应,这就是boto发出许多请求的方式。您可以在此处安装已修补此功能的分支:https://github.com/adammck/fake_sqs