함수 예약


함수가 지정된 시간에 실행되도록 예약하려면 onSchedule 핸들러가 필요합니다. 다음을 사용하는 Pub/Sub 주제 이벤트를 트리거하는 데 사용할 Cloud Scheduler 자세히 살펴보겠습니다

시작하기 전에

Firebase 프로젝트에서 이 솔루션을 사용하려면 프로젝트에서 Blaze 요금제를 사용해야 합니다. Blaze 요금제를 아직 사용하고 있지 않다면 요금제를 업그레이드하세요.

청구가 필요하지만 전체 비용은 적당한 수준일 것으로 예상할 수 있습니다. 각 Cloud Scheduler 작업당 비용은 월 $0.10 (USD)이며 Google 계정당 채용 정보 3개를 무료로 제공할 수 있습니다. Blaze 가격 계산기를 사용하여 예상 사용량에 따른 예상 비용을 확인해 보세요.

Pub/SubCloud Scheduler API가 살펴보겠습니다 대부분의 Firebase 프로젝트에서는 이미 사용 설정되어 있어야 합니다. 할 수 있습니다 Google Cloud 콘솔에서 확인할 수 있습니다.

예약 함수 작성

Cloud Functions for Firebase에서 예약 로직은 함수 코드에 있습니다. 배포할 수 있습니다 예약된 함수를 만들려면 functions.pubsub.schedule('your schedule').onRun((context))을 사용합니다. 예를 들어 1초마다 함수를 실행하려면 5분 동안 App Engine cron.yaml 다음과 같이 실행하세요.

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

Unix Crontab 및 App Engine 구문 모두 Cloud Scheduler에서 지원됩니다. 예를 들어 Crontab을 사용하여 예약 함수를 실행할 특정 시간대를 선택하려면 다음과 같이 작성하면 됩니다.

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의 값은 tz 데이터베이스에 등록된 시간대 이름이어야 합니다. 자세한 내용은 Cloud Scheduler 참조 를 참조하세요.

예약 함수 배포

예약 함수를 배포하면 관련 스케줄러 작업과 Pub/Sub 주제가 자동으로 만들어집니다. Firebase CLI는 주제 이름을 에코합니다. Cloud Shell에서 작업과 주제를 확인할 수 있으며 Google Cloud 콘솔. 주제 이름은 다음 규칙에 따라 지정됩니다.

firebase-scheduled-function_name-region

예를 들면 다음과 같습니다.

firebase-scheduled-scheduledFunctionCrontab-us-east1.