Недавно выпущенная среда выполнения 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
официально не упоминается, поэтому, вероятно, плохая идея полагаться на нее для чего-то важного, но я обнаружил, что это может быть полезно для отображения или включения оппортунистически при интерактивной отладке, развертывании и тестировании.