Este tutorial mostra como usar o Cloud Tasks numa aplicação do App Engine para acionar uma função do Cloud Run e enviar um email agendado.
Objetivos
- Compreenda o código em cada um dos componentes.
- Crie uma conta do SendGrid.
- Transfira o código-fonte.
- Implemente uma função do Cloud Run para receber pedidos do Cloud Tasks e enviar um email através da API SendGrid.
- Crie uma fila do Cloud Tasks.
- Crie uma conta de serviço para autenticar os seus pedidos do Cloud Tasks.
- Implemente o código do cliente que permite a um utilizador enviar um email.
Custos
O Cloud Tasks, as funções do Cloud Run e o App Engine têm um nível gratuito. Por isso, desde que esteja a executar o tutorial no nível gratuito dos produtos indicados, não deve resultar em custos adicionais. Para mais informações, consulte a secção Preços.
Antes de começar
Selecione ou crie um Google Cloud projeto.
Inicialize uma aplicação do App Engine no seu projeto:
Na página Bem-vindo ao App Engine, clique em Criar aplicação.
Selecione uma região para a sua aplicação. Esta localização vai servir como o parâmetro
LOCATION_IDpara os seus pedidos do Cloud Tasks, por isso, tome nota. Tenha em atenção que duas localizações, denominadas europe-west e us-central nos comandos do App Engine, são denominadas, respetivamente, europe-west1 e us-central1 nos comandos do Cloud Tasks.Selecione Node.js para o idioma e Standard para o ambiente.
Se for apresentado o pop-up Ativar faturação, selecione a sua conta de faturação. Se não tiver atualmente uma conta de faturação, clique em Criar conta de faturação e siga o assistente.
Na página Começar, clique em Seguinte. Vai tratar disto mais tarde.
Ative as APIs Cloud Run Functions e Cloud Tasks.
Instale e inicialize a CLI gcloud.
Compreender o código
Esta secção explica o código da app e como funciona.
Criar a tarefa
A página de índice é publicada através de controladores no app.yaml. As variáveis necessárias para a criação de tarefas são transmitidas como variáveis de ambiente.
Este código cria o ponto final /send-email. Este ponto final processa os envios de formulários da página de índice e transmite esses dados para o código de criação de tarefas.
Este código cria efetivamente a tarefa e envia-a para a fila do Cloud Tasks. O código cria a tarefa:
Especificar o tipo de destino como
HTTP Request.Especificar o
HTTP methoda usar e oURLdo destino.Definir o cabeçalho
Content-Typecomoapplication/jsonpara que as aplicações a jusante possam analisar a carga útil estruturada.Adicionar um email de conta de serviço para que o Cloud Tasks possa fornecer credenciais ao destino do pedido, o que requer autenticação. A conta de serviço é criada separadamente.
Verificar se a entrada do utilizador para a data está dentro do máximo de 30 dias e adicioná-la ao pedido como campo
scheduleTime.
Criar o email
Este código cria a função do Cloud Run que é o destino do pedido do Cloud Tasks. Usa o corpo do pedido para criar um email e enviá-lo através da API SendGrid.