Как обновить конечные точки сервера метаданных Google Cloud Platform Legacy GAE и GCF - PullRequest
0 голосов
/ 09 ноября 2019

Я использую облачные функции Firebase с Node для отправки push-уведомлений, инициируемых событиями базы данных в реальном времени.

Я получил это электронное письмо от Google, в котором предлагалось обновить мои запросы на использование конечной точки v1. В электронном письме говорится:

Наши записи показывают, что вы владеете проектами с приложениями App Engine или облачными функциями, которые все еще вызывают конечные точки pre-GA v0.1 и v1beta1 сервера метаданных App Engine и облачных функций.

Определите проекты, приложения и функции, которые делают эти запросы. В приложении к этому сообщению вы найдете список принадлежащих вам проектов, приложений и функций, которые отправляли запросы конечным точкам сервера метаданных v0.1 и v1beta1 в период с 26 сентября 2019 года по 1 ноября 2019 года. КомментарийЯ знаю, что это за проект.

Обновите клиентские библиотеки Google до последних версий. Список поддерживаемых библиотек Google, для которых требуется обновление, см. В поддерживаемых версиях библиотек. Комментарий: этого я не понимаю. Нужно ли это делать?

Если вы делаете прямые запросы к устаревшим конечным точкам сервера метаданных: чтобы обеспечить минимальное прерывание для ваших экземпляров, обновите свои запросы до конечной точки v1 до апреля30, 2020. Комментарий: я не знаю, делаю ли я прямые запросы

Как перейти с запроса v1beta1 на запросы v1: если вы делаетеДля прямых запросов к URI v1beta1 выполните следующие шаги для обновления до URI v1: измените URI запроса, чтобы использовать v1 вместо v1beta1 Добавьте этот заголовок к вашему запросу: «Метаданные: Google» Например, если выв настоящее время делает этот запрос: curl "http://metadata.google.internal/computeMetadata/v1beta1/instance/id" Обновите до v1 следующим образом: curl" http://metadata.google.internal/computeMetadata/v1/instance/id” -H "Метаданные: вкус: Google" Как обновить запросы v0.1 до запросов v1: Если выотправляете прямые запросы к URI v0.1, выполните следующие шаги для обновления до URI v1: измените URI запроса, чтобы использовать v1 вместо v0.1. Добавьте этот заголовок к вашему запросу:«Metadata-Flavor: Google» Используйте эти инструкции для сопоставления свойств v0.1 со свойствами v1. Например, если вы в данный момент делаете этот запрос: curl "http://metadata.google.internal/0.1/meta-data/instance-id" Обновитесь до v1 следующим образом: curl" http://metadata.google.internal/computeMetadata/v1/instance/id” -H «Вкус метаданных: Google» Повторное развертывание приложения Для выполнения описанных выше шагов потребуется другое развертывание приложения.

Я искал веб-страницу поддержки Google Cloud (как предложено впо электронной почте) и здесь на ТАК. Но я не понимаю, как это сделать.

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

ОБНОВЛЕНИЕ Видимо, эта функция отправляет запросы к конечным точкам сервера метаданных v0.1 и v1beta1:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

exports.sendErrorInputWasSentPush = functions.database.ref('/errorInputs/{barcode}/{date}').onWrite((change, context) => {

const barcode = context.params.barcode
const dataAfter = change.after.val()
const input = dataAfter.input
const pushIDs = [
    "", 
    ""]

console.log(`Error input submitted.`)

const payload = {
    notification: {
        title: '',
        body: '',
        sound: "default"
    }
};

const options = {
    priority: "high",
    timeToLive: 60 * 60 * 24
};

return admin.messaging().sendToDevice(pushIDs, payload, options);

});

версии Firebase:

"firebase-admin": "^8.0.0",
"firebase-functions": "^3.2.0"

1 Ответ

3 голосов
/ 09 ноября 2019

Если вы никогда не выполняете запрос к http://metadata.google.internal/... URL из вашего кода или скрипта, это ничего не изменит!

Если вы используете этот URL, вставьте свой код, мы можем вам помочь.

ОБНОВЛЕНИЕ

Благодаря вашим данным я нашел проблему в файле src/auth/credential.ts из проекта github firebase-admin-node . До версии 8.1.0 значение строки 32:

const GOOGLE_METADATA_SERVICE_PATH = '/computeMetadata/v1beta1/instance/service-accounts/default/token';

Используйте версию 8.2.0 или выше, чтобы решить эту проблему

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