boto.sqs连接到非aws端点

时间:2014-12-30 14:54:45

标签: amazon-web-services boto amazon-sqs

我目前需要连接到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实例?

1 个答案:

答案 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