arrow_back

Cloud Run Functions 개발 및 배포

로그인 가입
700개 이상의 실습 및 과정 이용하기

Cloud Run Functions 개발 및 배포

실습 45분 universal_currency_alt 크레딧 5개 show_chart 입문
info 이 실습에는 학습을 지원하는 AI 도구가 통합되어 있을 수 있습니다.
700개 이상의 실습 및 과정 이용하기

개요

Cloud Run Functions는 Google Cloud의 Functions as a Service 제품인 Google Cloud Run Functions의 최신 버전입니다. 이 버전은 고급 기능 세트와 함께 제공되며 Cloud RunEventarc로 구동되므로 성능 및 확장성에 대한 고급 제어, 함수 런타임에 대한 추가 제어, 90개 이상의 이벤트 소스의 트리거를 사용할 수 있습니다.

이 실습에서는 HTTP 요청에 응답하는 Cloud Run Functions와 Cloud Storage 이벤트에 의해 트리거되는 이벤트 기반 함수를 만듭니다. 또한 Cloud Run 함수의 여러 버전을 배포하고 새로운 설정을 살펴봅니다.

새로운 소식

이 새로운 Cloud Run Functions 버전은 Cloud Run, Cloud Build, Artifact Registry, Eventarc로 지원되는 향상된 FaaS 환경을 제공합니다.

  • 더 긴 요청 처리: Cloud Run Functions를 기본값인 5분보다 더 길게 실행하여 Cloud Storage 또는 BigQuery에서 대용량 데이터 스트림 처리와 같은 더 긴 요청 워크로드를 쉽게 실행할 수 있게 해줍니다. HTTP 함수의 경우 최대 60분입니다. 이벤트 기반 함수의 경우 최대 10분입니다.
  • 대용량 인스턴스: Cloud Run Functions에서 최대 16GB의 RAM과 4개의 vCPU를 활용하여 대용량 인메모리, 컴퓨팅 집약적 워크로드, 병렬 워크로드를 지원할 수 있습니다.
  • 동시 실행: 단일 함수 인스턴스로 최대 1,000개의 동시 요청을 처리하여 콜드 스타트를 최소화하고 확장 시 지연 시간을 개선합니다.
  • 최소 인스턴스: 예열된 인스턴스를 제공하여 콜드 스타트를 줄이고 애플리케이션의 부트스트랩 시간이 애플리케이션 성능에 영향을 주지 않도록 합니다.
  • 트래픽 분할: 함수의 여러 버전을 지원하고, 여러 버전 간에 트래픽을 분할하며, 함수를 이전 버전으로 롤백합니다.

목표

이 실습에서 학습할 내용은 다음과 같습니다.

  • HTTP 요청에 응답하는 함수를 작성하고 Google Cloud 콘솔을 사용하여 함수를 배포합니다.
  • Cloud Storage 이벤트에 응답하는 함수를 작성하고 로컬 Cloud Shell 환경에서 함수를 배포합니다.
  • 함수에 대한 단위 테스트를 작성하고 로컬에서 함수를 테스트합니다.
  • Google Cloud 콘솔을 사용하여 Cloud Run 함수의 여러 버전을 배포합니다.
  • 함수의 최신 버전을 테스트하고 예상대로 작동하는지 확인합니다.

설정

각 실습에서는 정해진 기간 동안 새 Google Cloud 프로젝트와 리소스 집합이 무료로 제공됩니다.

  1. 시크릿 창을 사용하여 Qwiklabs에 로그인합니다.

  2. 실습 사용 가능 시간(예: 1:15:00)을 참고하여 해당 시간 내에 완료합니다.
    일시중지 기능은 없습니다. 필요한 경우 다시 시작할 수 있지만 처음부터 시작해야 합니다.

  3. 준비가 되면 실습 시작을 클릭합니다.

  4. 실습 사용자 인증 정보(사용자 이름비밀번호)를 기록해 두세요. Google Cloud Console에 로그인합니다.

  5. Google Console 열기를 클릭합니다.

  6. 다른 계정 사용을 클릭한 다음, 안내 메시지에 실습에 대한 사용자 인증 정보를 복사하여 붙여넣습니다.
    다른 사용자 인증 정보를 사용하는 경우 오류가 발생하거나 요금이 부과됩니다.

  7. 약관에 동의하고 리소스 복구 페이지를 건너뜁니다.

Google Cloud Shell 활성화하기

Google Cloud Shell은 다양한 개발 도구가 탑재된 가상 머신으로, 5GB의 영구 홈 디렉터리를 제공하며 Google Cloud에서 실행됩니다.

Google Cloud Shell을 사용하면 명령줄을 통해 Google Cloud 리소스에 액세스할 수 있습니다.

  1. Cloud 콘솔의 오른쪽 상단 툴바에서 'Cloud Shell 열기' 버튼을 클릭합니다.

    강조 표시된 Cloud Shell 아이콘

  2. 계속을 클릭합니다.

환경을 프로비저닝하고 연결하는 데 몇 분 정도 소요됩니다. 연결되면 사용자가 미리 인증되어 프로젝트가 PROJECT_ID로 설정됩니다. 예:

Cloud Shell 터미널에 강조 표시된 프로젝트 ID

gcloud는 Google Cloud의 명령줄 도구입니다. Cloud Shell에 사전 설치되어 있으며 명령줄 자동 완성을 지원합니다.

  • 다음 명령어를 사용하여 사용 중인 계정 이름을 나열할 수 있습니다.
gcloud auth list

출력:

Credentialed accounts: - @.com (active)

출력 예시:

Credentialed accounts: - google1623327_student@qwiklabs.net
  • 다음 명령어를 사용하여 프로젝트 ID를 나열할 수 있습니다.
gcloud config list project

출력:

[core] project =

출력 예시:

[core] project = qwiklabs-gcp-44776a13dea667a6 참고: gcloud 전체 문서는 gcloud CLI 개요 가이드를 참조하세요.

작업 1. API 사용 설정

Cloud Run Functions를 만들기 전에 관련 API를 사용 설정해야 합니다.

  1. 실습 사용자 인증 정보로 Google Cloud 콘솔에 로그인하고 Cloud Shell 터미널 창을 엽니다.

  2. Cloud Shell에서 다음 명령어를 실행하여 프로젝트 ID와 리전 환경 변수를 설정합니다.

    PROJECT_ID=$(gcloud config get-value project) REGION={{{project_0.default_region|set at lab start}}}
  3. 다음 명령어를 실행하여 필요한 모든 서비스 API를 사용 설정합니다.

    gcloud services enable \ artifactregistry.googleapis.com \ cloudfunctions.googleapis.com \ cloudbuild.googleapis.com \ eventarc.googleapis.com \ run.googleapis.com \ logging.googleapis.com \ storage.googleapis.com \ pubsub.googleapis.com
  4. 메시지가 표시되면 승인을 클릭합니다.

작업 2. HTTP 함수 만들기

첫 번째 함수에서는 HTTP 요청에 응답하여 화씨 온도 값을 섭씨로 변환하고 변환된 온도 값으로 응답하는 인증된 Node.js 함수를 만듭니다.

함수 만들기

  1. Cloud Run Functions에 액세스하려면 탐색 메뉴(탐색 메뉴 아이콘)에서 Cloud Run Functions를 클릭합니다.

    참고: 탐색 메뉴에 Cloud Run Functions가 표시되지 않으면 모든 제품 보기를 클릭합니다. 서버리스 섹션으로 스크롤한 다음 Cloud Run Functions 옆에 있는 핀을 클릭하고 Cloud Run Functions를 클릭합니다.

    콘솔의 Cloud Run으로 리디렉션됩니다.

  2. 함수 작성을 클릭합니다.

  3. 서비스 이름temperature-converter를 입력합니다.

  4. 리전에서 리전을 선택합니다.

  5. 인증에서 인증 필요를 선택합니다.

  6. 하단으로 스크롤하고 컨테이너, 볼륨, 네트워킹, 보안을 펼칩니다.

  7. 버전 확장에서 인스턴스의 최대 개수에 1을 입력합니다.

  8. 나머지 설정은 기본값으로 두고 만들기를 클릭합니다.

  9. 함수는 Node.js로 구현됩니다. 소스 탭에서 기본 이미지 옆에 있는 수정 아이콘을 클릭하고 최신 버전의 Node.js 언어 런타임을 선택한 다음 저장을 클릭합니다.

  10. 함수 진입점convertTemp를 입력합니다.

  11. 인라인 편집기에서 기존 샘플 코드를 index.js 파일의 다음 코드로 바꿉니다.

    const functions = require('@google-cloud/functions-framework'); functions.http('convertTemp', (req, res) => { var dirn = req.query.convert; var ctemp = (req.query.temp - 32) * 5/9; var target_unit = 'Celsius'; if (req.query.temp === undefined) { res.status(400); res.send('Temperature value not supplied in request.'); } if (dirn === undefined) dirn = process.env.TEMP_CONVERT_TO; if (dirn === 'ctof') { ctemp = (req.query.temp * 9/5) + 32; target_unit = 'Fahrenheit'; } res.send(`Temperature in ${target_unit} is: ${ctemp.toFixed(2)}.`); });

    이것은 요청에 전달된 화씨 또는 섭씨 온도 값을 변환하고 변환된 값으로 응답하는 Node.js의 간단한 HTTP 함수입니다.

    함수 프레임워크는 오픈소스 FaaS(Function as a Service) 프레임워크 및 라이브러리로, Cloud Run Functions, 로컬 개발 머신, Cloud Run을 포함한 다양한 환경에서 실행되는 가벼운 함수를 작성할 수 있습니다.

    자세한 내용은 함수 프레임워크 문서를 참고하세요.

함수 배포 및 테스트

  1. 함수를 배포하려면 저장 및 재배포를 클릭합니다. Cloud Build와 기본 Cloud Run 서비스가 생성될 때까지 기다립니다.

    함수가 배포되면 Cloud Run 서비스 페이지의 함수 이름 옆에 녹색 체크표시가 표시됩니다.

    함수가 배포되었는지 확인

  2. Cloud Shell에서 함수의 HTTP URI를 검색하고 환경 변수에 저장합니다.

    FUNCTION_URI=$(gcloud run services describe temperature-converter --region $REGION --format 'value(status.url)'); echo $FUNCTION_URI
  3. Cloud Shell에서 다음 명령어를 사용하여 함수를 테스트합니다.

    curl -H "Authorization: bearer $(gcloud auth print-identity-token)" "${FUNCTION_URI}?temp=70"

    다음과 같은 메시지가 응답으로 표시됩니다.

    Temperature in Celsius is: 21.11.
  4. 섭씨 온도 값과 변환 단위를 전달하여 명령어를 다시 실행합니다.

    curl -H "Authorization: bearer $(gcloud auth print-identity-token)" "${FUNCTION_URI}?temp=21.11&convert=ctof"

    다음과 같은 메시지가 응답으로 표시됩니다.

    Temperature in Fahrenheit is: 70.00.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. HTTP 함수 만들기

작업 3. Cloud Storage 함수 만들기

이 작업에서는 Cloud Storage 버킷의 이벤트에 응답하는 Node.js의 이벤트 기반 함수를 만듭니다.

설정

Cloud Run Functions와 함께 Cloud Storage 트리거를 사용하려면 Cloud Storage 서비스 에이전트에 프로젝트에 대한 Pub/Sub 게시자(roles/pubsub.publisher) IAM 역할이 있어야 합니다.

Cloud Storage 함수는 Cloud Storage의 Pub/Sub 알림을 기반으로 하며 finalize, delete, archive, metadata update 이벤트 유형을 지원합니다.

  1. Cloud Storage 에이전트의 서비스 계정에 대한 환경 변수를 설정합니다.

    SERVICE_ACCOUNT=$(gcloud storage service-agent)
  2. 프로젝트의 Cloud Storage 서비스 에이전트에 Pub/Sub 게시자 역할을 부여합니다. 서비스 에이전트는 서비스가 리소스에 액세스하도록 허용하는 Google 관리 서비스 계정입니다.

    gcloud projects add-iam-policy-binding $PROJECT_ID --member serviceAccount:$SERVICE_ACCOUNT --role roles/pubsub.publisher
  3. 이후 작업에서 함수를 트리거하기 위해 파일을 Cloud Storage에 업로드합니다. 샘플 온도 데이터가 포함된 이 파일을 Cloud Shell 환경에 복사합니다.

    gcloud storage cp gs://cloud-training/CBL491/data/average-temps.csv .

함수 만들기

  1. 이 하위 작업에서는 Cloud Shell에서 로컬로 함수를 개발합니다. 새 디렉토리를 만들어 해당 디렉토리로 이동합니다.

    mkdir ~/temp-data-checker && cd $_
  2. Node.js 함수의 index.jspackage.json 파일을 만듭니다.

    touch index.js && touch package.json
  3. Cloud Shell 툴바에서 편집기 열기를 클릭합니다.

    Cloud Shell과 코드 편집기 사이를 전환하려면 편집기 열기 또는 터미널 열기를 클릭하거나, 새 창에서 열기를 클릭해 편집기를 별도의 탭에 열어 둡니다.
  4. 편집기 탐색기에서 temp-data-checker 폴더를 펼칩니다.

  5. temp-data-checker/index.js 파일에 다음 코드를 추가합니다.

    const functions = require('@google-cloud/functions-framework'); // Register a CloudEvent callback with the Functions Framework that will // be triggered by Cloud Storage events. functions.cloudEvent('checkTempData', cloudEvent => { console.log(`Event ID: ${cloudEvent.id}`); console.log(`Event Type: ${cloudEvent.type}`); const file = cloudEvent.data; console.log(`Bucket: ${file.bucket}`); console.log(`File: ${file.name}`); console.log(`Created: ${file.timeCreated}`); }); 이 함수는 `console.log` 문을 사용하여 메시지를 stdout에 로깅합니다. Cloud Run Functions에는 기본적으로 간단한 런타임 로깅이 포함되어 있습니다. 로그 메시지는 Cloud Run Functions에 의해 수집되고 파싱되어 Cloud Logging으로 전송되며, Cloud 콘솔에서 확인할 수 있습니다.
  6. Node.js 함수의 종속 항목과 기타 패키지 정보를 지정하려면 다음 콘텐츠를 temp-data-checker/package.json 파일에 추가합니다.

    { "name": "temperature-data-checker", "version": "0.0.1", "main": "index.js", "dependencies": { "@google-cloud/functions-framework": "^2.1.0" } }

함수 배포하기

  1. Cloud Shell 터미널 창에서 먼저 버킷 이름의 환경 변수를 설정합니다.

    BUCKET="gs://gcf-temperature-data-$PROJECT_ID"
  2. 온도 데이터 파일을 저장할 Cloud Storage 버킷을 만듭니다.

    gcloud storage buckets create -l $REGION $BUCKET
  3. 함수를 배포하려면 Cloud Shell에서 다음 명령어를 실행합니다.

    gcloud functions deploy temperature-data-checker \ --gen2 \ --runtime nodejs20 \ --entry-point checkTempData \ --source . \ --region $REGION \ --trigger-bucket $BUCKET \ --trigger-location $REGION \ --max-instances 1

    trigger-bucket을 지정하면 이 버킷의 파일이 변경될 때마다 함수 실행이 트리거됩니다.

    참고: 권한 오류가 표시되는 경우 몇 분 정도 기다린 후 배포를 다시 시도하세요. API가 사용 설정되는 데 시간이 걸립니다.
  4. 함수가 배포되었는지 확인합니다.

    함수가 배포되었는지 확인

함수 테스트

  1. 온도 데이터 파일을 Cloud Storage 버킷에 업로드하여 함수를 테스트합니다.

    gcloud storage cp ~/average-temps.csv $BUCKET/average-temps.csv
  2. 다음 명령어를 실행합니다. 로그에 수신된 CloudEvent의 정보가 표시되어야 합니다.

    gcloud functions logs read temperature-data-checker \ --region $REGION --gen2 --limit=100 --format "value(log)" 참고: 로그가 생성되는 데 1분 정도 걸릴 수 있습니다.

    다음과 비슷한 출력이 표시됩니다.

    Created: 2024-08-28T13:18:34.980Z File: average-temps.csv Bucket: gcf-temperature-data-cf-project Event Type: google.cloud.storage.object.v1.finalized Event ID: 5834307012388233 이 실습에서 만든 Cloud Storage 함수는 생성된 버킷과 리소스에 대한 메타데이터를 추출합니다. 다운스트림 서비스로 데이터를 추출하고 처리하려면 언어 런타임에 Cloud Storage 클라이언트 라이브러리를 사용합니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. Cloud Storage 함수 만들기

작업 4. 로컬 개발 및 테스트

Cloud Run Functions는 Cloud Run Functions 외부에서 함수를 실행하는 여러 가지 방법을 지원합니다. 이는 반복 개발, 로컬 환경에서의 배포 전 테스트, 데이터 지역 규정 준수, 멀티 클라우드 배포 중에 유용합니다.

이 작업에서는 기존 HTTP 함수를 수정하고, 단위 테스트와 통합 테스트를 개발하고, 함수를 Cloud Run Functions에 배포하기 전에 로컬에서 함수를 테스트합니다.

함수 소스 코드 다운로드

  1. Cloud Run Functions에 액세스하려면 탐색 메뉴(탐색 메뉴)에서 Cloud Run을 클릭합니다.

  2. temperature-converter 함수의 세부정보를 보려면 이름을 선택합니다.

  3. 함수 소스 코드를 보려면 SOURCE 탭을 클릭합니다.

  4. ZIP 다운로드를 클릭하고 zip 파일을 컴퓨터의 폴더에 저장하면서 이름을 function-source.zip으로 바꿉니다.

  5. Cloud Shell 툴바에서 더보기 메뉴(더보기 메뉴)를 클릭하고 업로드를 선택합니다.

  6. 업로드 대화상자에서 파일 선택을 클릭합니다.

  7. 이전에 다운로드한 폴더에서 zip 파일을 선택하고 열기를 클릭한 다음 대화상자에서 업로드를 클릭합니다.

  8. 파일이 업로드되면 Cloud Shell에서 다음 명령어를 실행합니다.

    mkdir ~/temp-data-converter && cd $_
  9. zip 파일의 콘텐츠를 추출합니다.

    unzip ../function-source.zip

함수 코드에 단위 테스트 추가

먼저 temperature-convert 함수에 몇 가지 단위 테스트를 추가해 보겠습니다.

  1. 모든 함수 테스트와 단위 테스트 소스 파일을 포함할 디렉터리를 만듭니다.

    mkdir tests && touch tests/unit.http.test.js
  2. Cloud Shell 툴바에서 편집기 열기를 클릭합니다.

  3. 편집기에서 다음 코드를 temp-data-converter/tests/unit.http.test.js 파일에 추가합니다. 테스트 코드는 HTTP 요청과 응답을 래핑하는 모의 객체를 만들고 Sinon 스텁을 사용하여 함수에서 수신한 응답을 해석합니다.

    const {getFunction} = require('@google-cloud/functions-framework/testing'); describe('functions_convert_temperature_http', () => { // Sinon is a testing framework that is used to create mocks for Node.js applications written in Express. // Express is Node.js web application framework used to implement HTTP functions. const sinon = require('sinon'); const assert = require('assert'); require('../'); const getMocks = () => { const req = {body: {}, query: {}}; return { req: req, res: { send: sinon.stub().returnsThis(), status: sinon.stub().returnsThis() }, }; }; let envOrig; before(() => { envOrig = JSON.stringify(process.env); }); after(() => { process.env = JSON.parse(envOrig); }); it('convertTemp: should convert a Fahrenheit temp value by default', () => { const mocks = getMocks(); mocks.req.query = {temp: 70}; const convertTemp = getFunction('convertTemp'); convertTemp(mocks.req, mocks.res); assert.strictEqual(mocks.res.send.calledOnceWith('Temperature in Celsius is: 21.11.'), true); }); it('convertTemp: should convert a Celsius temp value', () => { const mocks = getMocks(); mocks.req.query = {temp: 21.11, convert: 'ctof'}; const convertTemp = getFunction('convertTemp'); convertTemp(mocks.req, mocks.res); assert.strictEqual(mocks.res.send.calledOnceWith('Temperature in Fahrenheit is: 70.00.'), true); }); it('convertTemp: should convert a Celsius temp value by default', () => { process.env.TEMP_CONVERT_TO = 'ctof'; const mocks = getMocks(); mocks.req.query = {temp: 21.11}; const convertTemp = getFunction('convertTemp'); convertTemp(mocks.req, mocks.res); assert.strictEqual(mocks.res.send.calledOnceWith('Temperature in Fahrenheit is: 70.00.'), true); }); it('convertTemp: should return an error message', () => { const mocks = getMocks(); const convertTemp = getFunction('convertTemp'); convertTemp(mocks.req, mocks.res); assert.strictEqual(mocks.res.status.calledOnce, true); assert.strictEqual(mocks.res.status.firstCall.args[0], 400); }); }); 참고: 여기에는 4개의 단위 테스트가 있으며, 그중 3개는 함수에서 반환되는 응답에 특정 온도 값이 포함되어 있는지 확인하는 양성 테스트입니다.

    네 번째 테스트는 요청 객체에 전달된 온도 값이 없으므로 함수가 400(잘못된 요청)의 응답 상태 코드를 반환할 것으로 예상하는 음성 테스트입니다.

  4. temp-data-converter/package.json 파일에서 Node.js 함수의 종속 항목을 업데이트하여 scriptsdevDependencies 섹션을 포함합니다.

    { "name": "temperature-converter", "version": "0.0.1", "main": "index.js", "scripts": { "unit-test": "mocha tests/unit*test.js --timeout=6000 --exit", "test": "npm -- run unit-test" }, "devDependencies": { "mocha": "^9.0.0", "sinon": "^14.0.0" }, "dependencies": { "@google-cloud/functions-framework": "^2.1.0" } }

단위 테스트 실행

  1. Cloud Shell 터미널 창에서 다음 명령어를 실행하여 먼저 함수의 종속 항목을 설치합니다.

    npm install 이 명령어는 package.json 파일에 정의된 종속 항목을 다운로드하는 Node 패키지 관리자를 실행합니다.
  2. 단위 테스트 실행:

    npm test
  3. 명령어 출력에서 모든 테스트가 통과했는지 확인합니다.

    > temperature-converter@0.0.1 test > npm -- run unit-test > temperature-converter@0.0.1 unit-test > mocha tests/unit*test.js --timeout=6000 --exit functions_convert_temperature_http ✔ convertTemp: should convert a Fahrenheit temp value by default ✔ convertTemp: should convert a Celsius temp value ✔ convertTemp: should convert a Celsius temp value by default ✔ convertTemp: should return an error message 4 passing (10ms) Mocha는 Node.js에서 실행되는 JavaScript 테스트 프레임워크로, 간단하고 유연한 방식으로 비동기 테스트를 지원합니다. HTTP 및 이벤트 기반 Cloud Run Functions의 단위 테스트, 통합 테스트, 시스템 테스트를 구현하는 것도 고려해야 합니다. 배포 전 테스트 구현에 대해 자세히 알아보려면 이 실습의 마지막에 있는 자세히 알아보기 섹션의 링크를 참고하세요.

작업 5. 함수 버전 만들기

Cloud Run Functions는 각 함수의 여러 버전을 지원하여 여러 버전 간 트래픽 분할 또는 이전 버전으로 함수 롤백을 수행할 수 있게 해줍니다.

함수를 배포 또는 재배포할 때마다 기본 Cloud Run 서비스의 새 버전이 자동으로 생성됩니다. 버전은 변경할 수 없고 생성 후 수정할 수 없습니다. 함수를 변경하려면 다시 배포해야 합니다.

이 작업에서는 이전 작업에서 만든 HTTP 함수를 환경 변수와 함께 배포하고 Google Cloud 콘솔을 사용하여 함수의 두 버전 간 트래픽을 관리합니다.

함수 다시 배포

  1. Google Cloud 콘솔에서 temperature-converter 함수의 함수 세부정보 페이지로 이동합니다.

  2. 수정 및 새 버전 배포를 클릭합니다.

  3. 컨테이너 탭에서 변수 및 보안 비밀 탭을 선택합니다.

  4. 환경 변수를 추가하려면 환경 변수 섹션에서 변수 추가를 클릭합니다.

  5. 이름 1TEMP_CONVERT_TO를 입력합니다.

  6. 환경 변수의 값을 제공하려면 값 1ctof를 입력합니다.

  7. 배포를 클릭합니다.

  8. 배포가 완료될 때까지 기다립니다. 프로세스가 완료되면 함수의 두 가지 버전이 표시됩니다.

    기본적으로 가장 최근에 배포된 버전이 함수 트래픽의 100%를 수신합니다. 이 버전은 함수에 모든 온도 값을 기본적으로 섭씨에서 화씨로 변환하도록 지시하는 환경 변수와 함께 배포됩니다.

최신 함수 버전 테스트

  1. Cloud Shell에서 함수를 테스트하려면 temp 쿼리 파라미터 값을 섭씨로 지정하여 다음 curl 명령어를 실행합니다.

    curl -H "Authorization: bearer $(gcloud auth print-identity-token)" "${FUNCTION_URI}?temp=21.11"

    함수에서 다음과 같은 응답 메시지가 표시됩니다.

    Temperature in Fahrenheit is: 70.00.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. 함수 버전 만들기

수고하셨습니다

이 실습에서는 HTTP 요청과 Cloud Storage 이벤트에 응답하는 Cloud Run Functions를 배포했습니다. HTTP 함수의 단위 테스트를 통해 배포 전 테스트를 구현하고 이를 실행하여 함수를 호출할 때 양성 및 음성 시나리오를 검증했습니다. 또한 함수의 여러 버전을 배포하고 최신 버전을 테스트하여 함수 동작을 확인했습니다.

다음 단계/자세히 알아보기

Cloud Run Functions에 대한 자세한 내용은 다음 문서를 참고하세요.

Copyright 2025 Google LLC All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.

시작하기 전에

  1. 실습에서는 정해진 기간 동안 Google Cloud 프로젝트와 리소스를 만듭니다.
  2. 실습에는 시간 제한이 있으며 일시중지 기능이 없습니다. 실습을 종료하면 처음부터 다시 시작해야 합니다.
  3. 화면 왼쪽 상단에서 실습 시작을 클릭하여 시작합니다.

시크릿 브라우징 사용

  1. 실습에 입력한 사용자 이름비밀번호를 복사합니다.
  2. 비공개 모드에서 콘솔 열기를 클릭합니다.

콘솔에 로그인

    실습 사용자 인증 정보를 사용하여
  1. 로그인합니다. 다른 사용자 인증 정보를 사용하면 오류가 발생하거나 요금이 부과될 수 있습니다.
  2. 약관에 동의하고 리소스 복구 페이지를 건너뜁니다.
  3. 실습을 완료했거나 다시 시작하려고 하는 경우가 아니면 실습 종료를 클릭하지 마세요. 이 버튼을 클릭하면 작업 내용이 지워지고 프로젝트가 삭제됩니다.

현재 이 콘텐츠를 이용할 수 없습니다

이용할 수 있게 되면 이메일로 알려드리겠습니다.

감사합니다

이용할 수 있게 되면 이메일로 알려드리겠습니다.

한 번에 실습 1개만 가능

모든 기존 실습을 종료하고 이 실습을 시작할지 확인하세요.

시크릿 브라우징을 사용하여 실습 실행하기

이 실습을 실행하려면 시크릿 모드 또는 시크릿 브라우저 창을 사용하세요. 개인 계정과 학생 계정 간의 충돌로 개인 계정에 추가 요금이 발생하는 일을 방지해 줍니다.