Envoyez une notification à l'utilisateur 2 heures après l'inscription.
setTimeout (() => {/ * envoyer une notification * /}, 2 * 60 * 60 * 1000);
n'est pas une option dans les environnements sans serveur car la fonction se termine après l'exécution (donc elle doit être apatride).
Les événements CloudWatch peuvent planifier des appels lambda à l'aide d'expressions cron - mais cela a été conçu pour les appels répétitifs (il y a une limite de 100 règles / région).
Je n'ai pas vu d'options de planification dans AWS SNS / SQS ou GCP Pub / Sub. Existe-t-il des alternatives avec la planification?
Je souhaite éviter (si possible) de configurer un courtier de messages dédié (exagération) ou une instance avec état / sans serveur - existe-t-il un moyen sans serveur de le faire?
Je peux mettre les événements en file d'attente dans une base de données et appeler une fonction lambda toutes les minutes pour interroger la base de données pour les événements à exécuter dans cette minute ... y a-t-il une solution plus élégante?
3 Réponses :
Utilisez les fonctions AWS Step, elles sont comme des fonctions sans serveur qui n'ont pas la limite de 15 minutes comme AWS Lambda. Vous pouvez concevoir un flux de travail dans l'étape AWS qui s'intègre à API Gateway, Lambda et SNS pour envoyer des notifications par e-mail et texte comme suit:
Un exemple rudimentaire est fourni par AWS avec son exemple Task Timer.
Des choses sont à venir sur GCP pour ce faire, mais pas très bientôt. Ainsi, aujourd'hui, la solution est d'interroger une base de données.
Vous pouvez faire cela avec Datastore / firestore avec la date d'exécution indexée (pour éviter de lire tous les documents chaque minute). Mais faites attention aux pics de trafic, vous pourriez créer un hotspot.
Vous pouvez utiliser Cloud Scheduler sur Google Cloud Platform. Comme indiqué dans la documentation officielle:
Cloud Scheduler est un planificateur de tâches Cron de niveau entreprise entièrement géré. Il vous permet de planifier pratiquement n'importe quel travail, y compris les travaux par lots, les travaux Big Data, les opérations d'infrastructure cloud, etc. Vous pouvez tout automatiser, y compris les tentatives en cas d'échec pour réduire le travail manuel et l'intervention. Cloud Scheduler agit même comme une seule vitre, vous permettant de gérer toutes vos tâches d'automatisation à partir d'un seul endroit.
Ici, vous pouvez consulter un démarrage rapide pour l'utiliser avec Pub / Fonctions Sub et Cloud.
Google Cloud Scheduler ressemble à CloudWatch Events - il est conçu pour les tâches répétitives / cron - il existe une limite de 250 tâches a>.
Dans le cas où vos appels ne devraient pas être répétitifs, vous pouvez également consulter Cloud Tasks: cloud.google. com / tasks / docs / double aperçu
Examinez les tâches Google Cloud.
@DougStevenson Google Cloud Tasks semble idéal pour cela - merci! Je vais essayer.