Routes¶
A Route
aggregate all the main entities, the generic parameters are:
provider
: a provider instancehandler
: a handler instanceerror_handler
(optional): an error handler instancemessage_translator
(optional): a message translator instancename
(optional): a name for this route
We provide some helper routes, so you don’t need to setup all this boilerplate code:
loafer.ext.aws.routes.SQSRoute
: a route that configures aloafer.ext.aws.providers.SQSProvider
andloafer.ext.aws.message_translators.SQSMessageTranslator
. A route for handlers that consume messages from SQS queue (expects json format messages).loafer.ext.aws.routes.SNSQueueRoute
: a route that configures aloafer.ext.aws.providers.SQSProvider
andloafer.ext.aws.message_translators.SNSMessageTranslator
. A route for handlers that consume messages from a SQS queue subscribed to a SNS topic (expects json format messages).
Examples¶
Some examples of route creation:
from loafer.ext.aws.routes import SQSRoute, SNSQueueRoute
from loafer.message_translators import StringMessageTranslator
# regular route
route1 = SQSRoute('my-queue1', handler=..., name='route1')
# route with custom SQSProvider parameters
route2 = SNSQueueRoute('my-queue2', {'use_ssl': False, 'options': {'WaitTimeSeconds': 4}}, handler=..., name='route2')
# route with custom message translator
route3 = SQSRoute('my-queue3', message_translator=StringMessageTranslator(), handler=...)
# route disabling message translation
route4 = SNSQueueRoute('my-queue4', message_translator=None, handler=...)
# route with custom error handler
route5 = SQSRoute('my-queue5', handler=..., error_handler=custom_error_handler)