버전 제어로 Cloud Functions 배포

이 페이지에서는 Cloud Source Repositories에서 버전 제어되는 코드를 사용하여 Cloud Functions를 배포하는 방법을 보여줍니다.

Cloud Functions를 Cloud Source Repositories와 통합하여 Cloud Source Repositories에서 함수가 포함된 코드를 버전 제어할 수 있습니다. 시간 경과에 따라 함수가 변경되므로 이전 커밋에 계속 액세스하여 함수가 언제 어떻게 변경되었는지 확인할 수 있습니다.

시작하기 전에

  1. Cloud Source Repositories에서 코드 저장소 만들기의 단계를 완료합니다.
  2. Cloud Functions API 및 Cloud Build API를 사용 설정합니다.
  3. Cloud Functions API 및 Cloud Build API 사용 설정

저장소에 함수 추가

  1. 로컬 머신에서 hello-world 저장소의 루트 디렉터리로 이동합니다.

    cd hello-world
    
  2. 로컬 시스템에서 함수 코드용 디렉터리를 만듭니다.

    Linux 또는 macOS

    디렉토리를 만듭니다.

    mkdir gcf_hello_world

    해당 디렉터리로 이동합니다.

    cd gcf_hello_world

    Windows(CMD)

    디렉토리를 만듭니다.

    mkdir %HOMEDRIVE%%HOMEPATH%\gcf_hello_world

    해당 디렉터리로 이동합니다.

    cd %HOMEDRIVE%%HOMEPATH%\gcf_hello_world
  3. gcf_hello_world 디렉터리에서 다음 콘텐츠가 포함된 index.js 파일을 만듭니다.

    /* HTTP Cloud Function.
    *
    * @param {Object} req Cloud Function request context.
    * @param {Object} res Cloud Function response context.
    */
    exports.helloGET = (req, res) => {
      res.send('Hello from Cloud Functions and Cloud Source Repositories');
    };
    

    다음은 HTTP GET 요청에 Hello from Cloud Functions and Cloud Source Repositories 텍스트로 응답하는 helloGET이라는 간단한 함수입니다.

Cloud Source Repositories에 푸시

방금 만든 파일을 Cloud Source Repositories로 푸시합니다.

  1. 파일을 추가합니다.

    git add .
    
  2. 이 작업의 기록을 설명하는 주석이 포함된 파일을 커밋합니다.

    git commit -m "Add Cloud Functions test to Cloud Source Repositories"
    
  1. git push 명령어를 사용하여 로컬 Git 저장소의 콘텐츠를 Cloud Source Repositories에 추가합니다.

    git push origin master
    

함수 만들기 및 배포

Google Cloud Console 또는 Google Cloud CLI를 사용하여 함수를 만들고 배포합니다.

Console

  1. Cloud Functions 페이지로 이동합니다.

    Cloud Functions 페이지로 이동

    Cloud Functions를 사용 설정한 Google Cloud 프로젝트를 선택했는지 확인합니다.

  2. 함수 만들기를 클릭합니다.

  3. 함수 만들기 페이지에서 다음 옵션을 입력합니다.

    • 환경 필드에서 1세대를 선택합니다.
    • 함수 이름 필드에 cloud-source-repositories-test를 입력합니다.
    • 리전 필드에서 us-central1을 선택합니다.
    • 트리거 목록에서 HTTP를 선택합니다.
    • 인증 목록에서 인증 필요를 선택합니다.
    • HTTPS 필요 옵션이 선택되어 있는지 확인합니다.
  4. 저장을 클릭합니다.

  5. 다음을 클릭합니다.

    • 런타임 필드에서 Node.js 16을 선택합니다.
    • 진입점 필드에 helloGET을 입력합니다.
    • 소스 코드 목록에서 Cloud Source Repository를 선택합니다.
    • 저장소 필드에 hello-world를 입력합니다.
    • 브랜치 이름 필드에 master를 입력합니다.
    • 소스 코드가 있는 디렉터리 필드에 /gcf_hello_world를 입력합니다.
  6. 배포를 클릭합니다.

배포 중인 함수 옆에 작은 스피너가 나타납니다. 배포가 끝나면 스피너는 녹색 체크표시로 바뀝니다.

gcloud CLI

  1. 터미널 창에서 Google Cloud 프로젝트 ID가 포함된 변수를 설정합니다. 저장소가 포함된 Google Cloud 프로젝트와 동일한지 확인합니다.

    export PROJECT_ID=$(gcloud config list --format 'value(core.project)')
    
  2. 함수를 배포합니다.

    gcloud functions deploy helloGET \
    --source https://source.developers.google.com/projects/$PROJECT_ID/repos/hello-world/moveable-aliases/master/paths/gcf_hello_world \
    --trigger-http \
    --runtime=nodejs8;
    

Cloud Source Repositories에 배포하는 방법에 대한 자세한 내용은 소스 제어에서 배포를 참조하세요.

함수 테스트

GCP Console 또는 gcloud CLI를 사용하여 새 함수를 테스트합니다.

Console

  1. Cloud Functions 개요 페이지로 이동합니다.

    개요 페이지로 이동

    Cloud Functions를 사용 설정한 Google Cloud 프로젝트를 선택했는지 확인합니다.

  2. cloud-source-repositories-test 함수 행에서 작업 표시 메뉴를 클릭합니다.

  3. 함수 테스트를 클릭합니다.

  4. 함수 테스트 버튼을 클릭합니다.

    1~2분 후 출력 필드가 업데이트되고 Hello from Cloud Functions and Cloud Source Repositories 메시지가 표시됩니다.

gcloud CLI

터미널 창에서 다음 명령어를 입력합니다.

gcloud functions call helloGET

다음과 유사한 출력이 표시됩니다.

executionId: owqd9fdh5od2
result: Hello from Cloud Functions and Cloud Source Repositories

삭제

생성한 함수 및 저장소를 삭제하려면 다음 단계를 따르세요.

함수 삭제

  1. Cloud Functions 개요 페이지로 이동합니다.

    개요 페이지로 이동

    Cloud Functions를 사용 설정한 Google Cloud 프로젝트를 선택했는지 확인합니다.

  2. 이 빠른 시작용으로 만든 helloGET 함수인 cloud-source-repositories-test를 선택합니다.

  3. 동일한 행에 있는 더보기를 클릭한 다음 삭제를 클릭합니다.

저장소 삭제

  1. GCP Console에서 Cloud Source Repositories의 모든 저장소 페이지를 엽니다.

    Cloud Source Repositories 열기

  2. 삭제하려는 저장소 위에 마우스 포인터를 놓고 설정을 클릭합니다.

    일반 설정 페이지가 열립니다.

  3. 이 저장소 삭제를 클릭합니다. .

    저장소 삭제 대화상자가 열립니다.

  4. 삭제할 저장소의 이름을 입력합니다.

  5. 삭제를 클릭합니다.

다음 단계