Início rápido: implemente uma função do Cloud Run com a CLI gcloud
Esta página mostra como implementar uma função HTTP do Cloud Run através da CLI gcloud.
Antes de começar
- 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.
-
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
-
Se estiver a usar um projeto existente para este guia, verifique se tem as autorizações necessárias para concluir este guia. Se criou um novo projeto, já tem as autorizações necessárias.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry, Cloud Build, Cloud Run Admin API, and Cloud Logging APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable artifactregistry.googleapis.com
cloudbuild.googleapis.com run.googleapis.com logging.googleapis.com -
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
-
Se estiver a usar um projeto existente para este guia, verifique se tem as autorizações necessárias para concluir este guia. Se criou um novo projeto, já tem as autorizações necessárias.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry, Cloud Build, Cloud Run Admin API, and Cloud Logging APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable artifactregistry.googleapis.com
cloudbuild.googleapis.com run.googleapis.com logging.googleapis.com - Para definir o projeto predefinido para o seu serviço do Cloud Run:
Substitua PROJECT_ID pelo nome do projeto que criou para este início rápido.gcloud config set project PROJECT_ID
Se estiver ao abrigo de uma política da organização de restrição de domínio que restringe as invocações não autenticadas para o seu projeto, tem de aceder ao serviço implementado conforme descrito em Testar serviços privados.
- Reveja os preços do Cloud Run ou estime os custos com a calculadora de preços.
-
Administrador do Cloud Run (
roles/run.admin) no projeto -
Programador de origem do Cloud Run (
roles/run.sourceDeveloper) no projeto -
Utilizador da conta de serviço (
roles/iam.serviceAccountUser) na identidade do serviço -
Visualizador de registos (
roles/logging.viewer) no projeto Crie um novo diretório com o nome
helloworlde mude para esse diretório:mkdir helloworld cd helloworldCrie um ficheiro
package.jsonno diretóriohelloworldpara especificar as dependências do Node.js:Crie um ficheiro
index.jsno diretóriohelloworldcom o seguinte exemplo de Node.js:Crie um novo diretório com o nome
helloworlde mude para esse diretório:mkdir helloworld cd helloworldCrie um ficheiro
requirements.txtno diretóriohelloworldpara especificar as dependências do Python:Isto adiciona os pacotes necessários para o exemplo.
Crie um ficheiro
main.pyno diretóriohelloworldcom o seguinte exemplo de Python:Crie um novo diretório com o nome
helloworlde mude para esse diretório:mkdir helloworld cd helloworldCrie um ficheiro
go.modpara declarar o módulo Go:Crie um ficheiro
hello_http.gono diretóriohelloworldcom o seguinte exemplo de código Go:Crie um novo diretório com o nome
helloworlde mude para esse diretório:mkdir helloworld cd helloworldCrie a seguinte estrutura de projeto para conter o diretório de origem e o ficheiro de origem:
mkdir -p ~/helloworld/src/main/java/functions touch ~/helloworld/src/main/java/functions/HelloWorld.javaAtualize o ficheiro
HelloWorld.javacom o seguinte exemplo de código Java:Crie um ficheiro
pom.xmlno diretóriohelloworlde adicione as seguintes dependências Java:Crie um novo diretório com o nome
helloworlde mude para esse diretório:mkdir helloworld cd helloworldCrie um ficheiro denominado
app.rbe cole o seguinte código no mesmo:Crie um ficheiro com o nome
Gemfilee copie o seguinte para o mesmo:Se não tiver o Bundler 2.0 ou superior instalado, instale o Bundler.
Gere um ficheiro
Gemfile.lockexecutando o seguinte comando:bundle installCrie um novo diretório com o nome
helloworlde mude para esse diretório:mkdir helloworld cd helloworldCrie um ficheiro denominado
index.phpe cole o seguinte código no mesmo:Se não estiver a usar o Cloud Shell, crie um ficheiro
composer.jsone cole o seguinte código no mesmo:Instale o SDK.NET.
Na consola, crie um novo projeto Web vazio com o comando dotnet.
dotnet new web -o helloworld-csharpAlterar diretório para
helloworld-csharp:Substitua o código de exemplo no ficheiro do projeto
helloworld-csharp.csprojpelo seguinte:Substitua o código de exemplo no ficheiro
Program.cspelo seguinte:Implemente a função executando o seguinte comando no diretório que contém o código de exemplo:
Node.js
gcloud run deploy nodejs-http-function \ --source . \ --function helloGET \ --base-image nodejs24 \ --region REGION \ --allow-unauthenticatedSubstitua REGION pela Google Cloud região do serviço onde quer implementar a sua função. Por exemplo,
europe-west1.Python
gcloud run deploy python-http-function \ --source . \ --function hello_get \ --base-image python314 \ --region REGION \ --allow-unauthenticatedSubstitua REGION pela Google Cloud região do serviço onde quer implementar a sua função. Por exemplo,
europe-west1.Ir
gcloud run deploy go-http-function \ --source . \ --function HelloGet \ --base-image go125 \ --region REGION \ --allow-unauthenticatedSubstitua REGION pela Google Cloud região do serviço onde quer implementar a sua função. Por exemplo,
europe-west1.Java
Execute o seguinte comando no diretório que contém o ficheiro
pom.xml:gcloud run deploy java-http-function \ --source . \ --function functions.HelloWorld \ --base-image java25 \ --region REGION \ --allow-unauthenticatedSubstitua REGION pela Google Cloud região do serviço onde quer implementar a sua função. Por exemplo,
europe-west1.Ruby
gcloud run deploy ruby-http-function \ --source . \ --function hello_get \ --base-image ruby34 \ --region REGION \ --allow-unauthenticatedSubstitua REGION pela Google Cloud região do serviço onde quer implementar a sua função. Por exemplo,
europe-west1.PHP
gcloud run deploy php-http-function \ --source . \ --function helloGet \ --base-image php84 \ --region REGION \ --allow-unauthenticatedSubstitua REGION pela Google Cloud região do serviço onde quer implementar a sua função. Por exemplo,
europe-west1..NET
gcloud run deploy csharp-http-function \ --source . \ --function HelloWorld.Function \ --base-image dotnet8 \ --region REGION \ --allow-unauthenticatedSubstitua REGION pela Google Cloud região do serviço onde quer implementar a sua função. Por exemplo,
europe-west1.Quando a implementação estiver concluída, a CLI Google Cloud apresenta um URL onde o serviço está em execução. Abra o URL no navegador para ver o resultado da sua função.
Na Google Cloud consola, aceda à página Serviços do Cloud Run:
Localize o serviço que quer eliminar na lista de serviços e clique na caixa de verificação para o selecionar.
Clique em Eliminar. Esta ação elimina todas as revisões do serviço.
- SERVICE: nome do seu serviço.
- REGION: Google Cloud região do serviço.
Para implementar uma função de exemplo no Cloud Run através da Google Cloud consola, consulte o Início rápido: implemente uma função no Cloud Run através da Google Cloud consola.
Para implementar funções e criar acionadores através da Google Cloud consola e da CLI gcloud, consulte o artigo Implementar funções.
Para ver e eliminar funções existentes, consulte o artigo Gerir revisões de serviços.
Para criar contentores de funções na sua própria cadeia de ferramentas e implementá-los no Cloud Run, consulte o artigo Crie funções.
Para criar acionadores com o Eventarc, consulte o artigo Crie acionadores com o Eventarc.
Funções necessárias
Para obter as autorizações de que precisa para concluir este início rápido, peça ao seu administrador que lhe conceda as seguintes funções de IAM:
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Conceda à conta de serviço do Cloud Build acesso ao seu projeto
O Cloud Build usa automaticamente a conta de serviço predefinida do Compute Engine como a conta de serviço predefinida do Cloud Build para compilar o seu código-fonte e recurso do Cloud Run, a menos que substitua este comportamento.
Para que o Cloud Build compile as suas origens, conceda à conta de serviço do Cloud Build a função Cloud Run
Builder
(roles/run.builder) no seu projeto:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT_EMAIL_ADDRESS \ --role=roles/run.builder
Substitua PROJECT_ID pelo ID do seu projeto e Google Cloudpelo endereço de email da conta de serviço do Cloud Build.SERVICE_ACCOUNT_EMAIL_ADDRESS Se estiver a usar a conta de serviço predefinida do Compute Engine como conta de serviço do Cloud Build, use o seguinte formato para o endereço de email da conta de serviço:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
Substitua PROJECT_NUMBER pelo seu Google Cloud
número do projeto.
Para ver instruções detalhadas sobre como encontrar o ID e o número do projeto, consulte o artigo Criar e gerir projetos.
A atribuição da função de criador do Cloud Run demora alguns minutos a propagar-se.
Escreva a função de exemplo
Para escrever uma candidatura, siga estes passos:
Node.js
Python
Ir
Java
Ruby
PHP
.NET
Implemente a função
Para implementar a função do Cloud Run, siga estes passos:
Limpar
Para evitar custos adicionais na sua conta Google Cloud , elimine todos os recursos implementados com este início rápido.
Elimine o seu repositório
O Cloud Run não lhe cobra nada quando o serviço implementado não está a ser usado. No entanto, ainda pode ser cobrado pelo armazenamento da imagem do contentor no Artifact Registry. Para eliminar repositórios do Artifact Registry, siga os passos em Eliminar repositórios na documentação do Artifact Registry.
Elimine o seu serviço
Os serviços do Cloud Run não incorrem em custos até receberem pedidos. Para eliminar o seu serviço do Cloud Run, siga um destes passos:
Consola
Para eliminar um serviço:
gcloud
Para eliminar um serviço, execute o seguinte comando:
gcloud run services delete SERVICE --region REGION
Substitua o seguinte:
Elimine o projeto de teste
A eliminação do seu projeto Google Cloud interrompe a faturação de todos os recursos nesse projeto. Para libertar todos os Google Cloud recursos no seu projeto, siga estes passos:
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID