Cloud Functions for Firebase의 함수를 스케줄러에서 정기적으로 호출하는 쉬운 방법

소개



Cloud Functions를 스케줄러에서 호출하는 방법에 대해 알아보세요.

이전 Cloud Functions for Firebase의 함수를 스케줄러에서 정기적으로 호출이라는 기사에서 Cloud Functions for Firebase를 정기적으로 호출하는 데,
  • functions.pubsub.topic('testTopic').onPublish(message => {..処理..}) 라는 함수를 만들어
  • gcloud 명령을 사용하여 testTopic에 Publish 할 작업을 예약합니다.

    하는 방법을 썼지만 그 계속.

    보다 간단하게 설정할 수 있게 되어 있었다(처음부터 있었다??)



    최근에 보면, 함수 예약 에 보다 간단한 방법이.

    우선 이하는 전회의 방법입니다.

    지난번
    function want_to_execute() {
      console.log('実行したいロジック!')
    }
    
    export const helloPubSub = functions.pubsub
    .topic('testTopic').onPublish(message => {
      want_to_execute()
    })
    

    구체적인 일정은 별도로 등록했습니다.

    이거

    이번에
    function want_to_execute() {
      console.log('実行したいロジック!')
    }
    
    export const helloPubSub = functions.pubsub
      .schedule('0 */1 * * *')
      .timeZone('Asia/Tokyo')
      .onRun(async context => {
        want_to_execute()
      })
    

    처럼 스케줄 지정과 타임 존을 직접 기술할 수 있는 것 같습니다. 간단하네요. .
    덧붙여서 코코로 Own Coding 해 버려도, 나중에 화면상에서 변경 가능합니다.

    이제 배포하고 확인해 봅시다.
    $ npm run deploy
    

    화면에서 확인해 보면 firebase-schedule-checkLicensePubSub-us-central1 라는 Topic 대기의 함수가 확실히 등록되어 있습니다.



    스케줄러는 그 토픽에 게시하도록 예약되었습니다.


    일단 토픽을 보면


    이와 같이 우라에서는 Topic이 자동 작성되고 있었습니다. 이렇게 기존 방식과 같은 방식입니다.
    즉 스케줄 정보를 코드상에 쓰는 방법은 기존의 쓰는 방법의 syntactic sugar 라는 것을 알았습니다. .

    미안해.

    참고 덧붙여서 코드상에서 함수의 region이라고도 지정할 수 있었다



    비망입니다.
    export const helloPubSub = functions.pubsub.region('asia-northeast1')  ココ
      .schedule('0 */1 * * *')
      .timeZone('Asia/Tokyo')
      .onRun(async context => {
        want_to_execute()
      })
    

    이런 식으로 함수가 가동하는 region 지정 등도 가능했습니다.

    관련 링크


  • Cloud Functions for Firebase의 함수를 스케줄러에서 정기적으로 호출

  • 함수 예약
  • 좋은 웹페이지 즐겨찾기