#javascript #firebase #google-cloud-platform #google-cloud-functions
#javascript #firebase #google-облачная платформа #google-cloud-функции
Вопрос:
У меня есть несколько облачных функций, которые используют одно значение, в основном что-то вроде этого:
index.js
function emailFooter() {
return `<div>email footer</div>`;
}
exports.sendEmailSuccess = functions.https.onCall(() => {
const emailContent = 'success content' emailFooter();
sendEmail(emailContent) // fake email sender
});
exports.sendEmailFailure = functions.https.onCall(() => {
const emailContent = 'failure content' emailFooter();
sendEmail(emailContent) // fake email sender
});
Проблема в том, что я хочу изменить содержимое нижнего колонтитула (возвращаемое emailFooter
), но для этого (насколько я исследовал) Сначала мне нужно изменить его в коде, а затем развернуть каждую облачную функцию, которая использует emailFooter
( sendEmailSuccess
и sendEmailFailure
) , поэтому нижний колонтитул будет выглядеть одинаково для каждого типа электронной почты.
Конечно, я мог бы просто развернуть все функции одновременно firebase deploy --only functions
, но раньше мы были несколькими разработчиками, и некоторые из нас обновляли функции до такой степени, что мы не знаем, какие из них одинаковы в index.js как и в GCP (около 20 функций), и я должен был бы проверить каждую из них, чтобыЯ бы не стал развертывать старую версию.
Есть ли способ обновить это единственное значение или хотя бы узнать, какие функции обновлены?
Спасибо.
Ответ №1:
Если единственное значение может быть предоставлено только кодом, то нет способа обновить это значение без повторного развертывания каждой функции. Код не является общим для экземпляров функции — у каждого есть своя копия.
Если вы хотите разделить значение между функциями, и оно может меняться со временем, вам нужно будет поместить это значение в другое место, например, в базу данных. Затем каждая функция может запросить значение из другого источника даже после его изменения.