sqs services que pricing precio cuenta crear aws amazon-web-services celery amazon-sqs kombu

amazon-web-services - pricing - que es amazon web services



Apio con Amazon SQS (5)

Estoy usando Celery 3.0 y estaba recibiendo advertencias de desactivación al iniciar al trabajador con la configuración BROKER_USER / BROKER_PASSWORD.

Eché un vistazo al análisis SQS URL en kombo.utils.url._parse_url y está llamando a urllib.unquote en los elementos de nombre de usuario y contraseña de la URL.

Por lo tanto, para solucionar el problema de las claves secretas con barras diagonales, pude usar con éxito lo siguiente para BROKER_URL:

import urllib BROKER_URL = ''sqs://%s:%s@'' % (urllib.quote(AWS_ACCESS_KEY_ID, safe=''''), urllib.quote(AWS_SECRET_ACCESS_KEY, safe=''''))

No estoy seguro de si las claves de acceso pueden tener barras diagonales en ellas, pero tampoco hace daño citarlas.

Quiero utilizar Amazon SQS como corredor respaldado por Celery . Existe la implementación de transporte SQS para Kombu , de la cual depende Apio. Sin embargo, no hay suficiente documentación para usarlo, así que no puedo encontrar cómo configurar SQS en Apio. ¿Hay alguien que haya logrado configurar SQS en Apio?


Me encontré con esta pregunta varias veces, pero todavía no estaba del todo seguro de cómo configurar Celery para trabajar con SQS. Resulta que es bastante fácil con las últimas versiones de Kombu y Apio. Como alternativa a la sintaxis BROKER_URL mencionada en otra respuesta, puede simplemente configurar el transporte, las opciones, el usuario y la contraseña de la siguiente manera:

BROKER_TRANSPORT = ''sqs'' BROKER_TRANSPORT_OPTIONS = { ''region'': ''us-east-1'', } BROKER_USER = AWS_ACCESS_KEY_ID BROKER_PASSWORD = AWS_SECRET_ACCESS_KEY

Esto soluciona un supuesto problema con el analizador de URL que no permite barras diagonales en su API secreta, que parece ser una ocurrencia bastante común con AWS. Como todavía no parecía haber mucha información sobre el tema, también escribí una breve publicación de blog sobre el tema aquí:

http://www.caktusgroup.com/blog/2011/12/19/using-django-and-celery-amazon-sqs/


Nadie respondió sobre esto. De todos modos, traté de configurar Apio con Amazon SQS, y parece que logré un pequeño éxito.

Kombu debería tener parches para esto, así que escribí algunos parches y también está mi solicitud de extracción . Puede configurar Amazon SQS configurando BROKER_URL del esquema sqs:// en Apio en el Kombu parcheado. Por ejemplo:

BROKER_URL = ''sqs://AWS_ACCESS:AWS_SECRET@:80//'' BROKER_TRANSPORT_OPTIONS = { ''region'': ''ap-northeast-1'', ''sdb_persistence'': False }


Para cualquiera que tropezó con esta pregunta, pude hacer que Aplery trabajara con SQS (no se requiere parche), pero necesitaba actualizar a las últimas versiones de Celery y Kombu para que esto funcione (1.4. 5 y 1.5.1 a partir de ahora). Use las líneas de configuración de arriba y debería funcionar (aunque es probable que desee cambiar la región predeterminada).

Gotcha: para usar el formato de URL anterior, debes asegurarte de que tu secreto de AWS no contenga barras, ya que esto confunde al analizador de URL. Sigue generando nuevos secretos hasta que obtengas uno sin una barra.


Regeneré las credenciales en la consonante de IAM hasta que obtuve una clave sin una barra ( / ). Los problemas de análisis son solo con ese personaje, por lo que si tu secreto no tiene uno, estarás bien.

No es la solución más terriblemente elegante, pero definitivamente mantiene el código limpio de piratas informáticos.