Получите имя облачной функции из самой облачной функции

При отправке SMS в Twilio Twilio отправляет несколько запросов на указанный URL-адрес, чтобы сообщить статус доставки этого SMS через веб-перехватчики. Я хочу сделать этот обратный вызов асинхронным, поэтому я разработал облачную функцию, которая отправляет представление запроса в облачную задачу, которая сама достигает выделенной конечной точки моего приложения, которая воссоздает и моделирует запрос Twilio внутренне.

Твилио подписывает свои запросы, используя:

  • секретный ключ моей учетной записи Twilio
  • абсолютный URL, по которому он обращается
  • и тело его запроса

Итак, на моем сервере я должен знать, к какой конечной точке Twilio обратилась изначально. Я хочу сделать это внутри облачной функции, и я хочу сделать это программно, потому что этот асинхронный веб-перехватчик также используется, когда люди отвечают на SMS.

Текущий URL-адрес моего веб-перехватчика имеет следующий формат:

https://<location>-<project>.cloudfunctions.net/<cloud function name>/<some SMS uuid>

Текущая полезная нагрузка, отправляемая в мою облачную задачу, следующая:

absoluteUri: req.protocol + '://' + req.hostname + req.originalUrl,
relativeUri: req.originalUrl,
queryParams: req.query,
headers: req.headers,
body: req.body,

Проблема в том, что req.originalUrl не содержат полного URI, мой absoluteUri в настоящее время:

https://<location>-<project>.cloudfunctions.net/<some SMS uuid>

Итак, вот мой вопрос: есть ли способ получить имя внутри облачной функции программно?


person Alain Tiemblo    schedule 19.11.2020    source источник


Ответы (1)


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

Выглядит очень некрасиво, если у вас есть способ получше, мы будем рады.

person Alain Tiemblo    schedule 19.11.2020