'use strict'; // NOTE: `amqplib` is bundled into the deployment package // eslint-disable-next-line import/no-unresolved const amqp = require('amqplib'); function consumer(event, context, callback) { const functionName = 'consumer'; const messages = []; Object.keys(event.rmqMessagesByQueue).forEach((queueKey) => { const queue = event.rmqMessagesByQueue[queueKey]; queue.forEach((message) => { messages.push(Buffer.from(message.data, 'base64').toString()); }); }); // eslint-disable-next-line no-console console.log(functionName, JSON.stringify(messages)); return callback(null, event); } async function producer() { const connectOptions = { protocol: 'amqps', hostname: process.env.RABBITMQ_HOST, port: 5671, username: process.env.RABBITMQ_USERNAME, password: process.env.RABBITMQ_PASSWORD, }; const connection = await amqp.connect(connectOptions); const channel = await connection.createChannel(); const queueName = process.env.QUEUE_NAME; await channel.assertQueue(queueName); await channel.sendToQueue(queueName, Buffer.from('Hello from RabbitMQ Integration test!')); return { statusCode: 200, }; } module.exports = { producer, consumer };