Облачная функция Google с другой конечной точкой в ​​Google - PullRequest
0 голосов
/ 29 апреля 2020

Я создал проект в express

const express = require('express');
const app = express();

const PORT = 5555;


app.listen(PORT, () => {
    console.log(`Server running on port ${PORT}`);
});

app.get('/tr', (req, res, next) => {
    res.json({ status: 200, data: 'tr' })
});

app.get('/po', (req, res, next) => {
    res.json({ status: 200, data: 'po' })
});

module.exports = {
    app
};

, развернутый в облачной функции с именем my -action

, и я планирую с помощью Google Clound URL-адрес, такой как

http://url/my-transaction/po

При развертывании без аутентификации планировщик запускает задание успешно, но при проверке подлинности не удается.

similary, если я создаю пример проекта, как показано ниже

exports.helloHttp = (req, res) => {
    res.json({ status: 200, data: 'test hello' })
  };

, и развертываю similary, конфигурирующий то же, что и выше, с аутентификацией, это работает.

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

любая помощь, приветствуется Спасибо

1 Ответ

0 голосов
/ 29 апреля 2020

Это потому, что вам нужно добавить информацию об аутентификации к вашим http-запросам в облаке Планировщик

Сначала вам нужно создать учетную запись службы с ролью Cloud Functions Invoker

Когда вы создали учетную запись службы, вы можете увидеть, что с адресом электронной почты связан пример:

cfinvoker@fakeproject.iam.gserviceaccount.com

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

  1. Выберите цель http
  2. Введите URL-адрес (URL-адрес облачной функции)
  3. Нажмите «Показать больше»
  4. Выберите заголовок Auth> Добавить OID C токен
  5. Введите полный адрес электронной почты учетной записи службы

Этот новый планировщик заданий отправит запрос http с информацией аутентификации успешно выполнить вашу облачную функцию.

...