이 가이드에서는 다른 서비스가 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를 사용하여 배포됩니다.
함수를 배포할 때 사용되는 API에 따라 다음이 발생합니다.
Cloud Run Admin API를 사용하여 함수를 배포한 경우 다음이 발생합니다.
소스 코드는 보관 기간이 없는 Cloud Storage 버킷에 업로드됩니다.
- 기본 암호화를 사용하는 경우 버킷 이름이 자동 생성되며 이름은
run-sources-PROJECT_ID-REGION
입니다. - 고객 관리 암호화 키 (CMEK)로 데이터를 보호하는 경우 버킷 이름이 자동 생성되지 않으므로 버킷 이름을 제공해야 합니다.
- 기본 암호화를 사용하는 경우 버킷 이름이 자동 생성되며 이름은
소스 코드는 Cloud Build에 제출되며 여기에서 Google Cloud의 Buildpack과 Functions 프레임워크가 컨테이너 이미지를 만듭니다. Cloud Build 서비스 계정이 컨테이너 이미지를 빌드합니다.
그러면
REGION-docker.pkg.dev/PROJECT_ID/cloud-run-source-deploy
라는 자동 생성 버킷을 통해 컨테이너 이미지가 Artifact Registry에 업로드됩니다.이미지가 서비스로 Cloud Run에 배포됩니다.
Eventarc, Pub/Sub 또는 기타 HTTP 트리거를 사용하여 함수를 트리거하거나 호출할 수 있습니다.
Cloud Functions API (v2)를 사용하여 함수를 배포한 경우 다음이 발생합니다.
소스 코드는 보관 기간이 없는 Cloud Storage 버킷에 업로드됩니다.
버킷 이름은 자동 생성되며 다음 형식을 따릅니다.
- 기본 암호화를 사용하는 경우 이 버킷의 이름은
gcf-v2-sources-PROJECT_NUMBER-REGION
입니다. - CMEK로 데이터를 보호하는 경우 버킷의 이름은
gcf-sources-PROJECT_NUMBER-REGION-CMEK_KEY_HASH
입니다.
- 기본 암호화를 사용하는 경우 이 버킷의 이름은
소스 코드는 Cloud Build에 제출되며 여기에서 Google Cloud의 Buildpack과 Functions 프레임워크가 컨테이너 이미지를 만듭니다. Cloud Build 서비스 계정이 컨테이너 이미지를 빌드합니다.
그러면
REGION-docker.pkg.dev/PROJECT_ID/gcf-artifacts
라는 자동 생성 버킷을 통해 컨테이너 이미지가 Artifact Registry에 업로드됩니다.이미지가 서비스로 Cloud Run에 배포됩니다.
Eventarc, Pub/Sub 또는 기타 HTTP 트리거를 사용하여 함수를 트리거하거나 호출할 수 있습니다.
다음 단계
- 다양한 유형의 함수와 함수 트리거 옵션에 대해 알아보세요.
- 이전에 Cloud Functions API로 함수를 만든 경우 Cloud Run 함수 비교 가이드에서 두 버전의 Cloud Run 함수 간의 차이점을 알아보세요.