En este instructivo, se muestra cómo usar Cloud Tasks dentro de una aplicación de App Engine para activar una función de Cloud Run y enviar un correo electrónico programado.
Objetivos
- Comprender el código en cada uno de los componentes
- Crear una cuenta de SendGrid
- Descargue el código fuente
- Implementar una función de Cloud Run para recibir solicitudes de Cloud Tasks y enviar un correo electrónico a través de la API de SendGrid
- Crear una cola de Cloud Tasks
- Crea una cuenta de servicio para autenticar tus solicitudes de Cloud Tasks.
- Implementar el código del cliente que permite que un usuario envíe un correo electrónico
Costos
Cloud Tasks, Cloud Run Functions y App Engine tienen un nivel gratuito, por lo que, siempre que ejecutes el instructivo dentro del nivel gratuito de los productos determinados, no deberías generar costos adicionales. Para obtener más información, consulta Precios.
Antes de comenzar
Selecciona o crea un Google Cloud proyecto de.
Inicializa una aplicación de App Engine en tu proyecto:
En la página Bienvenido a App Engine, haz clic en Crear aplicación.
Selecciona una región para tu aplicación. Esta ubicación servirá como parámetro
LOCATION_IDpara tus solicitudes de Cloud Tasks, así que anótala. Ten en cuenta que hay dos ubicaciones, llamadas europe-west y us-central en los comandos de App Engine, que se llaman europe-west1 y us-central1 en los comandos de Cloud Tasks.Selecciona Node.js para el lenguaje y Estándar para el entorno.
Si aparece la ventana emergente Habilitar facturación, selecciona tu cuenta de facturación. Si no tienes una cuenta de facturación, haz clic en Crear cuenta de facturación y sigue el asistente.
En la página Comenzar, haz clic en Siguiente. Te ocuparás de esto más adelante.
Habilita las APIs de Cloud Run Functions y Cloud Tasks.
Instala e inicializa la gcloud CLI.
Comprende el código
En esta sección, se explica el código de la app y su funcionamiento.
Crea la tarea
La página de índice se entrega con controladores en app.yaml. Las variables necesarias para la creación de tareas se pasan como variables de entorno.
Este código crea el extremo /send-email. Este extremo controla los envíos de formularios desde la página de índice y pasa esos datos al código de creación de tareas.
Este código crea la tarea y la envía a la cola de Cloud Tasks. El código compila la tarea de la siguiente manera:
Especifica el tipo de destino como
HTTP Request.Especifica el
HTTP methodque se usará y elURLdel destino.Establece el encabezado
Content-Typeenapplication/jsonpara que las aplicaciones descendentes puedan analizar la carga útil estructurada.Agrega un correo electrónico de la cuenta de servicio para que Cloud Tasks pueda proporcionar credenciales al destino de la solicitud, que requiere autenticación. La cuenta de servicio se crea por separado.
Verifica que la entrada del usuario para la fecha esté dentro del máximo de 30 días y agrega a la solicitud como campo
scheduleTime.