Существует ли переменная для доступа к номеру версии для данной развернутой облачной функции - PullRequest
0 голосов
/ 01 января 2019

GCP отображает номер версии развернутой облачной функции в консоли.На данный момент нет системной переменной , которая содержит информацию о развертывании - нет ни версии, ни даты развертывания.

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

Ответы [ 3 ]

0 голосов
/ 01 января 2019

Не существует простого способа получить номер версии функции во время выполнения.У вас всегда есть возможность назначить какое-то значение самостоятельно и поместить его в переменную окружения с помощью флага --set-env-vars в gcloud.

Если ваша цель - выяснить, является ли вызов функциина самом деле запуск кода, который вы только что развернули во время итерации во время разработки, эффективно просто console.log('deployed') в глобальной области действия вашей функции.Это сообщение появится в журналах консоли после завершения развертывания, и вы можете дождаться появления этого сообщения в журнале, чтобы узнать, когда ваш новый код активен.Все, что записывается после этого журнала, должно быть из вашего последнего кода.

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

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

Из проверки также кажется, чтоPython37 и более ранние среды nodejs8 включают неофициальную переменную среды X_GOOGLE_FUNCTION_VERSION, которая содержит версию развертывания.

Этот фрагмент кода работает на nodejs10 и неофициально работает на nodejs8:

exports.helloVersion = (req, res) => {
  console.log(process.env);
  const version = process.env.K_REVISION || process.env.X_GOOGLE_FUNCTION_VERSION || "UNKNOWN";
  console.log(`Running version ${version}`);
  res.status(200).send(`Running version ${version}\n`)
};

Развертывание и тестирование:

$ gcloud functions deploy helloVersion --runtime nodejs8 --trigger-http
versionId: '8'
$ curl https://us-central1-myproject.cloudfunctions.net/helloVersion
Running version 8

$ gcloud functions deploy helloVersion --runtime nodejs10 --trigger-http
versionId: '9'
$ curl https://us-central1-myproject.cloudfunctions.net/helloVersion
Running version 9

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

0 голосов
/ 01 января 2019

Чек gcloud version, который печатает информацию о версии.

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