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, primeiro, tem 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.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with 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_ID
with your Google Cloud project name.
-
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry, Cloud Build, Cloud Run Admin API, and Cloud Logging APIs:
gcloud services enable artifactregistry.googleapis.com
cloudbuild.googleapis.com run.googleapis.com logging.googleapis.com -
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/run.sourceDeveloper, roles/run.admin, roles/logging.viewer
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Replace the following:
PROJECT_ID
: your project ID.USER_IDENTIFIER
: the identifier for your user account—for example,myemail@example.com
.ROLE
: the IAM role that you grant to your user account.
-
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem 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.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with 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_ID
with your Google Cloud project name.
-
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry, Cloud Build, Cloud Run Admin API, and Cloud Logging APIs:
gcloud services enable artifactregistry.googleapis.com
cloudbuild.googleapis.com run.googleapis.com logging.googleapis.com -
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/run.sourceDeveloper, roles/run.admin, roles/logging.viewer
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Replace the following:
PROJECT_ID
: your project ID.USER_IDENTIFIER
: the identifier for your user account—for example,myemail@example.com
.ROLE
: the IAM role that you grant to your user account.
- 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.
-
Certifique-se de que tem a função Utilizador da conta de serviço concedida na identidade de serviço. Por predefinição, a identidade do serviço é a conta de serviço predefinida do Compute Engine.
Conceda as funções
Para conceder acesso ao recurso de identidade do serviço, use o comando
gcloud iam service-accounts add-iam-policy-binding
, substituindo as variáveis realçadas pelos valores adequados:gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \ --member="PRINCIPAL" \ --role="roles/iam.serviceAccountUser"
Substitua o seguinte:
- SERVICE_ACCOUNT_EMAIL: o endereço de email da conta de serviço
que está a usar como identidade de serviço, como:
- A conta de serviço predefinida do Compute Engine:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
- Uma conta de serviço que criou:
SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
- A conta de serviço predefinida do Compute Engine:
- PRINCIPAL: o identificador do utilizador. Normalmente, este é o endereço de email de uma Conta Google.
- SERVICE_ACCOUNT_EMAIL: o endereço de email da conta de serviço
que está a usar como identidade de serviço, como:
- Conceda à conta de serviço do Cloud Build a seguinte função do IAM.
Clique para ver as funções necessárias para a conta de serviço do Cloud Build
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 o recurso do Cloud Run, a menos que substitua este comportamento. Para que o Cloud Build compile as suas origens, peça ao administrador para conceder a função Cloud Run Builder (
roles/run.builder
) à conta de serviço predefinida do Compute Engine no seu projeto:gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/run.builder
Substitua
PROJECT_NUMBER
pelo seu Google Cloud número do projeto ePROJECT_ID
pelo seu Google Cloud ID 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 concessão da função de criador do Cloud Run à conta de serviço predefinida do Compute Engine demora alguns minutos a propagar.
Crie um novo diretório com o nome
helloworld
e mude o diretório para este:mkdir helloworld cd helloworld
Crie um ficheiro
package.json
no diretóriohelloworld
para especificar as dependências do Node.js:Crie um ficheiro
index.js
no diretóriohelloworld
com o seguinte exemplo de Node.js:Crie um novo diretório com o nome
helloworld
e mude o diretório para este:mkdir helloworld cd helloworld
Crie um ficheiro
requirements.txt
no diretóriohelloworld
para especificar as dependências do Python:Isto adiciona os pacotes necessários para a amostra.
Crie um ficheiro
main.py
no diretóriohelloworld
com o seguinte exemplo de Python:Crie um novo diretório com o nome
helloworld
e mude o diretório para este:mkdir helloworld cd helloworld
Crie um ficheiro
go.mod
para declarar o módulo Go:Crie um ficheiro
hello_http.go
no diretóriohelloworld
com o seguinte exemplo de código Go:Crie um novo diretório com o nome
helloworld
e mude o diretório para este:mkdir helloworld cd helloworld
Crie 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.java
Atualize o ficheiro
HelloWorld.java
com o seguinte exemplo de código Java:Crie um ficheiro
pom.xml
no diretóriohelloworld
e adicione as seguintes dependências Java:Crie um novo diretório com o nome
helloworld
e mude o diretório para este:mkdir helloworld cd helloworld
Crie um ficheiro com o nome
app.rb
e cole o seguinte código no mesmo:Crie um ficheiro com o nome
Gemfile
e copie o seguinte para o mesmo:Se não tiver o Bundler 2.0 ou superior instalado, instale o Bundler.
Gere um ficheiro
Gemfile.lock
executando o seguinte comando:bundle install
Crie um novo diretório com o nome
helloworld
e mude o diretório para este:mkdir helloworld cd helloworld
Crie um ficheiro com o nome
index.php
e cole o seguinte código no mesmo:Se não estiver a usar o Cloud Shell, crie um ficheiro
composer.json
e 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-csharp
Alterar diretório para
helloworld-csharp
:Substitua o código de exemplo no ficheiro do projeto
helloworld-csharp.csproj
pelo seguinte:Substitua o código de exemplo no ficheiro
Program.cs
pelo seguinte:Implemente a função executando o seguinte comando no diretório que contém o exemplo de código:
Node.js
gcloud run deploy nodejs-http-function \ --source . \ --function helloGET \ --base-image nodejs22 \ --region REGION \ --allow-unauthenticated
Substitua 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 python313 \ --region REGION \ --allow-unauthenticated
Substitua 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 go124 \ --region REGION \ --allow-unauthenticated
Substitua 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 java21 \ --region REGION \ --allow-unauthenticated
Substitua 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-unauthenticated
Substitua 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-unauthenticated
Substitua 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-unauthenticated
Substitua 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.
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.
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
Importante: este início rápido pressupõe que tem funções de proprietário ou editor no projeto que está a usar para o início rápido. Caso contrário, consulte a função de programador de origem do Cloud Run para ver as autorizações necessárias para implementar um recurso do Cloud Run a partir da origem.
Para implementar a função do Cloud Run, siga estes passos:
Limpar
Embora o Cloud Run não cobre quando o serviço não está em utilização, ainda pode ser-lhe cobrado o armazenamento da imagem do contentor no Artifact Registry. Pode eliminar a imagem do contentor ou eliminar o Google Cloud projeto para evitar incorrer em custos. A eliminação do seu Google Cloud projeto interrompe a faturação de todos os recursos usados nesse projeto.
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID