.NET(1세대)를 사용하여 HTTP Cloud Run 함수 만들기 및 배포
이 튜토리얼에서는 .NET 런타임 언어 C#를 사용하여 Cloud Run 함수를 작성하는 과정을 설명합니다. Cloud Run Functions에는 다음과 같은 두 가지 유형이 있습니다.
- 표준 HTTP 요청에서 호출하는 HTTP 트리거 함수
- Pub/Sub 주제의 메시지 또는 Cloud Storage 버킷의 변경사항과 같이 클라우드 인프라의 이벤트를 처리하는 데 사용되는 이벤트 기반 함수
시작하기 전에
- 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
- 개발 환경을 준비합니다.
함수 만들기
이 섹션에서는 함수를 처음부터 수동으로 만드는 방법을 설명합니다. 또는 템플릿 패키지에서 제공되는 템플릿을 사용할 수 있습니다.
함수를 만들려면 다음 안내를 따르세요.
로컬 시스템에 함수 코드를 저장할 디렉터리를 만듭니다.
Windows
mkdir %HOMEPATH%\helloworld cd %HOMEPATH%\helloworld
Linux 또는 Mac OS X
mkdir ~/helloworld cd ~/helloworld
Function.cs
라는 파일을 만들고 다음 콘텐츠를 추가합니다.이 예시 함수는 'Hello World!'라는 인사를 출력합니다.
종속 항목 지정
다음 단계에서는 종속 항목을 설정합니다. C# Cloud Run Functions에서 설정할 수 있는 종속 항목에는 두 가지 유형이 있습니다.
- Functions 프레임워크를 사용할 수 있도록 설정합니다. 이 섹션에서 이 작업을 수행합니다.
- 프로젝트 파일 측면에서 그리고 코드 내에서 종속 항목을 삽입하여 다른 라이브러리를 사용할 수 있도록 설정합니다. 자세한 내용은 함수 시작 클래스를 통한 맞춤설정을 참조하세요.
Functions 프레임워크를 사용할 수 있도록 설정하려면 위에서 만든 helloworld
디렉터리로 디렉터리를 변경합니다.
cd ~/helloworld
그런 다음 HelloWorld.csproj
라는 파일을 만들고 다음 콘텐츠를 추가합니다.
함수 배포하기
HTTP 트리거를 사용하여 함수를 배포하려면 helloworld
디렉터리에서 다음 명령어를 실행합니다.
gcloud functions deploy --no-gen2 my-first-function --entry-point HelloWorld.Function --runtime dotnet6 --trigger-http --allow-unauthenticated
여기서 my-first-function
은 함수가 Google Cloud 콘솔에서 식별되는 등록된 이름이고 --entry-point
는 함수의 정규화된 클래스 이름(FQN)을 지정합니다.
배포된 함수 테스트
함수 배포가 완료되면
httpsTrigger.url
속성을 기록하거나 다음 명령어를 사용하여 찾을 수 있습니다.gcloud functions describe my-first-function
예를 들면 다음과 같습니다.
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/my-first-function
브라우저에서 해당 URL을 방문하면
Hello World!
메시지가 표시됩니다.
로그 보기
Cloud Run Functions의 로그는 Google Cloud CLI 및 Cloud Logging UI를 사용하여 볼 수 있습니다.
명령줄 도구를 사용
gcloud CLI를 사용하여 함수 로그를 보려면
logs read
명령어 뒤에 함수 이름을 사용합니다.
gcloud functions logs read my-first-function
다음과 유사한 결과가 출력됩니다.
LEVEL NAME EXECUTION_ID TIME_UTC LOG D my-first-function k2bqgroszo4u 2020-07-24 18:18:01.791 Function execution started D my-first-function k2bqgroszo4u 2020-07-24 18:18:01.958 Function execution took 168 ms, finished with status code: 200 ...
Logging 대시보드 사용
Google Cloud 콘솔에서도 Cloud Run Functions 로그를 볼 수 있습니다.
템플릿 패키지 사용
위의 섹션에서 함수를 처음부터 수동으로 만드는 방법을 알아보았습니다. 이제 템플릿을 사용하여 새 함수를 만들어 보겠습니다.
템플릿을 사용하여 함수를 만들고 빌드하고 테스트하려면 다음 안내를 따르세요.
.NET SDK를 설치합니다.
템플릿 패키지를 설치합니다.
dotnet new install Google.Cloud.Functions.Templates
다음으로 프로젝트의 디렉터리를 만들고
dotnet new
를 사용해 새 HTTP 함수를 만듭니다.mkdir HelloFunctions cd HelloFunctions dotnet new gcf-http
그러면 현재 디렉터리에
HelloFunctions.csproj
및Function.cs
가 생성됩니다.Function.cs
를 열어 코드를 보고 원할 경우 커스텀 메시지를 제공합니다.함수를 다음과 같이 로컬에서 빌드합니다.
dotnet run
서버가 실행 중이면
http://localhost:8080
으로 이동하여 함수를 호출합니다. 콘솔에서 Ctrl-C를 눌러 서버를 중지합니다.이 함수는 'Hello Functions Framework'라는 메시지를 표시합니다.
또는 다른 터미널 창에서 curl
을 사용하여 이 함수에 요청을 보낼 수 있습니다.
curl localhost:8080
# Output: Hello Functions Framework