이 페이지에서는 Cloud Build를 사용하여 Cloud Run 함수에 애플리케이션을 배포하는 방법을 설명합니다. Cloud Build를 처음 사용하는 경우 빠른 시작 및 빌드 구성 개요를 먼저 읽어보세요.
Cloud Run 함수는 클라우드 서비스를 빌드하고 연결하기 위한 서버리스 실행 환경입니다. Cloud Run 함수를 사용하면 클라우드 인프라와 서비스에서 발생하는 이벤트에 연결되는 단일 목적의 간단한 함수를 작성할 수 있습니다. 함수는 감시 중인 이벤트 발생 시에 트리거됩니다. Cloud Run 함수에 대한 자세한 내용은 Cloud Run 함수 문서를 참고하세요.
시작하기 전에
Cloud Run 함수 API를 사용 설정합니다.
빌드 서비스 계정에 Cloud Run 함수 개발자 역할을 부여합니다.
Cloud Build 설정 페이지를 엽니다.
Cloud Run 함수 개발자 역할의 상태를 사용으로 설정합니다.
이 페이지에서
gcloud
명령어를 실행하려면 Google Cloud CLI를 설치합니다.빌드하고 Cloud Run 함수에 배포할 애플리케이션 소스 코드를 준비합니다. 소스 코드는 Cloud Source Repositories, GitHub 또는 Bitbucket과 같은 저장소에 저장되어야 합니다.
배포 구성
Cloud Build를 사용하면 공개적으로 사용 가능한 컨테이너 이미지를 사용하여 작업을 실행할 수 있습니다. Cloud Build 구성 파일의 빌드 step
에서 이미지를 지정하면 됩니다.
Cloud Run 함수는 함수 코드가 포함된 디렉터리의 함수를 배포하는 gcloud functions deploy
명령어를 제공합니다.
구성 파일의 빌드 단계에서 cloud-sdk
이미지를 사용하여 이미지 내 gcloud
명령어를 호출할 수 있습니다.
이 빌드 단계로 전달된 인수는 Google Cloud CLI로 바로 전달되어 이 이미지에 있는 모든 gcloud
명령어를 실행할 수 있도록 합니다.
Cloud Run 함수에 애플리케이션을 배포하려면 다음 단계를 따르세요.
- 프로젝트 루트 디렉터리에
cloudbuild.yaml
또는cloudbuild.json
이라는 Cloud Build 구성 파일을 만듭니다. 구성 파일에서 다음을 수행합니다.
name
필드를 추가하고gcloud
빌드 단계를 지정합니다.args
필드에functions deploy
를 추가하여gcloud functions deploy
명령어를 호출합니다. 사용 가능한 구성 옵션은gcloud functions deploy
참조를 확인하세요.--source=.
는 소스 코드가 현재 작업 디렉터리에 있음을 나타냅니다.
YAML
steps: - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' args: - gcloud - functions - deploy - FUNCTION_NAME - --region=FUNCTION_REGION - --source=. - --trigger-http - --runtime=RUNTIME
JSON
{ "steps": [ { "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "args": [ "gcloud", "functions", "deploy", [ "FUNCTION_NAME" ], "--region=FUNCTION_REGION", "--source=.", "--trigger-http", "--runtime=RUNTIME" ] } ] }
위 구성 파일의 자리표시자 값을 다음으로 바꿉니다.
FUNCTION_NAME
은 배포 중인 Cloud Run 함수의 이름입니다. 기존 함수를 업데이트하는 경우, 이 값이 업데이트할 함수 이름과 일치해야 합니다.FUNCTION_REGION
은 Cloud Run 함수를 배포할 리전입니다. 지원되는 리전 목록은 Cloud Run 함수 위치를 참조하세요.--trigger-http
는 이 함수에 대한 트리거 유형이며, 이 경우 HTTP 요청(웹훅)입니다.RUNTIME
은 함수를 실행할 런타임입니다.
gcloud functions deploy
사용에 관한 자세한 내용은 Cloud Run 함수 문서를 참조하세요.이전 단계에서 만든 구성 파일을 사용하여 빌드를 시작합니다.
gcloud builds submit --region=REGION --config CONFIG_FILE_PATH SOURCE_DIRECTORY
위 구성 파일의 자리표시자 값을 다음으로 바꿉니다.
CONFIG_FILE_PATH
는 빌드 구성 파일의 경로입니다.SOURCE_DIRECTORY
는 소스 코드의 경로 또는 URL입니다.REGION
은 지원되는 빌드 리전 중 하나입니다.
gcloud builds submit
명령어에서CONFIG_FILE_PATH
와SOURCE_DIRECTORY
를 지정하지 않으면 Cloud Build는 구성 파일과 소스 코드가 현재 작업 중인 디렉터리에 있다고 간주합니다.
지속적 배포
Cloud Build 트리거를 만들어 Cloud Run 함수로 소프트웨어를 배포하는 과정을 자동화할 수 있습니다. 트리거를 구성하면 소스 코드를 업데이트할 때마다 이미지를 빌드하고 배포할 수 있습니다.
Cloud Run 함수에 대한 배포를 자동화하려면 다음 안내를 따르세요.
저장소에
gcloud functions deploy
명령어를 호출하는 단계가 포함된 구성 파일을 추가합니다.YAML
steps: - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' args: - gcloud - functions - deploy - FUNCTION_NAME - --region=FUNCTION_REGION - --source=. - --trigger-http - --runtime=RUNTIME
JSON
{ "steps": [ { "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "args": [ "gcloud", "functions", "deploy", [ "FUNCTION_NAME" ], "--region=FUNCTION_REGION", "--source=.", "--trigger-http", "--runtime=RUNTIME" ] } ] }
위 구성 파일의 자리표시자 값을 다음으로 바꿉니다.
FUNCTION_NAME
은 배포 중인 Cloud Run 함수의 이름입니다. 기존 함수를 업데이트하는 경우, 이 값이 업데이트할 함수 이름과 일치해야 합니다.FUNCTION_REGION
은 Cloud Run 함수를 배포할 리전입니다. 지원되는 리전 목록은 Cloud Run 함수 위치를 참조하세요.--trigger-http
는 이 함수에 대한 트리거 유형이며, 이 경우 HTTP 요청(웹훅)입니다.RUNTIME
은 함수를 실행할 런타임입니다.
이전 단계에서 만든 구성 파일을 사용하여 빌드 트리거를 만듭니다.
Google Cloud Console에서 트리거 페이지를 엽니다.
페이지 상단의 프로젝트 선택기 드롭다운 메뉴에서 프로젝트를 선택합니다.
트리거 만들기를 클릭합니다.
이름 필드에 트리거 이름을 입력합니다.
리전 아래에서 트리거의 리전을 선택합니다.
이벤트 아래에서 트리거를 시작할 저장소 이벤트를 선택합니다.
소스 아래에서 저장소를 선택하고 트리거를 시작할 브랜치 또는 태그 이름을 선택합니다. 자동 빌드할 분기 지정에 대한 자세한 내용은 빌드 트리거 만들기를 참조하세요.
구성 아래에서 Cloud Build 구성 파일(yaml 또는 json)을 선택합니다.
Cloud Build 구성 파일 위치 필드에
/
와cloudbuild.yaml
을 차례로 입력합니다.만들기를 클릭하여 빌드 트리거를 저장합니다.
저장소에 새 코드를 푸시할 때마다 Cloud Run 함수에 빌드 및 배포를 자동으로 트리거합니다.
Cloud Build 트리거 생성에 대한 자세한 내용은 빌드 트리거 생성 및 관리를 참조하세요.
다음 단계
- Compute Engine에서 블루/그린 배포 수행 방법 알아보기
- Cloud Run에 배포하는 방법 알아보기
- GKE에 배포하는 방법 알아보기
- Firebase에 배포하는 방법 알아보기
- App Engine에 배포하는 방법 알아보기
- 빌드 오류 문제 해결 방법 알아보기