I am writing a cloud function in node js, My requirement is that GCP pubsub topic will publish a json body as a message. This pubsub topic is a trigger point to my node js cloud function. It means whenever I publish a message from topic It should trigger my cloud function. This functionality is working as expected. But the issue comes where I am trying to access individual element of Json request data in my cloud function. If I log the data which is coming from pubsub in my cloud function, I am able to do that. My index.js
exports.helloPubSub = (data, context) => {
const pubSubMessage = data;
const messageData = pubSubMessage.data
? Buffer.from(pubSubMessage.data, 'base64').toString()
: 'World';
console.log(`message data is, ${messageData}!`);
};
Published pubsub message is :
{
"companyName": "my-company",
"companyLocation": "my-location"
}
When I am trying to access "companyName" in my cloud function from above published message I get log output as "company name is undefined". Below is the code I am trying:
exports.helloPubSub = (data, context) => {
const pubSubMessage = data;
const messageData = pubSubMessage.data
? Buffer.from(pubSubMessage.data, 'base64').toString()
: 'World';
console.log(`company name is, ${messageData.companyName}!`);
};
Note: I am referring https://cloud.google.com/functions/docs/tutorials/pubsub
Your helpful answers will be appreciated. Thank you !