Запланируйте задачи Google Cloud для запуска функции Firebase - PullRequest
0 голосов
/ 10 января 2020

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

Я создаю задачу с моего локального хоста, используя это code

const serviceAccount = require('./serviceAccount.json');
const {CloudTasksClient} = require('@google-cloud/tasks');
const client = new CloudTasksClient({
    credentials: serviceAccount
});
const parent = client.queuePath("my-firebase-app-name-is-here", "us-central1", "matchmaking-queue-cleanup");
const task = {
    appEngineHttpRequest: {
        httpMethod: 'POST',
        relativeUri: '/leave-queue'
    },
};
task.appEngineHttpRequest.body = Buffer.from(JSON.stringify({
    id: "test"
})).toString('base64');
task.scheduleTime = {
    minutes: 13
};
const request = {parent, task};
client.createTask(request).then((response) => {
    console.log(`created task ${response.name}`);
}).catch(console.log);

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

cloud tasks

Задача продолжает сбой и Повторная попытка. Я не вижу никаких журналов со стороны облачной функции.

Вот как выглядит облачная функция. enter image description here

enter image description here

Есть идеи, что мне нужно сделать, чтобы получить облачную задачу для вызова облачной функции?

Ответы [ 2 ]

3 голосов
/ 10 января 2020

Для запуска облачной функции вы должны использовать цели HTTP , а не цели App Engine . С целями App Engine задача пытается найти специальный маршрут к приложению App Engine. Вы бы изменили это в своем объекте задачи:

const task = {
    httpRequest: {
        httpMethod: 'POST',
        url: <URL_FOR_FUNCTION>
    },
};

Вот учебник о том, как использовать Облачные задачи с облачными функциями .

0 голосов
/ 10 января 2020

Вы включили API App Engine? Для облачной функции этот API должен быть включен.

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