На самом деле @eespinola указывала вам почти в правильном направлении. Если вы внимательно изучите ссылку , которую он предоставил, вы найдете фрагмент подписчика по умолчанию для облачных функций:
/**
* Triggered from a message on a Cloud Pub/Sub topic.
*
* @param {object} pubsubMessage The Cloud Pub/Sub Message object.
* @param {string} pubsubMessage.data The "data" property of the Cloud Pub/Sub Message.
*/
exports.subscribe = (pubsubMessage) => {
// Print out the data from Pub/Sub, to prove that it worked
console.log(Buffer.from(pubsubMessage.data, 'base64').toString());
};
Этот фрагмент показывает, что событие pubsub содержит поле с именем "data", которое строка в кодировке base64 Более того, если вы будете искать в документации API для PubSub, вы найдете синтаксис JSON представления для сообщения:
{
"data": string,
"attributes": {
string: string,
...
},
"messageId": string,
"publishTime": string
}
Поэтому вам необходимо кодировать полезную нагрузку в виде строки base64 с этим форматом и преобразовать его обратно в Javascript объект внутри функции.