簡體   English   中英

使用boto連接到Amazon SQS

[英]Connecting to Amazon SQS using boto

我正在嘗試通過python boto庫連接到Amazon SQS。

import boto3
sqs= boto3.resource('sqs')
for queue in sqs.queues.all():
    print(queue.url)

我已將我的憑據存儲在〜/ .aws / credentials文件中

[default]
aws_access_key_id=XXX
aws_secret_access_key=YYY
region=us-west-2

但是當我執行代碼時,我得到一個錯誤

botocore.exceptions.ClientError:調用ListQueues操作時發生錯誤(AccessDenied):拒絕訪問資源https://us-west-2.queue.amazonaws.com/

我嘗試直接連接到隊列。 LCqueue = sqs.get_queue_by_name(QueueName ='myQueue')

但后來它告訴我沒有這樣的隊列。 即使我可以在AWS管理控制台上看到它。 有任何想法嗎 ?

我的IAS管理控制台也出錯了。 在哪里我無法列出任何用戶。

在此輸入圖像描述 在此輸入圖像描述

您確定您的用戶已獲得SQS許可嗎?

轉到IAM服務,選擇您的用戶(您在CLI中使用的用戶)並檢查附加到您的用戶的組/權限。

如果沒有,可以在“搜索IAM”框中搜索SQS (左上角)

在此輸入圖像描述

選擇“將實體附加到AmazonSQSReadOnlyAccess(或AmazonSQSFullAccess)”並為您的用戶附加預定義的策略

我最終使用的是之前版本的Boto(2)

我知道這是舊的,但是如果有人首先到達SO:這可能是因為您嘗試連接的區域。

我可以通過aws web控制台訪問us-east-1中的SQS,但是嘗試從us-east-1中的隊列中檢索消息導致從python客戶端拒絕訪問。

值得慶幸的是,從github討論: https//github.com/aws/aws-sdk-php/issues/188#issuecomment-258880267 ,我嘗試將區域更改為我應該擁有權限的區域,我能夠從該區域中創建的隊列接收消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM