mirror of
https://github.com/serverless/serverless.git
synced 2026-01-18 14:58:43 +00:00
Co-authored-by: Lew Gordon <lew.gordon@genesys.com> Co-authored-by: Piotr Grzesik <pj.grzesik@gmail.com>
54 lines
1.3 KiB
JavaScript
54 lines
1.3 KiB
JavaScript
'use strict';
|
|
|
|
// NOTE: `stompit` is bundled into the deployment package
|
|
// eslint-disable-next-line import/no-unresolved
|
|
const stompit = require('stompit');
|
|
|
|
function consumer(event, context, callback) {
|
|
const functionName = 'consumer';
|
|
const messages = event.messages.map((message) => 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 = {
|
|
host: process.env.MQ_HOST,
|
|
port: 61614,
|
|
ssl: true,
|
|
connectHeaders: {
|
|
login: process.env.MQ_USERNAME,
|
|
passcode: process.env.MQ_PASSWORD,
|
|
},
|
|
};
|
|
const queueName = process.env.QUEUE_NAME;
|
|
|
|
const sendPromise = new Promise((resolve, reject) => {
|
|
stompit.connect(connectOptions, (error, client) => {
|
|
if (error) {
|
|
console.log(`connect error ${error.message}`);
|
|
reject(error);
|
|
}
|
|
|
|
const frame = client.send({
|
|
'destination': queueName,
|
|
'content-type': 'text/plain',
|
|
});
|
|
frame.write('Hello from Apache MQ Integration test!');
|
|
frame.end();
|
|
|
|
client.disconnect();
|
|
resolve();
|
|
});
|
|
});
|
|
|
|
await sendPromise;
|
|
|
|
return {
|
|
statusCode: 200,
|
|
};
|
|
}
|
|
|
|
module.exports = { producer, consumer };
|