我正在尝试从 SQS 队列中读取。为此,我需要获取队列 url。这是我的代码
sts = boto3.client('sts')
print('running as:')
pp.pprint(sts.get_caller_identity())
sqs = boto3.client('sqs')
queue_name = settings.SQS_JOBS_TASK_RESULTS_QUEUE
print('getting queue_name: ', queue_name)
res = sqs.get_queue_url(QueueName=queue_name)
Run Code Online (Sandbox Code Playgroud)
从上面的代码你可以看到我也在验证我的身份。
sqs.get_queue_url 总是失败
botocore.errorfactory.QueueDoesNotExist:调用 GetQueueUrl 操作时发生错误 (AWS.SimpleQueueService.NonExistentQueue):指定的队列不存在或您无权访问它。
我已经从 aws Web 控制台复制粘贴了队列名称。仍然失败。
我知道我的权限没问题,因为如果我跳过这一步,从 web 控制台复制粘贴 url 并直接跳转到读取和写入队列,它可以工作。
我在这里缺少什么?
w--*_*w-- 12
在我写这个问题时,我得到了一个灯泡,可能有获取队列 url 的特定权限。
瞧,确保您不要忘记添加sqs:GetQueueUrl您的政策。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sqs:GetQueueAttributes",
"sqs:SendMessage",
"sqs:ReceiveMessage",
"sqs:DeleteMessage",
"sqs:DeleteMessageBatch",
"sqs:GetQueueUrl"
],
"Resource": "arn:aws:sqs:xxxxxxxxx"
}
]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4686 次 |
| 最近记录: |