Criar e implantar uma função HTTP do Cloud Run usando Java (1ª geração)
Este guia explica o processo de criação de uma função do Cloud Run usando o ambiente de execução Java. Há dois tipos de funções do Cloud Run:
- Uma função HTTP, que você invoca a partir de solicitações HTTP padrão.
- Uma função direcionada a eventos, que você usa para processar eventos da infraestrutura do Cloud, como mensagens em um tópico do Pub/Sub ou alterações em um bucket do Cloud Storage.
O documento mostra como criar uma função HTTP simples e criá-la usando Maven (em inglês) ou Gradle (em inglês).
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 Cloud Functions and Cloud Build APIs.
-
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 Cloud Functions and Cloud Build APIs.
- Instale e inicialize o Google Cloud SDK.
- Atualize e instale os componentes
gcloud
:gcloud components update
- Prepare seu ambiente de desenvolvimento.
crie uma função
Nesta seção, descrevemos como criar funções.
Maven
Crie um diretório no seu sistema local para o código de função:
Linux ou Mac OS X:
mkdir ~/helloworld cd ~/helloworld
Windows:
mkdir %HOMEPATH%\helloworld cd %HOMEPATH%\helloworld
Crie a estrutura do projeto para conter o diretório de origem e o arquivo de origem.
mkdir -p src/main/java/functions touch src/main/java/functions/HelloWorld.java
Adicione o seguinte conteúdo ao arquivo
HelloWorld.java
:Esta função de exemplo gera a saudação "Hello World!"
Gradle
Crie um diretório no seu sistema local para o código de função:
Linux ou Mac OS X:
mkdir ~/helloworld-gradle cd ~/helloworld-gradle
Windows:
mkdir %HOMEPATH%\helloworld-gradle cd %HOMEPATH%\helloworld-gradle
Crie a estrutura do projeto para conter o diretório de origem e o arquivo de origem.
mkdir -p src/main/java/functions touch src/main/java/functions/HelloWorld.java
Adicione o seguinte conteúdo ao arquivo
HelloWorld.java
:Esta função de exemplo gera a saudação "Hello World!"
Especificar as dependências
A próxima etapa é configurar as dependências:
Maven
Altere o diretório para o diretório helloworld
criado acima e crie
um arquivo pom.xml
:
cd ~/helloworld
touch pom.xml
Para gerenciar dependências usando o Maven, especifique as dependências
na seção <dependencies>
dentro do arquivo pom.xml
(em inglês) do projeto. Para este exercício, copie o conteúdo a seguir
no arquivo pom.xml
.
Consulte helloworld (em inglês) para uma amostra completa com base no Maven.
Gradle
Altere o diretório para o diretório helloworld-gradle
criado acima e
crie um arquivo build.gradle
:
cd ~/helloworld-gradle
touch build.gradle
Para gerenciar dependências usando o Gradle, especifique as dependências
no arquivo build.gradle
(em inglês) do projeto. Para este exercício, copie o conteúdo a seguir
no arquivo build.gradle
. Este arquivo build.gradle
inclui uma
tarefa personalizada para ajudar você a executar funções localmente.
Consulte helloworld-gradle (em inglês) para ver uma amostra completa com base no Gradle.
Criar e testar localmente
Antes de implantar a função, é possível criá-la e testá-la localmente:
Maven
Execute o seguinte comando para confirmar se a função foi criada:
mvn compile
Outra opção é usar o comando mvn package
para compilar o código
Java, executar todos os testes e empacotar o código em um arquivo JAR no diretório
de destino. Saiba mais sobre o ciclo de vida da
versão do Maven (em inglês).
Para testar a função, execute o seguinte comando:
mvn function:run
Gradle
Execute o seguinte comando para confirmar se a função foi criada:
gradle build
Para testar a função, execute o seguinte comando:
gradle runFunction -Prun.functionTarget=functions.HelloWorld
Se o teste for concluído com êxito, ele exibirá o URL que pode ser acessado no navegador da Web
para ver a função em ação:
http://localhost:8080/
. Você verá uma mensagem Hello World!
.
Como alternativa, envie solicitações para essa função usando curl
de outra
janela de terminal:
curl localhost:8080
# Output: Hello World!
Implantar a função
Maven
Para implantar a função com um gatilho HTTP, execute o seguinte
comando no diretório helloworld
:
gcloud functions deploy my-first-function --no-gen2 --entry-point functions.HelloWorld --runtime java17 --trigger-http --memory 512MB --allow-unauthenticated
em que my-first-function
é o nome registrado pelo qual sua função
será identificada no Console do Google Cloud e --entry-point
especifica
o nome de classe totalmente qualificado da função (FQN).
Gradle
Para implantar a função com um gatilho HTTP, execute o seguinte
comando no diretório helloworld-gradle
:
gcloud functions deploy my-first-function --no-gen2 --entry-point functions.HelloWorld --runtime java17 --trigger-http --memory 512MB --allow-unauthenticated
em que my-first-function
é o nome registrado pelo qual sua função
será identificada no Console do Google Cloud e --entry-point
especifica
o nome de classe totalmente qualificado da função (FQN).
Testar a função de implantação
Quando a implantação da função estiver concluída, anote a propriedade
httpsTrigger.url
ou encontre-a usando o seguinte comando:gcloud functions describe my-first-function
A aparência será semelhante a esta:
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/my-first-function
Visite este URL no navegador. Você verá uma mensagem
Hello World!
.
Ver registros
Os registros do Cloud Run functions são visíveis usando a CLI do Google Cloud e na interface do Cloud Logging.
Usar a ferramenta de linha de comando
Para ver os registros da função com a ferramenta gcloud CLI, use o comando
logs read
, seguido pelo
nome da função:
gcloud functions logs read my-first-function
A saída será semelhante a esta:
LEVEL NAME EXECUTION_ID TIME_UTC LOG D my-first-function k2bqgroszo4u 2020-07-24 18:18:01.791 Function execution started D my-first-function k2bqgroszo4u 2020-07-24 18:18:01.958 Function execution took 168 ms, finished with status code: 200 ...
Usar o painel do Logging
Também é possível ver os registros do Cloud Run functions no console do Google Cloud.