Google Cloud CLI를 사용하여 1세대 Cloud Run 함수 만들기
이 페이지에서는 Google Cloud CLI를 사용하여 1세대 Cloud Run 함수를 만들고 배포하는 방법을 보여줍니다.
시작하기 전에
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Functions and Cloud Build APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Functions and Cloud Build APIs.
- gcloud CLI를 설치하고 초기화합니다.
gcloud
구성요소를 업데이트합니다.gcloud components update
-
개발 환경을 준비합니다.
Node.js
Python
Go
자바
C#
Ruby
PHP
명령 프롬프트가 필요하신가요? Google Cloud Shell을 사용해보세요. Google Cloud Shell 명령줄 환경에는 Google Cloud CLI가 이미 포함되어 있으므로 별도로 설치할 필요가 없습니다. Google Cloud CLI는 Google Compute Engine 가상 머신에도 사전 설치되어 있습니다.
샘플 코드 가져오기
샘플 저장소를 로컬 머신에 클론합니다.
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 파일로 샘플을 다운로드하고 압축을 풀 수 있습니다.
자바
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
또는 zip 파일로 샘플을 다운로드하고 압축을 풀 수 있습니다.
C#
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git
또는 zip 파일로 샘플을 다운로드하고 압축을 풀 수 있습니다.
Ruby
git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples.git
또는 zip 파일로 샘플을 다운로드하고 압축을 풀 수 있습니다.
PHP
git clone https://github.com/GoogleCloudPlatform/php-docs-samples.git
또는 zip 파일로 샘플을 다운로드하고 압축을 풀 수 있습니다.
Cloud Run 함수 샘플 코드가 포함된 디렉터리로 변경합니다.
Node.js
cd nodejs-docs-samples/functions/helloworld/
Python
cd python-docs-samples/functions/helloworld/
Go
cd golang-samples/functions/helloworld/
자바
cd java-docs-samples/functions/helloworld/helloworld/
C#
cd dotnet-docs-samples/functions/helloworld/HelloWorld/
Ruby
cd ruby-docs-samples/functions/helloworld/get/
PHP
cd php-docs-samples/functions/helloworld_get/
다음 샘플 코드를 살펴봅니다.
Node.js
Python
Go
자바
C#
Ruby
PHP
함수 배포
HTTP 트리거를 사용하여 함수를 배포하려면 함수가 포함된 디렉터리에서 다음 명령어를 실행합니다.
Node.js
gcloud functions deploy helloGET \ --runtime nodejs20 --trigger-http
--runtime
플래그를 사용하여 함수를 실행할 지원되는 Node.js 버전의 런타임 ID를 지정합니다.
Python
gcloud functions deploy hello_get \ --runtime python312 --trigger-http
--runtime
플래그를 사용하여 함수를 실행할 지원되는 Python 버전의 런타임 ID를 지정합니다.
Go
gcloud functions deploy HelloGet \ --runtime go121 --trigger-http
--runtime
플래그를 사용하여 함수를 실행할 지원되는 Go 버전의 런타임 ID를 지정합니다.
자바
gcloud functions deploy java-helloworld \ --entry-point functions.HelloWorld \ --runtime java17 \ --memory 512MB --trigger-http
--runtime
플래그를 사용하여 함수를 실행할 지원되는 Java 버전의 런타임 ID를 지정합니다.
C#
gcloud functions deploy csharp-helloworld \ --entry-point HelloWorld.Function \ --runtime dotnet6 --trigger-http
--runtime
플래그를 사용하여 함수를 실행할 지원되는 .NET 버전의 런타임 ID를 지정합니다.
Ruby
gcloud functions deploy hello_get --runtime ruby32 --trigger-http
--runtime
플래그를 사용하여 함수를 실행할 지원되는 Ruby 버전의 런타임 ID를 지정합니다.
PHP
gcloud functions deploy helloGet --runtime php82 --trigger-http
--runtime
플래그를 사용하여 함수를 실행할 지원되는 PHP 버전의 런타임 ID를 지정합니다.
원하는 경우 --allow-unauthenticated
플래그를 사용하여 인증 없이 함수에 도달할 수 있습니다.
이는 테스트에는 유용하지만, 공개 API 또는 웹사이트를 만들지 않는 한 프로덕션에서 이 설정을 사용하지 않는 것이 좋습니다. 또한 회사 정책 설정에 따라 자동으로 작동하지 않을 수 있습니다. 인증이 필요한 함수를 호출하는 방법에 대한 자세한 내용은 호출 인증을 참조하세요.
함수 테스트
함수를 통해 배포를 완료하면
httpsTrigger
의url
속성을 기록해 두거나 다음 명령어를 사용하여 찾을 수 있습니다.Node.js
gcloud functions describe helloGET --format="value(httpsTrigger.url)"
Python
gcloud functions describe hello_get --format="value(httpsTrigger.url)"
Go
gcloud functions describe HelloGet --format="value(httpsTrigger.url)"
자바
gcloud functions describe java-helloworld --format="value(httpsTrigger.url)"
C#
gcloud functions describe csharp-helloworld --format="value(httpsTrigger.url)"
Ruby
gcloud functions describe hello_get --format="value(httpsTrigger.url)"
PHP
gcloud functions describe helloGet --format="value(httpsTrigger.url)"
예를 들면 다음과 같습니다.
Node.js
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/helloGET
Python
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/hello_get
Go
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/HelloGet
자바
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/java-helloworld
C#
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/csharp-helloworld
Ruby
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/hello_get
PHP
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/helloGet
브라우저에서 해당 URL을 방문하면
Hello World!
메시지가 표시됩니다.
함수 삭제
함수를 삭제하려면 다음 명령어를 실행합니다.
Node.js
gcloud functions delete helloGET
Python
gcloud functions delete hello_get
Go
gcloud functions delete HelloGet
자바
gcloud functions delete java-helloworld
C#
gcloud functions delete csharp-helloworld
Ruby
gcloud functions delete hello_get
PHP
gcloud functions delete helloGet
다음 단계
개발 환경을 설정하고, 처음부터 새 함수를 만들고, 종속 항목을 지정하고, 함수를 배포하고, 함수를 테스트하고, 로그를 보는 방법을 알아보려면 선택한 런타임에 대한 관련 첫 번째 함수가이드를 참조하세요. 이 가이드는 Cloud Run Functions(1세대)에만 적용됩니다.