2015-12-01 3 views
2

Я новичок в AWS. Я начинаю быстро запускать учебники AWS. Я следил за кодом и sqs-документами AWS.Очереди AWS sqs не перечисляют всех очередей

Это следующий код, который я написал

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 

Выход выше код

(env1)[email protected]:~/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)[email protected]:~/rahul/PythonPractise/Boto3_Practise$ 

Мой вопрос,

почему клиент очереди не может перечислять очереди созданный из «ресурса» и почему ресурс не перечисляет очереди, созданные из клиента.

когда я

(env1)[email protected]:~/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 

Является ли это из-за регионов?

+1

Да, регион имеет значение. Сначала поставьте ящик перед вызовом – Mircea

ответ

2

Вы создаете ресурс из своего пользовательского сеанса, который имеет ap-southeast-1 в качестве региона. Вы создаете клиента из сеанса по умолчанию boto3, который вы установили в us-west-2. Когда вы объявляете регион, у вас есть доступ к ресурсам в этом регионе.