HTTP POST Google Облачные функции NodeJS - PullRequest
0 голосов
/ 24 апреля 2019

Как мне написать облачную функцию Google, которая будет получать HTTP-запрос, а затем отправлять HTTP-запрос POST на другую конечную точку?

Например,

  • Я могу отправить триггер HTTP в свою облачную функцию (https://us -central1-plugin-check-xxxx.cloudfunctions.net/ тест ).Я использую exports.test = function helloWorld(req, res){} для обработки полученных данных.

  • И затем я хочу отправить обработанные данные с запросом HTTP POST в другую конечную точку.

До сих пор я пытался отправить HTTP POST с узлами webhooks, request & restler модулями, но ни один из них, похоже, не работает.Это потому, что эти модули используются вместе с exports.test ?

Мой вопрос связан с этим вопросом, но ответы мне не помогли.

Данные, отправляемые в конечную точку, находятся в json & Тип содержимого: application / json .

var request = require('request'); //also tried for node-webhook, restler modules

exports.test = function(req, res) {
 //processing of received json data from source A. 
}

function sendToEndpoint(processed_data) {

  let abc = processed_data;   //send processed data to source B 

  request.post({
      uri: 'https://example.com',
      headers: {'Content-Type': 'application/json'},
      body: JSON.stringify(abc)
  }); 

}

Ответы [ 3 ]

0 голосов
/ 25 апреля 2019

В облачной функции, написанной на Node.js, вы можете использовать любой пакет, доступный через NPM.Использование поиска Google для поиска таких пакетов показывает:

Какой из них вы выбираете, обычно зависит от вкуса.Мой личный выбор - использовать тот, который выполняет свою работу и является самым популярным.Я приравниваю популярность к вероятности постоянной поддержки и обновлений.

0 голосов
/ 06 мая 2019

Как отметил @RenaudTarnec в комментариях, проблема заключалась в том, что мой платежный аккаунт не был настроен.

Google не разрешает исходящие запросы на внешние серверы без действительной платежной информации, чтобы предотвратить любую злонамеренную деятельность.

После настройки биллинговой учетной записи я смог сделать исходящие запросы, и все узлы-модули, упомянутые в вопросе, сработали.

0 голосов
/ 24 апреля 2019

Использование Websockets SOCKET.IO - лучший выбор.https://socket.io/

Однако это невозможно использовать в облачных функциях.Потому что он распространяется на разных машинах.Так что отслеживать это невозможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...