콘솔로 이동

함수 예약

지정된 시간에 함수를 실행하도록 예약하려면 functions.pubsub.schedule().onRun()을 사용합니다. 이 간편한 메소드는 Google Cloud Pub/Sub 주제를 만들고 Google Cloud 스케줄러를 사용하여 원하는 일정에 따라 함수가 실행되도록 Cloud Pub/Sub 주제의 이벤트를 트리거합니다.

시작하기 전에

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

결제는 필수이지만 각 Cloud 스케줄러 작업의 월별 비용은 $0.10(USD)이고 프로젝트당 무료 작업이 3개까지 허용되므로 전반적인 비용은 부담스럽지 않은 수준일 것입니다. Blaze 가격 계산기를 사용하여 예상 사용량에 따른 예상 비용을 확인해 보세요.

Google Cloud Pub/Sub 및 Cloud Scheduler API는 프로젝트에 사용 설정되어야 하며 대부분의 Firebase 프로젝트에는 이미 사용 설정되어 있어야 합니다. Google Cloud Platform Console에서 사용 설정 여부를 확인할 수 있습니다.

예약 함수 작성

Firebase용 Cloud Functions에서 일정 예약 로직은 특정 배포 시간 요구사항 없으며 함수 코드에 있습니다. 예약 함수를 만들려면 functions.pubsub.schedule('your schedule').onRun((context))을 사용합니다. 예를 들어 AppEngine cron.yaml 구문을 사용하여 5분마다 함수를 실행하려면 다음과 같이 작성하면 됩니다.

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

Unix Crontab 및 AppEngine 구문은 둘 다 Google Cloud 스케줄러에서 지원됩니다. 예를 들어 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!');
});

예약 함수 배포

예약 함수를 배포하면 관련 스케줄러 작업과 Pub/Sub 주제가 자동으로 만들어집니다. Firebase CLI는 주제 이름을 반영하며 GCP Console에서 작업과 주제를 볼 수 있습니다. 주제 이름은 다음 규칙에 따라 지정됩니다.

firebase-scheduled-function_name-region

예:

firebase-scheduled-scheduledFunctionCrontab-us-east1