Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
A sua função do Cloud Run é executada num ambiente que consiste numa versão do sistema operativo com pacotes suplementares, suporte de idiomas e a biblioteca Go Functions Framework que suporta e invoca a sua função. Este ambiente é identificado pela versão do idioma e é conhecido como o ID de tempo de execução.
Preparação da função
Pode preparar uma função diretamente a partir da Google Cloud consola ou escrevê-la no seu computador local e carregá-la. Para preparar o seu computador local para o desenvolvimento em Go, consulte o artigo Configure um ambiente de desenvolvimento em Go.
Imagens base e tempos de execução do Go suportados
Pode selecionar um dos tempos de execução do Go suportados para a sua função durante a implementação.
Pode selecionar uma versão de tempo de execução através da Google Cloud consola ou da
CLI gcloud. Clique no separador para ver instruções sobre como usar a ferramenta da
sua escolha:
gcloud
Especifique a imagem base do Go para a sua função através da flag --base-image ao implementar a função. Por exemplo:
gcloud run deploy FUNCTION \
--source . \
--function FUNCTION_ENTRYPOINT \
--base-image go124
Substituir:
FUNCTION com o nome da função que está a implementar. Pode omitir este parâmetro por completo,
mas é-lhe pedido o nome se o omitir.
FUNCTION_ENTRYPOINT com o ponto de entrada da sua função no
código-fonte. Este é o código que o Cloud Run executa quando a sua função é executada. O valor desta flag tem de ser um nome de função ou um nome de classe totalmente qualificado que exista no seu código-fonte.
Para obter instruções detalhadas sobre a implementação de uma função através da CLI gcloud, consulte o artigo Implemente funções no Cloud Run.
Consola
Pode selecionar uma versão de tempo de execução quando cria ou atualiza uma função do Cloud Run na Google Cloud consola. Para ver instruções detalhadas sobre como implementar uma função, consulte o artigo Implemente funções no Cloud Run.
Para selecionar um tempo de execução na Google Cloud consola quando cria uma função, siga estes passos:
Na Google Cloud consola, aceda à página do Cloud Run:
Na lista Tempo de execução, selecione uma versão do tempo de execução do Go.
Clique em Criar e aguarde que o Cloud Run crie o serviço
com uma revisão de marcador de posição.
A consola redireciona para o separador Origem, onde pode ver o código-fonte da sua função. Clique em Guardar e voltar a implementar.
Para obter instruções detalhadas sobre como atualizar a versão do tempo de execução após a implementação da função, consulte o artigo
Volte a implementar um novo código-fonte.
Estrutura do código-fonte
Para que as funções do Cloud Run encontrem a definição da sua função, o código fonte tem de seguir uma estrutura específica. Consulte o artigo
Escreva funções do Cloud Run para mais
informações.
Especifique dependências
As funções do Cloud Run em Go têm de fornecer todas as respetivas dependências
com módulos Go e um ficheiro go.mod ou com um diretório vendor. Para mais informações, consulte o artigo Especifique dependências no Go.
Variáveis de ambiente
O tempo de execução do Go define automaticamente determinadas variáveis de ambiente para a sua função
usar conforme necessário. Para ver detalhes, consulte o artigo
Configure variáveis de ambiente.
Context tipo
O pacote contextGo define o tipo Context
que contém prazos, sinais de cancelamento e outros valores
com âmbito de pedido nos limites da API e entre processos.
O código seguinte mostra um exemplo de acesso ao contexto por parte de um cliente do 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}
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-21 UTC."],[],[],null,["# The Go runtime\n\nYour Cloud Run function runs in an environment consisting of an\noperating system version with add-on packages, language support, and\nthe [Go Functions Framework](https://github.com/GoogleCloudPlatform/functions-framework-go)\nlibrary that supports and invokes your function. This environment is identified\nby the language version, and is known as the runtime ID.\n\nFunction preparation\n--------------------\n\nYou can prepare a function directly from the Google Cloud console or write it on\nyour local machine and upload it. To prepare your local machine for Go\ndevelopment, see [Set up a Go development environment](/go/docs/setup).\n\nSupported Go runtimes and base images\n-------------------------------------\n\n| **Note:** Go's [release policy](https://go.dev/doc/devel/release#policy) states that each major Go release is supported until there are two newer major releases. Thus, depending on when newer versions of Go are made publicly available, key dates such as end of support, deprecation, and decommission might be postponed.\n\nSelect your runtime\n-------------------\n\nYou can select one of the supported Go runtimes for your function during\ndeployment.\n\nYou can select a runtime version using the Google Cloud console, or the\ngcloud CLI. Click the tab for instructions on using the tool of\nyour choice: \n\n### gcloud\n\nSpecify the [Go base image](/run/docs/configuring/services/runtime-base-images#how_to_obtain_base_images) for your function using the `--base-image` flag,\nwhile deploying your function. For example: \n\n gcloud run deploy \u003cvar translate=\"no\"\u003eFUNCTION\u003c/var\u003e \\\n --source . \\\n --function \u003cvar translate=\"no\"\u003eFUNCTION_ENTRYPOINT\u003c/var\u003e \\\n --base-image go125\n\nReplace:\n\n- \u003cvar translate=\"no\"\u003eFUNCTION\u003c/var\u003e with the name of the function you are\n deploying. You can omit this parameter entirely,\n but you will be prompted for the name if you omit it.\n\n- \u003cvar translate=\"no\"\u003eFUNCTION_ENTRYPOINT\u003c/var\u003e with the entry point to your function in\n your source code. This is the code Cloud Run executes when your\n function runs. The value of this flag must be a function name or\n fully-qualified class name that exists in your source code.\n\nFor detailed instructions on deploying a function using the gcloud CLI, see [Deploy functions in Cloud Run](/run/docs/deploy-functions#gcloud).\n\n### Console\n\nYou can select a runtime version when you create or update a Cloud Run function in the Google Cloud console. For detailed\ninstructions on deploying a function, see [Deploy functions in Cloud Run](/run/docs/deploy-functions#deploy-functions).\n\nTo select a runtime in the Google Cloud console when you create a function, follow these steps:\n\n1. In the Google Cloud console, go to the Cloud Run page:\n\n [Go to Cloud Run](https://console.cloud.google.com/run)\n2. Click **Write a function**.\n\n3. In the **Runtime** list, select a Go runtime version.\n\n4. Click **Create**, and wait for Cloud Run to create the service\n using a placeholder revision.\n\n5. The console will redirect you to the **Source**\n tab where you can see the source code of your function. Click **Save and redeploy**.\n\nFor detailed instructions on updating the runtime version after your function is\ndeployed, see\n[Re-deploy new source code](/run/docs/deploy-functions#update-code-functions).\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[Write Cloud Run functions](/run/docs/write-functions#go) for more\ninformation.\n\nSpecify dependencies\n--------------------\n\nCloud Run functions in Go must provide all of their dependencies\neither with Go modules and a `go.mod` file, or with a `vendor` directory. For\nmore information, see [Specify dependencies in Go](/run/docs/runtimes/go-dependencies).\n\nEnvironment variables\n---------------------\n\nYour Go runtime automatically sets certain environment variables for your function\nto use as needed. For details, see\n[Configure environment variables](/run/docs/configuring/services/environment-variables).\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 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 }"]]