이 가이드에서는 다른 Google Cloud 서비스가 Cloud Run Functions 배포 프로세스에 참여하는 방식을 간략히 설명합니다.
시작하기 전에
Cloud Run 배포 옵션 및 리소스 모델 가이드에서 Cloud Run Functions 및 소스 배포 개념을 숙지하세요.
아키텍처 개요
함수 소스 코드를 Cloud Run Functions에 배포하면 이 소스 코드는 Cloud Storage 버킷에 저장됩니다. 그러면 Cloud Build에서 코드를 컨테이너 이미지에 자동으로 빌드하고 이 이미지를 Artifact Registry 이미지 레지스트리로 내보냅니다. Cloud Run Functions는 함수를 실행하려면 컨테이너를 실행해야 하는 경우에 이 이미지에 액세스합니다.
다음 다이어그램에서 Cloud Run Functions 상자는 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 빌드팩과 함수 프레임워크가 컨테이너 이미지를 만듭니다. 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 빌드팩과 함수 프레임워크가 컨테이너 이미지를 만듭니다. Cloud Build 서비스 계정에서 컨테이너 이미지를 빌드합니다.
그러면
REGION-docker.pkg.dev/PROJECT_ID/gcf-artifacts
라는 자동 생성 버킷을 통해 컨테이너 이미지가 Artifact Registry에 업로드됩니다.이미지는 Cloud Run에 서비스로 배포됩니다.
Eventarc, Pub/Sub 또는 기타 HTTP 트리거를 사용하여 함수를 트리거하거나 호출할 수 있습니다.
다음 단계
- 다양한 유형의 함수 및 함수 트리거 옵션 알아보기
- 이전에 Cloud Functions API로 함수를 만든 경우 Cloud Run Functions 비교 가이드를 참조하여 두 버전의 Cloud Run Functions 간의 차이점 알아보기