我目前需要连接到 fake_sqs服务器用于开发目的,但我找不到一种简单的方法来指定 boto.sqs 连接的端点。目前在 java 和 node.js 中有一些方法可以指定队列端点,通过传递类似“localhst:someport”的东西,我可以连接到我自己的类似 sqs 的实例。我用 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 实例?
最佳答案
以下是创建连接到 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
关于amazon-web-services - boto.sqs 连接到非 aws 端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27707617/