Ce tutoriel explique comment utiliser Cloud Tasks dans une application App Engine pour déclencher une fonction Cloud Run et envoyer un e-mail programmé.
Objectifs
- Comprendre le code de chacun des composants
- Créer un compte SendGrid
- Télécharger le code source
- Déployer une fonction Cloud Run pour recevoir des requêtes Cloud Tasks et envoyer un e-mail via l'API SendGrid
- Créer une file d'attente Cloud Tasks
- Créez un compte de service pour authentifier vos requêtes Cloud Tasks.
- Déployez le code client permettant à un utilisateur d'envoyer un e-mail.
Coûts
Cloud Tasks, Cloud Run Functions et App Engine disposent d'une version sans frais. Par conséquent, si vous exécutez le tutoriel dans cette version sans frais des produits concernés, cela ne devrait pas entraîner de coûts supplémentaires. Pour en savoir plus, reportez-vous à la page Tarifs.
Avant de commencer
Sélectionnez ou créez un Google Cloud projet.
Initialisez une application App Engine dans votre projet :
Sur la page Bienvenue dans App Engine, cliquez sur Créer une application.
Sélectionnez une région pour votre application. Cet emplacement servira de paramètre
LOCATION_IDpour vos requêtes Cloud Tasks. Notez-le donc. Notez que deux sites appelés europe-west et us-central dans les commandes App Engine sont appelés respectivement europe-west1 et us-central1 dans les commandes Cloud Tasks.Sélectionnez Node.js pour le langage et Standard pour l'environnement.
Si la fenêtre pop-up Activer la facturation s'affiche, sélectionnez votre compte de facturation. Si vous ne possédez pas de compte de facturation, cliquez sur Créer un compte de facturation et suivez les instructions de l'assistant.
Sur la page Premiers pas, cliquez sur Suivant. Vous vous en occuperez plus tard.
Activez les API Cloud Run Functions et Cloud Tasks.
Installez et initialisez gcloud CLI.
Comprendre le code
Cette section décrit le code de l'application et son fonctionnement.
Créer la tâche
La page d'index est diffusée à l'aide de gestionnaires dans app.yaml. Les variables nécessaires à la création de tâches sont transmises en tant que variables d'environnement.
Ce code crée le point de terminaison /send-email. Ce point de terminaison gère les envois de formulaires depuis la page d'index et transmet ces données au code de création de tâche.
Ce code crée la tâche et l'envoie à la file d'attente Cloud Tasks. Le code crée la tâche en effectuant ce qui suit :
Spécifier le type de cible comme
HTTP Request.Spécifier la méthode
HTTP methodà utiliser et la valeurURLde la cible.Définir l'en-tête
Content-Typesurapplication/jsonpour que les applications en aval puissent analyser la charge utile structurée.Ajout d'une adresse e-mail de compte de service afin que Cloud Tasks puisse fournir des identifiants à la cible de la requête, ce qui nécessite une authentification. Le compte de service est créé séparément.
Vérifier que l'entrée utilisateur pour la date est comprise dans la limite de 30 jours et l'ajouter à la requête en tant que champ
scheduleTime.
Création de l'e-mail
Ce code crée la fonction Cloud Run qui est la cible de la requête Cloud Tasks. Il utilise le corps de la requête pour créer un e-mail et l'envoyer via l'API SendGrid.