Cloud Run Functions 개요

이 가이드에서는 다른 서비스가 Cloud Run 함수 배포 프로세스에 참여하는 방식을 간략히 설명합니다. Google Cloud

시작하기 전에

Cloud Run 배포 옵션 및 리소스 모델 가이드에서 Cloud Run 함수 및 소스 배포 개념을 숙지합니다.

아키텍처 개요

함수 소스 코드를 Cloud Run 함수에 배포하면 이 소스 코드가 Cloud Storage 버킷에 저장됩니다. 그러면 Cloud Build가 컨테이너 이미지에 코드를 자동으로 빌드하고 해당 이미지를 Artifact Registry 이미지 레지스트리에 푸시합니다. Cloud Run 함수는 함수를 실행하기 위해 컨테이너를 실행해야 할 때 이 이미지에 액세스합니다.

다음 다이어그램에서 Cloud Run 함수 상자는 Cloud Run Admin API 또는 Cloud Functions API를 사용하여 Cloud Run에 배포된 함수를 나타냅니다. 일반적으로 최신 함수는 Cloud Run Admin API를 사용하여 배포되고 이전 함수는 Cloud Functions API를 사용하여 배포됩니다.

Google Cloud 콘솔에서 Cloud Run Admin API를 호출합니다.
그림 1. 사용자가 함수 소스 코드를 준비하고 Cloud Run에 배포합니다.

함수를 배포할 때 사용되는 API에 따라 다음이 발생합니다.

  • Cloud Run Admin API를 사용하여 함수를 배포한 경우 다음이 발생합니다.

    1. 소스 코드는 보관 기간이 없는 Cloud Storage 버킷에 업로드됩니다.

      1. 기본 암호화를 사용하는 경우 버킷 이름이 자동 생성되며 이름은 run-sources-PROJECT_ID-REGION입니다.
      2. 고객 관리 암호화 키 (CMEK)로 데이터를 보호하는 경우 버킷 이름이 자동 생성되지 않으므로 버킷 이름을 제공해야 합니다.
    2. 소스 코드는 Cloud Build에 제출되며 여기에서 Google Cloud의 Buildpack과 Functions 프레임워크가 컨테이너 이미지를 만듭니다. Cloud Build 서비스 계정이 컨테이너 이미지를 빌드합니다.

    3. 그러면 REGION-docker.pkg.dev/PROJECT_ID/cloud-run-source-deploy라는 자동 생성 버킷을 통해 컨테이너 이미지가 Artifact Registry에 업로드됩니다.

    4. 이미지가 서비스로 Cloud Run에 배포됩니다.

    5. Eventarc, Pub/Sub 또는 기타 HTTP 트리거를 사용하여 함수를 트리거하거나 호출할 수 있습니다.

  • Cloud Functions API (v2)를 사용하여 함수를 배포한 경우 다음이 발생합니다.

    1. 소스 코드는 보관 기간이 없는 Cloud Storage 버킷에 업로드됩니다.

      버킷 이름은 자동 생성되며 다음 형식을 따릅니다.

      1. 기본 암호화를 사용하는 경우 이 버킷의 이름은 gcf-v2-sources-PROJECT_NUMBER-REGION입니다.
      2. CMEK로 데이터를 보호하는 경우 버킷의 이름은 gcf-sources-PROJECT_NUMBER-REGION-CMEK_KEY_HASH입니다.
    2. 소스 코드는 Cloud Build에 제출되며 여기에서 Google Cloud의 Buildpack과 Functions 프레임워크가 컨테이너 이미지를 만듭니다. Cloud Build 서비스 계정이 컨테이너 이미지를 빌드합니다.

    3. 그러면 REGION-docker.pkg.dev/PROJECT_ID/gcf-artifacts라는 자동 생성 버킷을 통해 컨테이너 이미지가 Artifact Registry에 업로드됩니다.

    4. 이미지가 서비스로 Cloud Run에 배포됩니다.

    5. Eventarc, Pub/Sub 또는 기타 HTTP 트리거를 사용하여 함수를 트리거하거나 호출할 수 있습니다.

다음 단계