HTTP Cloud Run 함수 예약


이 튜토리얼에서는 Cloud Scheduler를 사용하고 HTTP 엔드포인트를 타겟팅하여 HTTP Cloud Run 함수를 트리거하는 방법을 보여줍니다. 함수가 URL 엔드포인트를 포함하고 웹훅과 같은 HTTP 요청에 응답하도록 하려면 HTTP 함수를 사용합니다.

Pub/Sub 주제에 대한 메시지 또는 Cloud Storage 버킷의 변경사항 등 Google Cloud 프로젝트 내에서 이벤트에 대한 응답으로 함수를 직접 트리거해야 하는 경우 이벤트 기반 함수를 예약할 수도 있습니다. 자세한 내용은 Cloud Run 함수 유형을 참조하세요.

Cloud Run 함수 실행 예약은 Cloud Scheduler의 일반적인 사용 사례입니다. 이 튜토리얼에서는 다음 단계를 진행합니다.

  1. 간단한 HTTP Cloud Run 함수를 만듭니다.
  2. Cloud Scheduler 작업을 만듭니다.
  3. Cloud 스케줄러 작업을 실행합니다.
  4. Cloud Run 함수가 Cloud Scheduler 작업에 의해 트리거되었는지 확인합니다.

비용

이 문서에서는 비용이 청구될 수 있는 다음과 같은 Google Cloud 구성요소를 사용합니다.

프로젝트 사용량을 기준으로 예상 비용을 산출하려면 가격 계산기를 사용하세요. Google Cloud를 처음 사용하는 사용자는 무료 체험판을 사용할 수 있습니다.

시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  4. Enable the Cloud Build, Cloud Functions, Cloud Run Admin, Cloud Scheduler APIs.

    Enable the APIs

  5. Create a service account:

    1. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    2. Select your project.
    3. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    4. Click Create and continue.
    5. Grant the Cloud Run > Cloud Run Invoker role to the service account.

      To grant the role, find the Select a role list, then select Cloud Run > Cloud Run Invoker.

    6. Click Continue.
    7. Click Done to finish creating the service account.

  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  7. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  8. Enable the Cloud Build, Cloud Functions, Cloud Run Admin, Cloud Scheduler APIs.

    Enable the APIs

  9. Create a service account:

    1. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    2. Select your project.
    3. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    4. Click Create and continue.
    5. Grant the Cloud Run > Cloud Run Invoker role to the service account.

      To grant the role, find the Select a role list, then select Cloud Run > Cloud Run Invoker.

    6. Click Continue.
    7. Click Done to finish creating the service account.

  10. Cloud Run 함수(2세대)에서는 기본 Cloud Run 서비스를 관리하여 호출 권한을 사용할 수 있으므로 Cloud Run 호출자 역할을 부여해야 합니다.

  11. 기본적으로 Cloud Run 함수는 런타임 서비스 계정에 자동으로 생성된 기본 Compute Engine 서비스 계정을 사용합니다. 이 서비스 계정을 사용하여 이 튜토리얼을 사용해 볼 수 있습니다. 그러나 조직 정책 구성에 따라 프로젝트에 대한 편집자 역할이 기본 서비스 계정에 자동으로 부여되지 않을 수 있습니다. 이러한 경우 다음 역할을 서비스 계정에 부여해야 합니다.
    1. Artifact Registry 작성자(roles/artifactregistry.writer)
    2. 로그 작성자(roles/logging.logWriter)
    3. 스토리지 객체 뷰어(roles/storage.objectViewer)

HTTP Cloud Run 함수 만들기

Cloud Scheduler에 의해 트리거되는 HTTP 함수를 만듭니다.

  1. Google Cloud 콘솔에서 Cloud Run 함수 페이지로 이동합니다.

    Cloud Run 함수로 이동

  2. 함수 만들기를 클릭합니다.

  3. 기본사항 섹션에서 다음을 수행합니다.

    1. 환경 목록에서 2세대를 선택합니다.
    2. 함수의 이름을 입력합니다.
    3. 리전 목록에서 리전을 선택합니다.
  4. 트리거 섹션에서 다음을 수행합니다.

    1. 트리거 유형 목록에서 HTTPS를 선택합니다.
    2. 인증에서 인증 필요를 선택합니다.

      자세한 내용은 호출 인증(2세대)을 참조하세요.

  5. 다른 기본값을 그대로 두고 다음을 클릭합니다.

  6. 기본 런타임 언어 및 샘플 코드를 수정하지 마세요. 이 코드는 클라우드 서비스를 사용하지 않으며 추가 권한을 사용 설정할 필요가 없습니다. 배포를 클릭합니다.

  7. 함수가 성공적으로 배포되면 트리거 탭을 클릭합니다.

  8. 함수의 HTTP URL을 복사합니다.

Cloud Scheduler 작업 만들기

HTTP를 사용하여 작업을 트리거하는 Cloud Scheduler 작업을 만듭니다.

  1. Google Cloud 콘솔에서 Cloud Scheduler 페이지로 이동합니다.

    Cloud Scheduler로 이동

  2. 작업 만들기를 클릭합니다.

  3. 작업의 이름을 입력합니다.

  4. 리전 목록에서 리전을 선택합니다.

  5. unix-cron 형식을 사용하여 작업의 빈도를 지정합니다.

    30 16 * * 7
    

    자세한 내용은 크론 작업 형식 및 시간대를 참조하세요.

  6. 시간대 목록에서 시간대를 선택합니다.

  7. 계속을 클릭합니다.

  8. 대상 유형 목록에서 HTTP를 선택합니다.

  9. URL 필드에 이전에 복사한 함수의 HTTP URL을 입력합니다.

  10. 인증 헤더 목록에서 OIDC 토큰 추가를 선택합니다.

  11. 서비스 계정 목록에서 이전에 만든 서비스 계정을 선택합니다.

  12. 대상 필드에 이전에 복사한 함수의 HTTP URL을 입력합니다.

  13. 만들기를 클릭합니다.

일요일 오후 4시 30분에 Cloud Run 함수를 실행하는 크론 작업을 만들었습니다.

Cloud Scheduler 작업 실행

이제 만든 작업을 실행할 수 있습니다.

  1. Google Cloud 콘솔에서 Cloud Scheduler 페이지로 이동합니다.

    Cloud Scheduler로 이동

  2. 자신이 만든 작업의 체크박스를 선택하고 강제 실행을 클릭합니다.

    처음 호출될 때는 프로젝트에서 만든 첫 번째 작업을 구성하고 실행하는 데 몇 분 정도 걸릴 수 있습니다.

  3. 작업이 실행되면 최종 실행 상태Success로 표시됩니다.

Cloud Run 함수에서 결과 확인

Cloud Run 함수가 크론 작업에 의해 성공적으로 트리거되고 실행되는지 확인할 수 있습니다.

  1. Google Cloud 콘솔에서 Cloud Run 함수 페이지로 이동합니다.

    Cloud Run 함수로 이동

  2. 함수 이름을 클릭합니다.

    함수 세부정보 페이지가 열리고 호출/초 그래프에 함수의 첫 번째 호출이 표시됩니다.

  3. 로그 탭을 클릭합니다.

    POST 200 146 B 5 ms Google-Cloud-Scheduler https://REGION-PROJECT_ID.cloudfunctions.net/FUNCTION_NAME과 비슷한 로그 항목이 표시됩니다.

삭제

이 튜토리얼에서 사용된 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 리소스가 포함된 프로젝트를 삭제하거나 프로젝트를 유지하고 개별 리소스를 삭제하세요.

프로젝트 삭제

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

튜토리얼 리소스 삭제

  1. Google Cloud 콘솔에서 Cloud Scheduler 페이지로 이동합니다.

    Cloud Scheduler로 이동

  2. 작업 옆의 체크박스를 선택합니다.

  3. 삭제를 클릭하고 삭제되었는지 확인합니다.

  4. Google Cloud 콘솔에서 Cloud Run 함수 페이지로 이동합니다.

    Cloud Run 함수로 이동

  5. 함수 옆에 있는 체크박스를 선택합니다.

  6. 삭제를 클릭하고 삭제되었는지 확인합니다.

  7. Google Cloud 콘솔에서 서비스 계정 페이지로 이동합니다.

    서비스 계정으로 이동

  8. 자신이 만든 서비스 계정 옆에 있는 체크박스를 선택합니다.

  9. 삭제를 클릭하고 삭제되었는지 확인합니다.

다음 단계