Guia de início rápido: implantar uma função no Cloud Run usando a gcloud CLI
Esta página mostra como usar o Cloud Run para implantar uma função HTTP usando a gcloud CLI.
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.
-
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 Artifact Registry, Cloud Build, Cloud Run Admin API, and Cloud Logging APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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 Artifact Registry, Cloud Build, Cloud Run Admin API, and Cloud Logging APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Para definir o projeto padrão do serviço do Cloud Run:
Substitua PROJECT_ID pelo nome do projeto que você criou para este guia de início rápido.gcloud config set project PROJECT_ID
Se você precisa seguir uma política da organização de restrição de domínio que restringe invocações não autenticadas para seu projeto, será necessário acessar o serviço implantado, conforme descrito em Como testar serviços particulares.
- Para que o Cloud Build consiga criar suas origens, conceda o papel
Conta de serviço do Cloud Build
para a conta de serviço padrão do Compute Engine. Basta executar o comando a seguir:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/cloudbuild.builds.builder
Substitua
PROJECT_NUMBER
pelo número do projeto do Google Cloud ePROJECT_ID
pelo ID do projeto do Google Cloud. Para instruções detalhadas sobre como encontrar o ID e o número do projeto, consulte Criar e gerenciar projetos.A concessão do papel de conta de serviço do Cloud Build à conta de serviço padrão do Compute Engine leva alguns minutos para se propagar.
Escrever a função de exemplo
Para escrever um aplicativo, siga estas etapas:
Node.js
Crie um novo diretório com o nome
helloworld
e altere o diretório nele:mkdir helloworld cd helloworld
Crie um arquivo
package.json
no diretóriohelloworld
para especificar as dependências do Node.js:Crie um arquivo
index.js
no diretóriohelloworld
com o seguinte exemplo de Node.js:
Python
Crie um novo diretório com o nome
helloworld
e altere o diretório nele:mkdir helloworld cd helloworld
Crie um arquivo
requirements.txt
no diretóriohelloworld
para especificar dependências do Python:Isso adiciona os pacotes necessários para a amostra.
Crie um arquivo
main.py
no diretóriohelloworld
com o seguinte exemplo em Python:
Go
Crie um novo diretório com o nome
helloworld
e altere o diretório nele:mkdir helloworld cd helloworld
Crie um arquivo
go.mod
para declarar o módulo go:Você pode criar o arquivo
go.mod
diretamente no formato conforme mostrado ou inicializá-lo a partir do diretório do projeto com:go mod init github.com/GoogleCloudPlatform/golang-samples/functions/functionsv2/helloworld/go.mod
Crie um arquivo
hello_http.go
no diretóriohelloworld
com o exemplo de código Go a seguir:
Java
Crie um novo diretório com o nome
helloworld
e altere o diretório nele:mkdir helloworld cd helloworld
Crie a seguinte estrutura do projeto para conter o diretório de origem e o arquivo de origem.
mkdir -p ~/helloworld/src/main/java/functions touch ~/helloworld/src/main/java/functions/HelloWorld.java
Atualize o arquivo
HelloWorld.java
com o seguinte exemplo de código Java:Crie um arquivo
pom.xml
no diretóriohelloworld
e adicione as seguintes dependências do Java:
.NET
Instale o SDK do .NET 6.0. Este guia de início rápido só funciona com o .NET versão 6.
No console, crie um novo projeto da Web vazio usando o comando dotnet.
dotnet new web -o helloworld-csharp
Altere o diretório para
helloworld-csharp
:Substitua o exemplo de código no arquivo do projeto
helloworld-csharp.csproj
pelo seguinte:Substitua o exemplo de código no arquivo
Program.cs
pelo seguinte:
implantar a função
Importante: este guia de início rápido pressupõe que você tenha papéis de proprietário ou editor no projeto que está usando para este guia. Caso contrário, consulte o papel de desenvolvedor de origem do Cloud Run para ter acesso às permissões necessárias para implantar um recurso do Cloud Run a partir da origem.
Para implantar a função do Cloud Run, siga estas etapas:
Implante a função executando o seguinte comando no diretório contém o exemplo de código:
Node.js
gcloud beta run deploy nodejs-http-function \ --source . \ --function helloGET \ --base-image nodejs20 \ --region REGION \ --allow-unauthenticated
Substitua REGION pela região do Google Cloud do serviço em que você quer implantar a função. Por exemplo,
us-central1
.Python
gcloud beta run deploy python-http-function \ --source . \ --function hello_get \ --base-image python312 \ --region REGION \ --allow-unauthenticated
Substitua REGION pela região do Google Cloud do serviço em que você quer implantar a função. Por exemplo,
us-central1
.Go
gcloud beta run deploy go-http-function \ --source . \ --function HelloGet \ --base-image go122 \ --region REGION \ --allow-unauthenticated
Substitua REGION pela região do Google Cloud do serviço em que você quer implantar a função. Por exemplo,
us-central1
.Java
Execute o seguinte comando no diretório que contém o arquivo
pom.xml
:gcloud beta run deploy java-http-function \ --source . \ --function functions.HelloWorld \ --base-image java21 \ --region REGION \ --allow-unauthenticated
Substitua REGION pela região do Google Cloud do serviço em que você quer implantar a função. Por exemplo,
us-central1
..NET
gcloud beta run deploy csharp-http-function \ --source . \ --function HelloWorld.Function \ --base-image dotnet6 \ --region REGION \ --allow-unauthenticated
Substitua REGION pela região do Google Cloud do serviço em que você quer implantar a função. Por exemplo,
us-central1
.Quando a implantação for concluída, a CLI do Google Cloud vai mostrar um URL em que o serviço está em execução. Abra o URL em seu navegador para ver a saída da sua função.
Para aprender a adicionar gatilhos do Eventarc à função, consulte o guia Implantar uma função para mais instruções.
Limpar
Ainda que o Cloud Run não gere custos quando o serviço não estiver em uso, é possível que receba cobranças pelo armazenamento da imagem do contêiner no Artifact Registry. É possível excluir sua imagem de contêiner ou excluir seu projeto do Google Cloud para evitar cobranças. A exclusão do projeto do Google Cloud interrompe o faturamento de todos os recursos usados no projeto.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
A seguir
Para implantar uma função de exemplo no Cloud Run usando o console do Google Cloud: consulte o Guia de início rápido: implantar uma função no Cloud Run usando o console do Google Cloud.
Para implantar funções e criar gatilhos usando o console do Google Cloud e a CLI do Google Cloud, consulte Implantar funções.
Para visualizar e excluir funções existentes, consulte Gerenciar revisões de serviço.
Para criar contêineres de funções em seu próprio conjunto de ferramentas e implantá-lo no Cloud Run, consulte Criar funções.