使用b连接到Amazon SQS

2024-05-14 16:29:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图通过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: An error occurred (AccessDenied) when calling the ListQueues operation: Access to the resource https://us-west-2.queue.amazonaws.com/ is denied.

我试着直接连接到队列。 LCqueue=sqs.get_queue_by_name(QueueName='myQueue')

但它告诉我没有这样的队伍。即使我可以在AWS管理控制台上看到它。有什么想法吗?

我的IAS管理控制台也出现错误。我不能列出任何用户。

enter image description hereenter image description here


Tags: thekeyawsamazonaccessqueue错误boto3
3条回答

我最终使用了以前版本的Boto(2)

我知道这是旧的,但如果有人先这么做:这可能是因为你试图连接的地区。

我可以通过aws web控制台访问us-east-1中的SQS,但是尝试从us-east-1中的队列检索消息时,python客户端拒绝了访问。

谢天谢地,在github的讨论中:https://github.com/aws/aws-sdk-php/issues/188#issuecomment-258880267,我尝试将区域更改为应该具有权限的区域,并且能够从该区域中创建的队列接收消息。

您确定您的用户已被授予SQS权限吗?

转到IAM服务,选择您的用户(您在CLI中使用的用户)并检查附加到您的用户的组/权限。

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

enter image description here

选择“将实体附加到AmazonSQSReadOnlyAccess(或AmazonSQSFullAccess)”并将预定义的策略附加到用户上

相关问题 更多 >

    热门问题