mirror of
https://github.com/serverless/serverless.git
synced 2025-12-08 19:46:03 +00:00
56 lines
1.3 KiB
JavaScript
56 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 }
|