Criar e implantar uma função do Cloud em HTTP usando PHP
Este guia explica o processo de criação de uma função do Cloud usando o ambiente de execução PHP. Há dois tipos de Cloud Functions:
- 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 Cloud Pub/Sub ou alterações em um bucket do Cloud Storage.
O exemplo mostra como criar uma função HTTP simples.
.Estrutura do guia
- Como criar um projeto do Google Cloud usando a CLI gcloud
- Como criar uma função
- Como especificar dependências
- Como criar e testar localmente
- Como implantar a função
- Como testar a função implantada
Como criar um projeto do Google Cloud usando a CLI gcloud
- Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Ative as APIs Cloud Functions and Cloud Build.
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Ative as APIs Cloud Functions and Cloud Build.
- Instale e inicialize a CLI gcloud.
- Atualize e instale os componentes
gcloud
:gcloud components update
- Prepare seu ambiente de desenvolvimento.
Como criar uma 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.
Como especificar dependências
Use o Composer (em inglês) para gerenciar dependências em PHP. Se você ainda não tiver o Composer instalado, faça o seguinte:
Faça o download do Composer em qualquer local que você escolher.
Depois de fazer o download, mova o arquivo
composer.phar
para um diretório que esteja no caminho do sistema. Por exemplo:mv composer.phar /usr/local/bin/composer
Em seguida, especifique as dependências da função:
Adicione um arquivo
composer.json
contendo dependências ao diretório de código da função, em queFUNCTION_TARGET=FUNCTION_NAME
indica o nome da função. Neste exemplo,FUNCTION_NAME
éhelloHttp
:No diretório que contém o código da função (que também precisa conter o arquivo
composer.json
que você acabou de criar), execute o seguinte comando:composer require google/cloud-functions-framework
Isso adiciona o Functions Framework ao seu
composer.json
e cria um diretóriovendor/
no diretório de código da função que contém as dependências.
Como criar e testar localmente
Depois de concluir as etapas em Como especificar dependências, será possível criar e testar sua função localmente.
O comando a seguir cria um servidor da Web local executando a função
helloHttp
:
export FUNCTION_TARGET=helloHttp
php -S localhost:8080 vendor/bin/router.php
Se a função for criada com sucesso, ela exibirá um URL. Acesse este URL
com seu navegador da Web:
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!
Como implantar a função
Para implantar a função com um gatilho HTTP, execute o seguinte
comando no diretório helloworld_http
:
gcloud functions deploy helloHttp --runtime php82 --trigger-http --allow-unauthenticated
A flag --allow-unauthenticated
permite que você atinja a função
sem autenticação.
Para exigir autenticação, omita a sinalização.
Como testar a função implantada
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 helloHttp
A aparência será semelhante a esta:
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/helloHttp
Visite este URL no navegador. Você verá uma mensagem "Hello World!".
Tente transmitir um nome na solicitação HTTP, conforme mostrado neste URL de exemplo:
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/helloHttp?name=NAME
Você verá uma mensagem "Hello
NAME
!"
Como visualizar registros
Como usar a ferramenta de linha de comando
Os registros do Cloud Functions são visíveis na IU do Cloud Logging e na Google Cloud CLI.
Para ver os registros da função com a gccloud CLI, use o
comando gcloud logs read
, seguido pelo
nome da função:
gcloud functions logs read helloHttp
A saída será semelhante a esta:
LEVEL NAME EXECUTION_ID TIME_UTC LOG D helloHttp rvb9j0axfclb 2019-09-18 22:06:25.983 Function execution started D helloHttp rvb9j0axfclb 2019-09-18 22:06:26.001 Function execution took 19 ms, finished with status code: 200
Como usar o painel do Logging
Também é possível ver os registros do Cloud Functions no console do Google Cloud.