Guia de início rápido: implantar uma função do Cloud Run usando a CLI gcloud
Nesta página, mostramos como implantar uma função do Cloud Run HTTP usando a CLI gcloud.
Antes de começar
- Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloudagora, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho sem custos financeiros.
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Crie ou selecione um projeto do Google Cloud .
Papéis necessários para selecionar ou criar um projeto
- Selecionar um projeto: não é necessário um papel específico do IAM para selecionar um projeto. Você pode escolher qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, é preciso ter o papel de Criador de projetos
(
roles/resourcemanager.projectCreator), que contém a permissãoresourcemanager.projects.create. Saiba como conceder papéis.
-
Crie um projeto do Google Cloud :
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor um nome para o projeto do Google Cloud que você está criando. -
Selecione o projeto Google Cloud que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_IDpelo nome do projeto do Google Cloud .
-
Se este guia estiver usando um projeto atual, verifique se você tem as permissões necessárias para concluir o guia. Se você criou um projeto, já tem as permissões necessárias.
-
Verifique se o faturamento está ativado para o projeto do Google Cloud .
Ative o Artifact Registry, o Cloud Build, a API Cloud Run Admin e as APIs Cloud Logging, se ainda não estiverem ativadas:
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão pelo papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.gcloud services enable artifactregistry.googleapis.com
cloudbuild.googleapis.com run.googleapis.com logging.googleapis.com -
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Crie ou selecione um projeto do Google Cloud .
Papéis necessários para selecionar ou criar um projeto
- Selecionar um projeto: não é necessário um papel específico do IAM para selecionar um projeto. Você pode escolher qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, é preciso ter o papel de Criador de projetos
(
roles/resourcemanager.projectCreator), que contém a permissãoresourcemanager.projects.create. Saiba como conceder papéis.
-
Crie um projeto do Google Cloud :
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor um nome para o projeto do Google Cloud que você está criando. -
Selecione o projeto Google Cloud que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_IDpelo nome do projeto do Google Cloud .
-
Se este guia estiver usando um projeto atual, verifique se você tem as permissões necessárias para concluir o guia. Se você criou um projeto, já tem as permissões necessárias.
-
Verifique se o faturamento está ativado para o projeto do Google Cloud .
Ative o Artifact Registry, o Cloud Build, a API Cloud Run Admin e as APIs Cloud Logging, se ainda não estiverem ativadas:
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão pelo papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.gcloud services enable artifactregistry.googleapis.com
cloudbuild.googleapis.com run.googleapis.com logging.googleapis.com - 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.
- Consulte os preços do Cloud Run ou faça uma estimativa de custos com a calculadora de preços.
Funções exigidas
Para conseguir as permissões necessárias para concluir o guia de início rápido, peça ao administrador para conceder a você os seguintes papéis do IAM:
- Administrador do Cloud Run (
roles/run.admin) no projeto - Desenvolvedor de origem do Cloud Run (
roles/run.sourceDeveloper) no projeto - Usuário da conta de serviço (
roles/iam.serviceAccountUser) na conta de serviço - Leitor de registros (
roles/logging.viewer) no projeto
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Conceder acesso à conta de serviço do Cloud Build ao seu projeto
O Cloud Build usa automaticamente a conta de serviço padrão do Compute Engine como a conta de serviço padrão do Cloud Build para criar seu código-fonte e o recurso do Cloud Run, a menos que você substitua esse comportamento.
Para que o Cloud Build crie suas origens, conceda à conta de serviço do Cloud Build o papel Builder do Cloud Run (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 projeto Google Cloud
e SERVICE_ACCOUNT_EMAIL_ADDRESS pelo
endereço de e-mail da conta de serviço do Cloud Build. Se você estiver usando a
conta de serviço padrão do Compute Engine como a conta de serviço do Cloud Build, use o seguinte formato para o endereço de e-mail da conta de serviço:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
Substitua PROJECT_NUMBER pelo número do projeto do Google Cloud.
Para instruções detalhadas sobre como encontrar o ID do projeto e o número do projeto, consulte Criar e gerenciar projetos.
A concessão do papel de criador do Cloud Run 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
helloworlde altere o diretório nele:mkdir helloworld cd helloworldCrie um arquivo
package.jsonno diretóriohelloworldpara especificar as dependências do Node.js:{ "name": "nodejs-docs-samples-functions-hello-world-get", "version": "0.0.1", "private": true, "license": "Apache-2.0", "author": "Google Inc.", "repository": { "type": "git", "url": "https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git" }, "engines": { "node": ">=16.0.0" }, "scripts": { "test": "c8 mocha -p -j 2 test/*.test.js --timeout=6000 --exit" }, "dependencies": { "@google-cloud/functions-framework": "^3.1.0" }, "devDependencies": { "c8": "^10.0.0", "gaxios": "^6.0.0", "mocha": "^10.0.0", "wait-port": "^1.0.4" } }
Crie um arquivo
index.jsno diretóriohelloworldcom o seguinte exemplo de Node.js:import { http } from '@google-cloud/functions-framework'; // Register an HTTP function with the Functions Framework that executes // when you make an HTTP request to the deployed function's endpoint. http('helloGET', (req, res) => { res.send('Hello World!'); });
Python
Crie um novo diretório com o nome
helloworlde altere o diretório nele:mkdir helloworld cd helloworldCrie um arquivo
requirements.txtno diretóriohelloworldpara especificar dependências do Python:Isso adiciona os pacotes necessários para a amostra.
Crie um arquivo
main.pyno diretóriohelloworldcom o seguinte exemplo em Python:
Go
Crie um novo diretório com o nome
helloworlde altere o diretório nele:mkdir helloworld cd helloworldCrie um arquivo
go.modpara declarar o módulo go:Crie um arquivo
hello_http.gono diretóriohelloworldcom o exemplo de código Go a seguir:
Java
Crie um novo diretório com o nome
helloworlde altere o diretório nele:mkdir helloworld cd helloworldCrie 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.javaAtualize o arquivo
HelloWorld.javacom o seguinte exemplo de código Java:Crie um arquivo
pom.xmlno diretóriohelloworlde adicione as seguintes dependências do Java:
Ruby
Crie um novo diretório com o nome
helloworlde altere o diretório nele:mkdir helloworld cd helloworldCrie um arquivo chamado
app.rbe cole o seguinte código nele:Crie um arquivo chamado
Gemfilee copie o seguinte arquivo nele:Se você não tiver o Bundler 2.0 ou superior instalado, instale o Bundler.
Gere um arquivo
Gemfile.lockexecutando:bundle install
PHP
Crie um novo diretório com o nome
helloworlde altere o diretório nele:mkdir helloworld cd helloworldCrie um arquivo chamado
index.phpe cole o seguinte código nele:Se você não estiver usando o Cloud Shell, crie um arquivo
composer.jsone cole o seguinte código nele:
.NET
Instale o SDK do.NET.
No console, crie um novo projeto da Web vazio usando o comando dotnet.
dotnet new web -o helloworld-csharpAltere o diretório para
helloworld-csharp:Substitua o exemplo de código no arquivo do projeto
helloworld-csharp.csprojpelo seguinte:Substitua o exemplo de código no arquivo
Program.cspelo seguinte:
Implantar a função
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 run deploy nodejs-http-function \ --source . \ --function helloGET \ --base-image nodejs24 \ --region REGION \ --allow-unauthenticatedSubstitua REGION pela região do Google Clouddo serviço em que você quer implantar a 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 região do Google Clouddo serviço em que você quer implantar a função. Por exemplo,
europe-west1.Go
gcloud run deploy go-http-function \ --source . \ --function HelloGet \ --base-image go127 \ --region REGION \ --allow-unauthenticatedSubstitua REGION pela região do Google Clouddo serviço em que você quer implantar a função. Por exemplo,
europe-west1.Java
Execute o seguinte comando no diretório que contém o arquivo
pom.xml:gcloud run deploy java-http-function \ --source . \ --function functions.HelloWorld \ --base-image java25 \ --region REGION \ --allow-unauthenticatedSubstitua REGION pela região do Google Clouddo serviço em que você quer implantar a função. Por exemplo,
europe-west1.Ruby
gcloud run deploy ruby-http-function \ --source . \ --function hello_get \ --base-image ruby40 \ --region REGION \ --allow-unauthenticatedSubstitua REGION pela Google Cloud região do serviço em que você quer implantar a função. Por exemplo,
europe-west1.PHP
gcloud run deploy php-http-function \ --source . \ --function helloGet \ --base-image php85 \ --region REGION \ --allow-unauthenticatedSubstitua REGION pela Google Cloud região do serviço em que você quer implantar a função. Por exemplo,
europe-west1..NET
gcloud run deploy csharp-http-function \ --source . \ --function HelloWorld.Function \ --base-image dotnet10 \ --region REGION \ --allow-unauthenticatedSubstitua REGION pela Google Cloud região do serviço em que você quer implantar a função. Por exemplo,
europe-west1.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.
Limpar
Para evitar cobranças extras na sua conta do Google Cloud , exclua todos os recursos implantados com este guia de início rápido.
Excluir o repositório
O Cloud Run não gera cobranças quando o serviço implantado não está em uso. No entanto, é possível que você ainda receba cobranças pelo armazenamento da imagem do contêiner no Artifact Registry. Para excluir repositórios do Artifact Registry, siga as etapas em Excluir repositórios na documentação do Artifact Registry.
Excluir o serviço
Os serviços do Cloud Run não geram custos até receberem solicitações. Para excluir o serviço do Cloud Run, siga uma destas etapas:
Console
Para excluir um serviço, realize as etapas a seguir:
No console do Google Cloud , acesse a página Serviços do Cloud Run:
Localize o serviço que você quer excluir na lista de serviços e clique na caixa de seleção para marcá-lo.
Clique em Excluir. Isso excluirá todas as revisões do serviço.
gcloud
Para excluir um serviço, execute o seguinte comando:
gcloud run services delete SERVICE --region REGION
Substitua:
- SERVICE: nome do serviço.
- REGION: Google Cloud região do serviço.
Excluir o projeto de teste
A exclusão do projeto do Google Cloud interrompe o faturamento de todos os recursos dele. Para liberar todos os recursos do Google Cloud no seu projeto, siga estas etapas:
Excluir um projeto do Google Cloud :
gcloud projects delete PROJECT_ID
A seguir
Para implantar uma função de exemplo no Cloud Run usando o Google Cloud console, consulte Guia de início rápido: implantar uma função no Cloud Run usando o Google Cloud console.
Para implantar funções e criar gatilhos usando o console do Google Cloud e a Google Cloud CLI, consulte Implantar funções.
Para visualizar e excluir funções atuais, consulte Gerenciar revisões de serviço gerenciado.
Para criar contêineres de funções em seu próprio conjunto de ferramentas e implantá-lo no Cloud Run, consulte Criar funções.
Para criar gatilhos com o Eventarc, consulte Criar gatilhos com o Eventarc.