首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS队列没有列出所有队列

AWS队列没有列出所有队列
EN

Stack Overflow用户
提问于 2015-12-01 07:33:16
回答 2查看 3.3K关注 0票数 2

我是AWS的新手。我正在遵循AWS教程快速启动。我遵循AWS的sqs代码和sqs文档。

这是我编写的以下代码

代码语言:javascript
复制
import boto3
from boto3.session import Session

session = Session(aws_access_key_id="aswe343ffsf34r3fef3f",
                       aws_secret_access_key="3423d23r2fwwfe232r2r",
                    region_name="ap-southeast-1")

sqs = session.resource("sqs")
q_client = boto3.client("sqs")


sqs.create_queue(QueueName='test-One',
            Attributes = {'DelaySeconds': '5'
})


sqs.create_queue(QueueName='test-Three',
            Attributes = {'DelaySeconds': '5' })

#print "The queue path is : ",queue.url
#print dict(queue.attributes)
#print " DILAY  ",queue.attributes.get("DelaySeconds")

q_client.create_queue(QueueName='test-Two',Attributes = {
    "DelaySeconds" : "5"
})

#q_client.delete_queue(QueueUrl = 'https://us-west-2.queue.amazonaws.com/978916941101/test')

q = q_client.list_queues()

print "QUEUE - URLS ",q.get("QueueUrls")

qList = sqs.queues.all()

for q in qList:
    print q.url

以上代码的输出如下

代码语言:javascript
复制
(env1)rahul@ubuntu:~/rahul/PythonPractise/Boto3_Practise$ python clientTwo.py
QUEUE - URLS  ['https://us-west-2.queue.amazonaws.com/978916941101/test-Two']
https://ap-southeast-1.queue.amazonaws.com/978916941101/test
https://ap-southeast-1.queue.amazonaws.com/978916941101/test-1
https://ap-southeast-1.queue.amazonaws.com/978916941101/test-One
https://ap-southeast-1.queue.amazonaws.com/978916941101/test-Three
(env1)rahul@ubuntu:~/rahul/PythonPractise/Boto3_Practise$

我的问题是,

为什么队列客户端不能列出从“资源”创建的队列,以及为什么资源不能列出从客户端创建的队列。

当我这么做

代码语言:javascript
复制
(env1)rahul@ubuntu:~/rahul/PythonPractise/Boto3_Practise$ aws configure list
  Name                    Value             Type    Location
  ----                    -----             ----    --------
   profile                <not set>             None    None
   access_key     ****************ef3f shared-credentials-file
  secret_key     ****************2r2r shared-credentials-file
   region                us-west-2      config-file    ~/.aws/config

是因为这些地区吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-01 18:56:55

您可以从自定义会话中创建资源,该会话的区域是ap-southeast-1。您可以从boto3默认会话创建客户端,该会话已设置为us-west-2。声明区域时,您只能访问该区域中的资源。

票数 2
EN

Stack Overflow用户

发布于 2020-09-01 22:59:42

这段代码应该列出所有队列(有前缀还是没有前缀)。这是我在GitHub上提供的一个完整的SQS示例的一部分。

代码语言:javascript
复制
import logging
import boto3

logger = logging.getLogger(__name__)
sqs = boto3.resource('sqs')

def get_queues(prefix=None):
    if prefix:
        queue_iter = sqs.queues.filter(QueueNamePrefix=prefix)
    else:
        queue_iter = sqs.queues.all()
    queues = list(queue_iter)
    if queues:
        logger.info("Got queues: %s", ', '.join([q.url for q in queues]))
    else:
        logger.warning("No queues found.")
    return queues
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34014928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档