Google Cloud 콘솔에서 직접 함수를 준비하거나 로컬 머신에 작성하여 업로드할 수 있습니다. Go 개발용 로컬 머신을 준비하려면 Go 개발 환경 설정을 참조하세요.
Cloud Run Functions에서 신속하게 Go를 시작하려면 빠른 시작을 참조하세요.
소스 코드 구조
Cloud Run Functions에서 함수 정의를 찾으려면 소스 코드가 특정 구조를 따라야 합니다. 자세한 내용은 Cloud Run 함수 작성을 참고하세요.
종속 항목 지정
Go로 작성한 Cloud Run Functions는 Go 모듈과 go.mod 파일 또는 vendor 디렉터리로 모든 종속 항목을 제공해야 합니다. 자세한 내용은 Go에서 종속 항목 지정을 참조하세요.
환경 변수
Go 런타임은 필요에 따라 사용할 함수의 특정 환경 변수를 자동으로 설정합니다. 자세한 내용은 환경 변수 사용을 참조하세요.
Context 유형
Go의 context 패키지가 정의하는 Context 유형은 API 경계를 넘어 프로세스 간에 기한, 취소 신호, 기타 요청 범위 값을 전달합니다.
다음 Cloud Run Functions 코드는 Pub/Sub 클라이언트의 컨텍스트 액세스 예시를 보여줍니다.
// Package helloworld provides a set of Cloud Functions samples.packagehelloworldimport("context""fmt""log""github.com/GoogleCloudPlatform/functions-framework-go/functions""github.com/cloudevents/sdk-go/v2/event")funcinit(){functions.CloudEvent("HelloPubSub",helloPubSub)}// MessagePublishedData contains the full Pub/Sub message// See the documentation for more details:// https://cloud.google.com/eventarc/docs/cloudevents#pubsubtypeMessagePublishedDatastruct{MessagePubSubMessage}// PubSubMessage is the payload of a Pub/Sub event.// See the documentation for more details:// https://cloud.google.com/pubsub/docs/reference/rest/v1/PubsubMessagetypePubSubMessagestruct{Data[]byte`json:"data"`}// helloPubSub consumes a CloudEvent message and extracts the Pub/Sub message.funchelloPubSub(ctxcontext.Context,eevent.Event)error{varmsgMessagePublishedDataiferr:=e.DataAs(&msg);err!=nil{returnfmt.Errorf("event.DataAs: %w",err)}name:=string(msg.Message.Data)// Automatically decoded from base64.ifname==""{name="World"}log.Printf("Hello, %s!",name)returnnil}
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-09-05(UTC)"],[[["\u003cp\u003eCloud Run functions utilize a runtime environment that includes the operating system, language support, and the Functions Framework library.\u003c/p\u003e\n"],["\u003cp\u003eYou can choose a specific Go runtime version for your Cloud Run function during deployment, as listed in the Runtime support documentation.\u003c/p\u003e\n"],["\u003cp\u003eDependencies for Go Cloud Run functions must be provided via Go modules with a \u003ccode\u003ego.mod\u003c/code\u003e file or a \u003ccode\u003evendor\u003c/code\u003e directory.\u003c/p\u003e\n"],["\u003cp\u003eThe source code for Cloud Run functions needs to adhere to a defined structure to ensure the function's definition can be located correctly.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eContext\u003c/code\u003e type from Go's \u003ccode\u003econtext\u003c/code\u003e package is used within Cloud Run functions for managing deadlines, cancellation signals, and request-scoped values, as shown in the Pub/Sub example.\u003c/p\u003e\n"]]],[],null,["# The Go Runtime\n==============\n\nOverview\n--------\n\nYour Cloud Run function runs in an environment consisting of an operating\nsystem version plus add-on packages, language support, and\nthe Functions Framework library that supports and invokes your function.\nThis environment is identified by the language version, and is known as the\nruntime.\n\nFor information about runtimes in general, and to learn which Ubuntu version\neach Go runtime uses, see the\n[Cloud Run functions execution environment](/functions/1stgendocs/concepts/execution-environment#go).\n\nSelect your runtime\n-------------------\n\nCloud Run functions supports several versions of Go, listed on the\n[Runtime support](/functions/1stgendocs/runtime-support#go) page. You can\nselect the preferred Go runtime for your function during deployment. \n\n### gcloud\n\nIf you're using the Google Cloud CLI, specify the runtime\nby using the `--runtime` parameter with the Go runtime of your choice.\nFor example: \n\n```bash\ngcloud functions deploy FUNCTION_NAME --no-gen2 --runtime go121 FLAGS...\n```\n\n\u003cvar translate=\"no\"\u003eFLAGS\u003c/var\u003e`...` refers to arguments passed during the first\ndeployment of your function. For more information regarding required and\noptional arguments, see\n[Deploy a Cloud Run function](/functions/1stgendocs/deploy#basics).\n\n### Console\n\nIf you're using the Google Cloud console, see the\n[Google Cloud console quickstart](/functions/1stgendocs/console-quickstart-1st-gen) for\ndetailed instructions.\n\nFunction preparation\n--------------------\n\nYou can prepare a function directly from the Google Cloud console or write it on your\nlocal machine and upload it. To prepare your local machine for Go development,\nsee [Setting Up a Go Development Environment](/go/docs/setup).\n\nTo get started quickly with Go on Cloud Run functions, see the\n[Quickstart](/functions/1stgendocs/create-deploy-gcloud-1st-gen).\n\nSource code structure\n---------------------\n\nFor Cloud Run functions to find your function's definition, your\nsource code must follow a specific structure. See\n[Writing Cloud Run functions](/functions/1stgendocs/writing#structuring_source_code)\nfor more information.\n\nSpecifying dependencies\n-----------------------\n\nCloud Run functions in Go must provide all of their dependencies either with\nGo modules and a `go.mod` file, or with a `vendor` directory. For more information,\nsee [Specifying dependencies in Go](/functions/1stgendocs/writing/specifying-dependencies-go).\n\nEnvironment variables\n---------------------\n\nYour Go runtime automatically sets certain environment variables for your function\nto use as needed. For details, see\n[Using Environment Variables](/functions/1stgendocs/configuring/env-var#newer_runtimes).\n\n`Context` type\n--------------\n\n[Go's `context` package](https://golang.org/pkg/context/) defines the `Context`\ntype, which carries deadlines, cancellation signals, and other request-scoped\nvalues across API boundaries and between processes.\n\nThe following Cloud Run functions code shows an example of context access by a\nPub/Sub client: \n\n\n // Package helloworld provides a set of Cloud Functions samples.\n package helloworld\n\n import (\n \t\"context\"\n \t\"fmt\"\n \t\"log\"\n\n \t\"github.com/GoogleCloudPlatform/functions-framework-go/functions\"\n \t\"github.com/cloudevents/sdk-go/v2/event\"\n )\n\n func init() {\n \tfunctions.CloudEvent(\"HelloPubSub\", helloPubSub)\n }\n\n // MessagePublishedData contains the full Pub/Sub message\n // See the documentation for more details:\n // https://cloud.google.com/eventarc/docs/cloudevents#pubsub\n type MessagePublishedData struct {\n \tMessage PubSubMessage\n }\n\n // PubSubMessage is the payload of a Pub/Sub event.\n // See the documentation for more details:\n // https://cloud.google.com/pubsub/docs/reference/rest/v1/PubsubMessage\n type PubSubMessage struct {\n \tData []byte `json:\"data\"`\n }\n\n // helloPubSub consumes a CloudEvent message and extracts the Pub/Sub message.\n func helloPubSub(ctx context.Context, e event.Event) error {\n \tvar msg MessagePublishedData\n \tif err := e.DataAs(&msg); err != nil {\n \t\treturn fmt.Errorf(\"event.DataAs: %w\", err)\n \t}\n\n \tname := string(msg.Message.Data) // Automatically decoded from base64.\n \tif name == \"\" {\n \t\tname = \"World\"\n \t}\n \tlog.Printf(\"Hello, %s!\", name)\n \treturn nil\n }"]]