답변:
업데이트 2019-04-18
이제 Firebase를 통해 Cloud Functions에 예약 된 코드를 배포하는 매우 간단한 방법이 있습니다.
간단한 텍스트 구문을 사용할 수 있습니다.
export scheduledFunctionPlainEnglish =
functions.pubsub.schedule('every 5 minutes').onRun((context) => {
console.log('This will be run every 5 minutes!');
})
또는 더 유연한 크론 테이블 형식 :
export scheduledFunctionCrontab =
functions.pubsub.schedule('5 11 * * *').onRun((context) => {
console.log('This will be run every day at 11:05 AM UTC!');
});
이에 대한 자세한 내용은 다음을 참조하십시오.
이 작업을 수행하려면 프로젝트가 Blaze 요금제에 있어야하므로 아래의 대체 옵션을 참조 용으로 남겨 두겠습니다.
다른 트리거 실행 내에서 지연 되는 경우 Cloud 함수의 단일 호출을 예약하려는 경우 Cloud Tasks 를 사용 하여 설정할 수 있습니다. 어떻게 작동하는지에 대한 확장 예제를 보려면이 기사 를 읽으십시오 .
아래의 원래 답변 ...
아직 내장 runat / cron 유형 트리거가 없습니다.
현재 가장 좋은 방법은 외부 서비스를 사용하여 HTTP 기능을 주기적으로 트리거하는 것입니다. 자세한 내용은 functions-samples 저장소 에서이 샘플 을 참조하세요. 또는 최근에 도입 된 Google Cloud 스케줄러를 사용하여 PubSub 또는 HTTPS를 통해 Cloud Functions를 트리거합니다.
또한 Firebase 블로그 (Firebase 용 Cloud Functions를 사용하여 (Cron) 작업을 예약하는 방법) 및이 동영상 : HTTP 트리거 및 Cron을 사용하여 Firebase 용 Cloud 함수 타이밍 에 대한이 게시물을 읽는 것이 좋습니다 .
마지막 링크는 cron-job.org 를 사용 하여 Cloud Functions를 트리거하고 무료 요금제에있는 프로젝트에서 작동합니다. 이렇게하면 누구나 권한없이 함수를 호출 할 수 있으므로 코드 자체에 남용 방지 메커니즘을 포함 할 수 있습니다.
Each Cloud Scheduler job costs $0.10 (USD) per month
'작업'이 예약 된 항목이 실행될 때마다 발생하는 것이 아니라 타이머 당 비용을 의미한다고 가정합니다. 즉, 매분 실행되는 작업의 비용은 $ 0.10입니까? (호출하는 클라우드 기능 제외).
할 수있는 일은 크론 작업에 의해 트리거되고 PubSub로 내보내는 AppEngine 인스턴스를 스핀 업하는 것입니다. 나는 그것에 대해 특별히 블로그 게시물을 썼습니다.
https://mhaligowski.github.io/blog/2017/05/25/scheduled-cloud-function-execution.html
cron-job.org
Jen이 블로그 게시물에서 언급 한 사실을 포함하면 무료로 사용할 수 있습니다.