Cloud Functions에 배포

이 페이지에서는 Cloud Build를 사용하여 Cloud Functions에 애플리케이션을 배포하는 방법을 설명합니다. Cloud Build를 처음 사용하는 경우 빠른 시작빌드 구성 개요를 먼저 읽어보세요.

Cloud Functions는 클라우드 서비스를 빌드하고 연결하기 위한 서버리스 실행 환경입니다. Cloud Functions를 사용하면 클라우드 인프라 및 서비스에서 발생하는 이벤트에 연결되는 단일 목적의 간단한 함수를 작성할 수 있습니다. 함수는 감시 중인 이벤트 발생 시에 트리거됩니다. Cloud Functions에 대한 자세한 내용은 Cloud Functions 문서를 참조하세요.

시작하기 전에

  • Cloud Functions API를 사용 설정합니다.

    Cloud Functions API 사용 설정

  • Cloud Build 서비스 계정에 Cloud Functions 개발자 역할을 부여합니다.

    1. Cloud Build 설정 페이지를 엽니다.

      Cloud Build 설정 페이지 열기

    2. Cloud Functions 개발자 역할의 상태를 사용으로 설정합니다.

  • 이 페이지에서 gcloud 명령어를 실행하려면 Google Cloud CLI를 설치합니다.

  • 빌드하고 Cloud Functions에 배포할 애플리케이션 소스 코드를 준비합니다. 소스 코드는 Cloud Source Repositories, GitHub 또는 Bitbucket과 같은 저장소에 저장되어야 합니다.

배포 구성

Cloud Build를 사용하면 공개적으로 사용 가능한 컨테이너 이미지를 사용하여 작업을 실행할 수 있습니다. Cloud Build 구성 파일의 빌드 step에서 이미지를 지정하면 됩니다.

Cloud Functions는 함수 코드가 포함된 디렉터리의 함수를 배포하는 gcloud functions deploy 명령어를 제공합니다. 구성 파일의 빌드 단계에서 cloud-sdk 이미지를 사용하여 이미지 내 gcloud 명령어를 호출할 수 있습니다. 이 빌드 단계로 전달된 인수는 Google Cloud CLI로 바로 전달되어 이 이미지에 있는 모든 gcloud 명령어를 실행할 수 있도록 합니다.

Cloud Functions에 애플리케이션을 배포하려면 다음 단계를 따르세요.

  1. 프로젝트 루트 디렉터리에 cloudbuild.yaml 또는 cloudbuild.json이라는 Cloud Build 구성 파일을 만듭니다.
  2. 구성 파일에서 다음을 수행합니다.

    • 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 Functions의 이름입니다. 기존 함수를 업데이트하는 경우, 이 값이 업데이트할 함수 이름과 일치해야 합니다.
    • FUNCTION_REGION은 Cloud Functions를 배포할 리전입니다. 지원되는 리전 목록은 Cloud Functions 위치를 참조하세요.
    • --trigger-http는 이 함수에 대한 트리거 유형이며, 이 경우 HTTP 요청(웹훅)입니다.
    • RUNTIME은 함수를 실행할 런타임입니다.

    gcloud functions deploy 사용에 관한 자세한 내용은 Cloud Functions 문서를 참조하세요.

  3. 이전 단계에서 만든 구성 파일을 사용하여 빌드를 시작합니다.

     gcloud builds submit --region=REGION --config CONFIG_FILE_PATH SOURCE_DIRECTORY
    

    위 구성 파일의 자리표시자 값을 다음으로 바꿉니다.

    • CONFIG_FILE_PATH는 빌드 구성 파일의 경로입니다.
    • SOURCE_DIRECTORY는 소스 코드의 경로 또는 URL입니다.
    • REGION지원되는 빌드 리전 중 하나입니다.

    gcloud builds submit 명령어에서 CONFIG_FILE_PATHSOURCE_DIRECTORY를 지정하지 않으면 Cloud Build는 구성 파일과 소스 코드가 현재 작업 중인 디렉터리에 있다고 간주합니다.

지속적 배포

Cloud Build 트리거를 만들어 Cloud Functions로 소프트웨어를 배포하는 과정을 자동화할 수 있습니다. 트리거를 구성하면 소스 코드를 업데이트할 때마다 이미지를 빌드하고 배포할 수 있습니다.

Cloud Functions에 대한 배포를 자동화하려면 다음 안내를 따르세요.

  1. 저장소에 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 Functions의 이름입니다. 기존 함수를 업데이트하는 경우, 이 값이 업데이트할 함수 이름과 일치해야 합니다.
    • FUNCTION_REGION은 Cloud Functions를 배포할 리전입니다. 지원되는 리전 목록은 Cloud Functions 위치를 참조하세요.
    • --trigger-http는 이 함수에 대한 트리거 유형이며, 이 경우 HTTP 요청(웹훅)입니다.
    • RUNTIME은 함수를 실행할 런타임입니다.
  2. 이전 단계에서 만든 구성 파일을 사용하여 빌드 트리거를 만듭니다.

    1. Google Cloud 콘솔에서 트리거 페이지를 엽니다.

      트리거 페이지 열기

    2. 페이지 상단의 프로젝트 선택기 드롭다운 메뉴에서 프로젝트를 선택합니다.

    3. 트리거 만들기를 클릭합니다.

    4. 이름 필드에 트리거 이름을 입력합니다.

    5. 리전 아래에서 트리거의 리전을 선택합니다.

    6. 이벤트 아래에서 트리거를 시작할 저장소 이벤트를 선택합니다.

    7. 소스 아래에서 저장소를 선택하고 트리거를 시작할 분기 또는 태그 이름을 선택합니다. 자동 빌드할 분기 지정에 대한 자세한 내용은 빌드 트리거 만들기를 참조하세요.

    8. 구성 아래에서 Cloud Build 구성 파일(yaml 또는 json)을 선택합니다.

    9. Cloud Build 구성 파일 위치 필드에 /cloudbuild.yaml을 차례로 입력합니다.

    10. 만들기를 클릭하여 빌드 트리거를 저장합니다.

저장소에 새 코드를 푸시할 때마다 Cloud Functions에 빌드 및 배포를 자동으로 트리거합니다.

Cloud Build 트리거 생성에 대한 자세한 내용은 빌드 트리거 생성 및 관리를 참조하세요.

다음 단계