Muy buenas, soy Miguel y en esta ocasión les traigo un nuevo post.
Índice
Esta publicación asume que está familiarizado con AWS
y Serverless Framework
Esto mostrará solo los ajustes de configuración relevantes para implementar una nueva cola SQS usando Serverless
. En la parte inferior, puede encontrar un enlace sobre cómo enviar un mensaje SQS con Node.
Gastos esperados
- Una cola
AWS SQS
que desencadena una lambda (el desencadenador es opcional, puede crear la cola sin el desencadenador de todos modos). - La URL de la cola SQS guardada como una variable de entorno que podemos consumir en el resto de la aplicación.
Solo estoy mostrando las partes relevantes del yaml
sin servidor aquí. Seguro que su archivo tendrá otras configuraciones. Esto es solo para mantenerlo enfocado únicamente en la parte SQS.
... provider: name: aws runtime: nodejs12.x region: us-east-1 stage: prod environment: ... SQS_QUEUE_URL: Ref: NewSQSQueue iamRoleStatements: - Effect: Allow Action: - sqs:* Resource: Fn::GetAtt: [ NewSQSQueue, Arn ] ... resources: Resources: NewSQSQueue: Type: "AWS::SQS::Queue" Properties: QueueName: sqs-queue-$opt:stage, self:provider.stage.fifo FifoQueue: true
Esto creará una nueva cola SQS primero en entrar, primero en salir (FIFO) y los roles de IAM que la acompañan necesarios para usarla.
El nombre de la cola será sqs-queue-prod.fifo
(todas las colas FIFO deben terminar con el sufijo .fifo
) y la URL de SQS se consumirá en el resto de su aplicación como una variable de entorno mediante el uso de process.env.SQS_QUEUE_URL
.
Disparador Lambda (opcional)
Si desea que se active una lambda cuando se reciba un nuevo mensaje SQS, puede agregar una lambda simple con un activador de evento que se vea en el código así:
eventRouter: handler: src/handlers/event_router.handler events: - sqs: arn: Fn::GetAtt: - NewSQSQueue - Arn
Esto se llamará cada vez que se envíe un mensaje a la cola que acaba de crear.
Gracias por leer este artículo.
Añadir comentario