İşlevleri programlama


İşlevleri belirli zamanlarda çalışacak şekilde planlamak istiyorsanız bu konuda etkinlikleri tetiklemek için Cloud Scheduler'ı kullanan bir Pub/Sub konusu oluşturmak üzere onSchedule işleyicisini kullanın.

Başlamadan önce

Bu çözümü Firebase projenizde kullanmak için projenizin Blaze fiyatlandırma planında olması gerekir. Blaze planında yer almıyorsa fiyatlandırma planınızı yükseltin.

Her Cloud Scheduler işinin maliyeti aylık 0,10 ABD doları olduğundan ve Google hesabı başına üç iş için ücretsiz olarak izin verildiğinden, faturalandırma gerekli olsa da toplam maliyetin yönetilebilir olmasını bekleyebilirsiniz. Öngörülen kullanımınıza göre bir maliyet tahmini oluşturmak için Blaze fiyat hesaplayıcıyı kullanın.

Projeniz için Pub/Sub ve Cloud Scheduler API'leri etkinleştirilmelidir. Bunlar çoğu Firebase projesi için zaten etkinleştirilmiş olmalıdır. Bunu Google Cloud Platform Console'da doğrulayabilirsiniz.

Planlı fonksiyon yazma

Cloud Functions for Firebase'de planlama mantığı, özel dağıtım zamanı gereksinimleri olmadan işlev kodunuzda bulunur. Planlanmış bir işlev oluşturmak için functions.pubsub.schedule('your schedule').onRun((context)) işlevini kullanın. Örneğin, bir işlevi App Engine cron.yaml söz dizimi ile beş dakikada bir çalıştırmak için aşağıdaki gibi bir işlem yapın:

exports.scheduledFunction = functions.pubsub.schedule('every 5 minutes').onRun((context) => {
  console.log('This will be run every 5 minutes!');
  return null;
});

Hem Unix Crontab hem de App Engine söz dizimi, Cloud Scheduler tarafından desteklenir. Örneğin, Crontab'i kullanarak planlanmış bir işlevin çalıştırılacağı belirli bir saat dilimini seçmek için aşağıdaki gibi bir şey yapın:

exports.scheduledFunctionCrontab = functions.pubsub.schedule('5 11 * * *')
  .timeZone('America/New_York') // Users can choose timezone - default is America/Los_Angeles
  .onRun((context) => {
  console.log('This will be run every day at 11:05 AM Eastern!');
  return null;
});

timeZone değeri, tz veritabanındaki bir saat dilimi adı olmalıdır. Desteklenen özellikler hakkında daha fazla bilgi için Cloud Scheduler referansına bakın.

Planlanmış bir işlevi dağıtma

Planlanmış bir işlevi dağıttığınızda ilgili planlayıcı işi ve pub/sub konusu otomatik olarak oluşturulur. Firebase CLI, konu adını belirtir. İşi ve konuyu GCP Console'da görüntüleyebilirsiniz. Konu, aşağıdaki kurala göre adlandırılır:

firebase-planli-function_name-region

Örnek:

firebase-scheduled-scheduledFunctionCrontab-us-east1.