HTTP 가이드

이 간단한 가이드에서는 HTTP Cloud 함수를 작성하고 배포하고 트리거하는 방법을 설명합니다.

목표

비용

이 가이드에서는 비용이 청구될 수 있는 다음과 같은 Cloud Platform 구성요소를 사용합니다.

  • Google Cloud Functions

가격 계산기를 사용하면 예상 사용량을 토대로 예상 비용을 산출할 수 있습니다.

시작하기 전에

    https://cloud.google.com/functions/docs/tutorials/http beta cloudfunctions Cloud Functions no_credentials
  1. Google 계정에 로그인합니다.

    아직 계정이 없으면 새 계정을 등록하세요.

  2. GCP Console의 프로젝트 선택기 페이지에서 GCP 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기 페이지로 이동

  3. Google Cloud Platform 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.

  4. gcloud 구성요소를 업데이트합니다.
    gcloud components update
  5. 개발 환경을 준비합니다.

애플리케이션 준비

  1. 샘플 앱 저장소를 로컬 머신에 복제합니다.

    Node.js

    git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git

    또는 zip 파일로 제공되는 샘플을 다운로드하고 압축을 풉니다.

    Python

    git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git

    또는 zip 파일로 제공되는 샘플을 다운로드하고 압축을 풉니다.

    Go

    git clone https://github.com/GoogleCloudPlatform/golang-samples.git

    또는 zip 파일로 제공되는 샘플을 다운로드하고 압축을 풉니다.

  2. Cloud Functions 샘플 코드가 있는 디렉터리로 변경합니다.

    Node.js

    cd nodejs-docs-samples/functions/helloworld/

    Python

    cd python-docs-samples/functions/helloworld/

    Go

    cd golang-samples/functions/helloworld/

  3. 다음 샘플 코드를 살펴봅니다.

    Node.js

    /**
         * HTTP Cloud Function.
         * This function is exported by index.js, and is executed when
         * you make an HTTP request to the deployed function's endpoint.
         *
         * @param {Object} req Cloud Function request context.
         *                     More info: https://expressjs.com/en/api.html#req
         * @param {Object} res Cloud Function response context.
         *                     More info: https://expressjs.com/en/api.html#res
         */
        exports.helloGET = (req, res) => {
          res.send('Hello World!');
        };

    Python

    def hello_get(request):
            """HTTP Cloud Function.
            Args:
                request (flask.Request): The request object.
                <http://flask.pocoo.org/docs/1.0/api/#flask.Request>
            Returns:
                The response text, or any set of values that can be turned into a
                Response object using `make_response`
                <http://flask.pocoo.org/docs/1.0/api/#flask.Flask.make_response>.
            """
            return 'Hello World!'

    Go

    
        // Package helloworld provides a set of Cloud Functions samples.
        package helloworld
    
        import (
        	"fmt"
        	"net/http"
        )
    
        // HelloGet is an HTTP Cloud Function.
        func HelloGet(w http.ResponseWriter, r *http.Request) {
        	fmt.Fprint(w, "Hello, World!")
        }
        

함수 배포

HTTP 트리거를 사용하여 함수를 배포하려면 helloworld 디렉터리에서 다음 명령어를 실행합니다.

Node.js

gcloud functions deploy helloGET --runtime nodejs8 --trigger-http
--runtime 플래그에 다음 값을 사용하여 원하는 Node.js 버전을 지정할 수 있습니다.
  • nodejs6(지원 중단됨)
  • nodejs8
  • nodejs10(베타)

Python

gcloud functions deploy hello_get --runtime python37 --trigger-http

Go

gcloud functions deploy HelloGet --runtime go111 --trigger-http
--runtime 플래그에 다음 값을 사용하여 원하는 Go 버전을 지정할 수 있습니다.
  • go111
  • go113(베타)

함수 트리거

함수에 HTTP 요청을 보내려면 다음 명령어를 실행합니다.

Node.js

curl "https://REGION-PROJECT_ID.cloudfunctions.net/helloGET" --trigger-http

Python

curl "https://REGION-PROJECT_ID.cloudfunctions.net/hello_get" --trigger-http

Go

curl "https://REGION-PROJECT_ID.cloudfunctions.net/HelloGet" --trigger-http

각 항목의 의미는 다음과 같습니다.

  • REGION은 함수가 배포된 리전입니다. 이는 함수 배포가 끝난 후 터미널에 표시됩니다.
  • PROJECT_ID는 Cloud 프로젝트 ID입니다. 이는 함수 배포가 끝난 후 터미널에 표시됩니다.

브라우저에서 배포된 함수의 엔드포인트를 방문하여 'Hello World!' 메시지를 확인할 수도 있습니다.

삭제

이 가이드에서 사용한 리소스 비용이 Google Cloud Platform 계정에 청구되지 않도록 하려면 다음 안내를 따르세요.

프로젝트 삭제

비용이 청구되지 않도록 하는 가장 쉬운 방법은 가이드에서 만든 프로젝트를 삭제하는 것입니다.

프로젝트를 삭제하는 방법은 다음과 같습니다.

    console
  1. GCP Console에서 리소스 관리 페이지로 이동합니다.

    리소스 관리 페이지로 이동

  2. 프로젝트 목록에서 삭제할 프로젝트를 선택하고 삭제 를 클릭합니다.
  3. 대화상자에서 프로젝트 ID를 입력한 후 종료를 클릭하여 프로젝트를 삭제합니다.

Cloud 함수 삭제

Cloud Functions를 삭제해도 Cloud Storage에 저장된 리소스는 삭제되지 않습니다.

이 가이드에서 만든 Cloud 함수를 삭제하려면 다음 명령어를 실행합니다.

Node.js

gcloud functions delete helloGET 

Python

gcloud functions delete hello_get 

Go

gcloud functions delete HelloGet 

Google Cloud Console에서 Cloud Functions를 삭제할 수도 있습니다.