Este tutorial simples demonstra como escrever, implementar e acionar uma função HTTP do Cloud Run.
Objetivos
- Escreva, implemente e acione uma função HTTP do Cloud Run.
 
Custos
Neste documento, usa os seguintes componentes faturáveis do Google Cloud:
- Cloud Run functions
 
 
 
 
  Para gerar uma estimativa de custos com base na sua utilização projetada,
      use a calculadora de preços.
  
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.
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
      (
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles. 
 - 
  
    
Verify that billing is enabled for your Google Cloud project.
 - 
  
  
    
      
Enable the Cloud Functions and Cloud Build 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. - 
      
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 - 
    
    
      
In the Google Cloud console, on the project selector page, select or create 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
      (
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles. 
 - 
  
    
Verify that billing is enabled for your Google Cloud project.
 - 
  
  
    
      
Enable the Cloud Functions and Cloud Build 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. - 
      
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 - Prepare o seu ambiente de desenvolvimento.
 Clone o repositório da app de exemplo para a sua máquina local:
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
Em alternativa, pode transferir o exemplo como um ficheiro ZIP e extraí-lo.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
Em alternativa, pode transferir o exemplo como um ficheiro ZIP e extraí-lo.
Ir
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
Em alternativa, pode transferir o exemplo como um ficheiro ZIP e extraí-lo.
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
Em alternativa, pode transferir o exemplo como um ficheiro ZIP e extraí-lo.
Ruby
git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples.git
Em alternativa, pode transferir o exemplo como um ficheiro ZIP e extraí-lo.
Altere para o diretório que contém o código de exemplo das funções do Cloud Run:
Node.js
cd nodejs-docs-samples/functions/helloworld/
Python
cd python-docs-samples/functions/helloworld/
Ir
cd golang-samples/functions/helloworld/
Java
cd java-docs-samples/functions/helloworld/helloworld/
Ruby
cd ruby-docs-samples/functions/helloworld/
Veja o exemplo de código:
Node.js
Python
Ir
Java
Ruby
REGIONé a região onde a sua função está implementada. Isto é visível no seu terminal quando a implementação da função terminar.PROJECT_IDé o ID do seu projeto do Google Cloud. Esta informação é visível no seu terminal quando a implementação da função terminar.- 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.
 
Se já tiver a CLI gcloud instalada, atualize-a executando o seguinte comando:
gcloud components update
A preparar a aplicação
Implementar a função
Para implementar a função com um acionador HTTP, execute o seguinte comando no diretório que contém o código de exemplo (ou, no caso do Java, o ficheiro pom.xml):
Node.js
gcloud functions deploy helloGET \ --runtime nodejs22 --trigger-http
Use a flag --runtime
para especificar o ID de tempo de execução de uma
versão suportada do Node.js para executar
a sua função.
  
Python
gcloud functions deploy hello_get \ --runtime python312 --trigger-http
Use a flag --runtime
para especificar o ID de tempo de execução de uma
versão do Python suportada para executar
a sua função.
  
Ir
gcloud functions deploy HelloGet \ --runtime go121 --trigger-http
Use a flag --runtime
para especificar o ID de tempo de execução de uma
versão do Go suportada para executar
a sua função.
  
Java
gcloud functions deploy java-http-function \ --entry-point functions.HelloWorld \ --runtime java17 \ --memory 512MB --trigger-http
Use a flag --runtime
para especificar o ID de tempo de execução de uma
versão Java suportada para executar
a sua função.
  
Ruby
gcloud functions deploy hello_get --runtime ruby33 --trigger-http
Use a flag --runtime
para especificar o ID de tempo de execução de uma
versão do Ruby suportada para executar
a sua função.
  
Opcionalmente, pode usar a flag --allow-unauthenticated para aceder à função sem autenticação.
Isto é útil para testes, mas não recomendamos a utilização desta definição em produção, a menos que esteja a criar uma API ou um Website público. Além disso, pode não funcionar para si, consoante as definições da política empresarial. Consulte o artigo
Autenticação para invocação para ver
detalhes sobre como invocar uma função que requer autenticação.
Acionar a função
Para fazer um pedido HTTP à sua função, execute o seguinte comando:
Node.js
curl "https://REGION-PROJECT_ID.cloudfunctions.net/helloGET"
Python
curl "https://REGION-PROJECT_ID.cloudfunctions.net/hello_get"
Ir
curl "https://REGION-PROJECT_ID.cloudfunctions.net/HelloGet"
Java
curl "https://REGION-PROJECT_ID.cloudfunctions.net/java-http-function"
Ruby
curl "https://REGION-PROJECT_ID.cloudfunctions.net/hello_get"
onde
Também pode visitar o ponto final da função implementada no seu navegador para ver a mensagem "Olá, mundo!".
Limpar
Para evitar incorrer em custos na sua conta do Google Cloud pelos recursos usados neste tutorial, elimine o projeto que contém os recursos ou mantenha o projeto e elimine os recursos individuais.
Eliminar o projeto
A forma mais fácil de eliminar a faturação é eliminar o projeto que criou para o tutorial.
Para eliminar o projeto:
A eliminar a função
A eliminação de funções do Cloud Run não remove recursos armazenados no Cloud Storage.
Para eliminar a função do Cloud Run que criou neste tutorial, execute o seguinte comando:
Node.js
gcloud functions delete helloGET
Python
gcloud functions delete hello_get
Ir
gcloud functions delete HelloGet
Java
gcloud functions delete java-http-function
Ruby
gcloud functions delete hello_get
Também pode eliminar funções do Cloud Run a partir da Google Cloud consola.