[英]How to direct the same Amazon S3 events into several different SQS queues?
[英]How to use Amazon SQS as Celery broker, without creating / listing queues?
對於一個項目,我的組織計划將 Celery 代理從 redis 轉移到 SQS。 有人可以指導我如何調整 Celery 設置,以便我可以使用預定義的 SQS 隊列,而無需 celery 嘗試創建/列出隊列(因為我沒有這些權限)。
我嘗試了以下設置:
CELERY_BROKER_URL = 'sqs://'
CELERY_BROKER_TRANSPORT_OPTIONS = {
'predefined_queues':{
'MyQueue' : {
'url' : '<SQS Queue URL>',
}
}
}
CELERY_TASK_DEFAULT_QUEUE = 'MyQueue'
CELERY_ROUTES = {
'tasks.*':{
'queue' : 'MyQueue'
}
}
應用這些設置后,每當我嘗試通過 celery 向 SQS 隊列發送消息時,我仍然收到以下錯誤: An error occurred (AccessDenied) when calling the CreateQueue operation: Access to the resource https://queue.amazonaws.com/ is denied.
為什么即使我通過了預定義隊列設置,芹菜仍然試圖創建隊列: https : //docs.celeryproject.org/en/stable/getting-started/brokers/sqs.html#predefined-queues ?
提前致謝!
Celery worker 需要關聯到允許 CreateQueue 操作的 IAM 角色。 如果您的 Celery 工作線程在 EC2 實例上運行,那么最簡單的做法是使用實例配置文件,並讓實例角色能夠執行 CreateQueue 操作。
即使我的公司是 AWS 的重度用戶(實際上一切都在 AWS 上),我建議您在決定使用工作站上無法使用的 AWS 服務時三思而后行,而 SQS 就是這樣一種服務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.