Criar e implantar uma função do Cloud Run em HTTP com PHP
Este guia explica o processo de criação de uma função do Cloud Run usando o ambiente de execução do PHP, bem como o teste e a implantação da função HTTP.
É possível criar 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.
Para mais detalhes, leia Como escrever funções HTTP e Como escrever funções orientadas a eventos.
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, Cloud Build, Artifact Registry, Cloud Run, and Cloud Logging 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, Cloud Build, Artifact Registry, Cloud Run, and Cloud Logging APIs.
- Instale e inicialize a CLI gcloud.
- Atualize e instale os componentes
gcloud
com o comando a seguir.gcloud components update
-
Prepare seu ambiente de desenvolvimento.
Criar a função
Crie um diretório no seu sistema local para o código de função:
Linux ou macOS
mkdir ~/helloworld_http cd ~/helloworld_http
Windows
mkdir %HOMEPATH%\helloworld_http cd %HOMEPATH%\helloworld_http
Crie um arquivo
index.php
no diretóriohelloworld_http
com o seguinte conteúdo:Esse exemplo de função recebe um nome fornecido na solicitação HTTP e retorna uma saudação, ou "Hello World!", quando nenhum nome é fornecido. Para mais discussão sobre a estrutura e os elementos obrigatórios em uma função HTTP do PHP, consulte Gravar funções HTTP.
Especificar as dependências
O PHP usa o Composer para gerenciar as dependências. Se você estiver usando o Cloud Shell, o Composer será pré-instalado. Caso contrário, siga as Instruções de instalação do Composer.
Especifique as dependências da função:
Adicione um arquivo
composer.json
com o seguinte conteúdo ao diretóriohelloworld_http
:
A linha
FUNCTION_TARGET
especifica o ponto de entrada da função.- Execute o seguinte comando no diretório
helloworld_http
:
composer require google/cloud-functions-framework
Isso adiciona o Functions Framework ao
composer.json
e cria um diretóriovendor
dentro dehelloworld_http
que contém as dependências.
Criar e testar a função localmente
Para criar e testar a função localmente antes de implantá-la, execute as seguintes etapas:
Crie um servidor da Web local executando a função
helloHttp
:export FUNCTION_TARGET=helloHttp composer start
Acesse
http://localhost:8080
em um navegador ou executecurl localhost:8080
em outra janela para testar sua função.Saiba mais em Como enviar solicitações para funções locais.
Esta função de exemplo retorna a mensagem "Hello, World!" .
Implantar a função
Para implantar a função, execute o comando a seguir no diretório helloworld_http
:
gcloud functions deploy php-http-function \
--gen2 \
--runtime=php83 \
--region=REGION \
--source=. \
--entry-point=helloHttp \
--trigger-http \
--allow-unauthenticated
Substitua REGION pelo nome da região do Google Cloud em que você quer implantar a função
(por exemplo, us-west1
).
A flag --allow-unauthenticated
opcional permite que você acesse a função
sem autenticação.
Testar a função implantada
Depois que a função for implantada, observe a propriedade
uri
na saída do comandogcloud functions deploy
ou recupere-a com o seguinte comando:gcloud functions describe php-http-function \ --region=REGION
Substitua REGION pelo nome da região do Google Cloud em que você implantou a função (por exemplo,
us-west1
).Acesse este URL no navegador. A função retorna uma mensagem "Hello World!".
Encontre também esse URL no Console do Google Cloud. Acesse a página Visão geral do Cloud Run functions e clique no nome da função para abrir a página Detalhes da função. Abra a guia TRIGGER para ver o URL da sua função.
Conferir os registros da função
Conferir os registros com a ferramenta de linha de comando
É possível analisar os registros da função com a IU do Cloud Logging ou por meio da Google Cloud CLI.
Para ver os registros da função com a CLI gcloud, use o
comando
logs read
:
gcloud functions logs read \
--gen2 \
--limit=10 \
--region=REGION \
php-http-function
Substitua REGION pelo nome da região do Google Cloud em que você implantou a função
(por exemplo, us-west1
).
A saída será assim:
LEVEL: I
NAME: hellohttp
TIME_UTC: 2023-06-02 19:01:36.067
LOG:
LEVEL: I
NAME: hellohttp
TIME_UTC: 2023-06-02 19:01:22.814
LOG: Default STARTUP TCP probe succeeded after 1 attempt for container "hello_http-1" on port 8080.
LEVEL: I
NAME: hellohttp
TIME_UTC: 2023-06-02 19:01:22.777
LOG: [pid1-nginx] Starting nginx (pid 17): /usr/sbin/nginx -c /tmp/nginxconf-953701689/nginx.conf [session:R8F8ZJ5]
LEVEL: I
NAME: hellohttp
TIME_UTC: 2023-06-02 19:01:22.766
LOG: [pid1-nginx] Successfully connected to /tmp/google-config/app.sock after 556.430499ms [session:R8F8ZJ5]
Conferir os registros com o painel do Logging
Para ver os registros da função com o painel do Logging, abra a página de visão geral do Cloud Run functions e clique no nome da função na lista. Em seguida, clique na guia Registros.