Criar e implantar uma função do Cloud HTTP usando Python
Este guia explica o processo de criação de uma Cloud Function usando o ambiente de execução do Python. Há dois tipos de Funções do Cloud:
- 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 GCP usando a CLI gcloud
- Como criar uma função
- Como especificar dependências
- Como implantar a função
- Como testar a função
Como criar um projeto do GCP 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 o faturamento está ativado para seu projeto na nuvem. Saiba como verificar se o faturamento está ativado em um projeto.
-
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 o faturamento está ativado para seu projeto na nuvem. Saiba como verificar se o faturamento está ativado em um projeto.
-
Ative as APIs Cloud Functions and Cloud Build.
- Instale e inicialize a gcloud CLI.
- 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 cd ~/helloworld
Windows
mkdir %HOMEPATH%\helloworld cd %HOMEPATH%\helloworld
Crie um arquivo
main.py
no diretóriohelloworld
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
Dependências no Python são gerenciadas com pip
e expressas em um arquivo de metadados chamado
requirements.txt
.
O arquivo precisa estar no mesmo diretório que o arquivo main.py
que contém o código da função.
Não é necessário criar um requirements.txt
para executar essa amostra específica,
mas suponhamos que você queira adicionar suas próprias dependências. Veja como fazer isso:
Crie um arquivo
requirements.txt
no diretóriohelloworld
.Adicione a dependência da função ao arquivo
requirements.txt
, por exemplo:# An example requirements file, add your dependencies below sampleproject==2.0.0
Como implantar a função
Para implantar a função com um gatilho HTTP, execute o seguinte
comando no diretório helloworld
:
gcloud functions deploy hello_http --runtime python39 --trigger-http --allow-unauthenticated
A sinalização --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
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 hello_http
A aparência será semelhante a esta:
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/hello_http
Visite este URL no navegador. Você verá uma mensagem "Hello World!".
Tente passar um nome na solicitação HTTP, por exemplo, usando este URL:
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/hello_http?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 ferramenta gcloud CLI, use o comando
logs read
, seguido pelo
nome da função:
gcloud functions logs read hello_http
A saída será semelhante a esta:
LEVEL NAME EXECUTION_ID TIME_UTC LOG D hello_http pdb5ys2t022n 2019-09-18 23:29:09.791 Function execution started D hello_http pdb5ys2t022n 2019-09-18 23:29:09.798 Function execution took 7 ms, finished with status code: 200
Como usar o painel do Logging
Você também pode ver os registros do Cloud Functions no Console do Cloud.