Willkommen zum 5. Tag der 12 Tage von DigitalOcean! Gestern haben Sie Ihren Geburtstags-Erinnerungsdienst eingerichtet, um auf DigitaleOcean-Funktionen zu laufen, was bedeutet, dass es jetzt serverlos und cloud-fertig ist. 🎉 Heute werden Sie einen Schritt weiter gehen, indem Sie es automatisieren, damit es nach einem Zeitplan läuft – keine manuelle Eingabe erforderlich.
Am Ende dieses Leitfadens wird Ihr Dienst (oder jede andere Funktion, an der Sie arbeiten) automatisch zu einer festgelegten Zeit jeden Tag ausgeführt. Das bedeutet, dass Sie sich nicht mehr daran erinnern müssen, es selbst auszulösen – es funktioniert einfach.
Warum automatisieren?
Das Bereitstellen Ihrer Funktion in der Cloud war gestern ein großer Erfolg, aber das manuelle Ausführen widerspricht dem Zweck der Automatisierung. Der Fokus von heute liegt darauf, den Dienst so zu planen, dass er automatisch ausgeführt wird – wie ein Uhrwerk – damit Sie ihn einstellen und vergessen können. DigitalOcean Functions verfügt über eine integrierte Zeitplanung mit Triggern für diesen genauen Zweck, und Sie haben zwei Möglichkeiten, sie einzurichten.
🚀 Was Sie Lernen Werden
Am Ende des Tages werden Sie wissen, wie Sie:
- Ein tägliches Trigger-Setup einrichten, um Ihre Funktion automatisch auszuführen.
- Zwei Möglichkeiten lernen, dies zu tun – über das DigitalOcean Control Panel oder mit der
doctl
CLI undproject.yml
. - Die Einrichtung testen, um sicherzustellen, dass sie funktioniert.
🛠 Was Sie Benötigen
Bevor Sie anfangen, stellen Sie sicher, dass Sie Folgendes haben:
- Eine bereits auf DigitalOcean bereitgestellte Funktion (z.B. den Geburtstags-Erinnerungsdienst aus Tag 4: Erstellung eines Geburtstags-Erinnerungsdienstes), um sie mit Triggern zu automatisieren.
- Wenn Sie die
doctl
CLI verwenden, benötigen Sie die Dateiproject.yml
für Ihre Funktion. Sie können sich Tag 4 für Anweisungen zum Installieren und Einrichten derdoctl
CLI sowie zum Erstellen derproject.yml
Datei ansehen.
🧑🍳 Rezept für Tag 5: Automatisierung von Funktionen mit Triggern
Schritt 1: Richten Sie einen Trigger für Ihre Funktion ein
DigitalOcean bietet Ihnen zwei Optionen zum Einrichten von Triggern:
- Option 1: Verwenden Sie das Bedienfeld für eine schnelle und einfache Einrichtung.
- Option 2: Verwenden Sie die
doctl
CLI für eine robustere und programmgesteuerte Steuerung.
Warnung: Denken Sie daran, dass Trigger, die im Control Panel erstellt wurden, verloren gehen, wenn Sie die Funktion mithilfe der CLI neu bereitstellen. Wenn Sie dies häufig tun werden, verwenden Sie Option 2, um Trigger direkt zur Datei project.yml
hinzuzufügen.
Option 1: Verwenden des Control Panels zum Erstellen eines Triggers
Der einfachste Weg, einen Trigger einzurichten, erfolgt über das DigitalOcean Control Panel. Es ist schnell, erfordert keine Konfiguration und ist ideal für einfache einmalige Konfigurationen.
- Navigieren Sie zur Hauptseite der Funktionen im DigitalOcean-Dashboard.
- Finden Sie Ihre Funktion (z. B.
reminders/birthdays
) und klicken Sie auf den Trigger-Tab.
- Klicken Sie auf Trigger erstellen, fügen Sie einen Namen für Ihren Trigger hinzu. Dies kann alles Beschreibende sein, wie z. B.
täglicher-geburtstags-trigger
. Der Name darf nur alphanumerische Zeichen, Bindestriche und Punkte enthalten. - Fügen Sie einen Cron-Ausdruck hinzu, um den Zeitplan festzulegen. Zum Beispiel bedeutet
0 9 * * *
, dass die Funktion jeden Tag um 9:00 Uhr ausgeführt wird.
Hinweis: Wenn Sie nicht sicher sind, wie Cron funktioniert, werfen Sie einen Blick auf crontab.guru für eine praktische Anleitung.
- Speichern Sie den Trigger.
Nachdem Sie Ihren Trigger erstellt haben, ist es eine gute Idee, ihn zu testen, um sicherzustellen, dass alles wie erwartet funktioniert. Springen Sie zum Abschnitt Testen der Automatisierung unten, um zu erfahren, wie.
Warnung: Während das Dashboard einfach und effektiv ist, werden alle Trigger, die Sie hier erstellen, überschrieben oder gelöscht, wenn Sie die Funktion über die CLI neu bereitstellen. Bei häufigen Updates oder programmgesteuerten Bereitstellungen überspringen Sie zu Option 2.
Option 2: Verwendung der doctl
CLI mit project.yml
Sie können Trigger auch erstellen, indem Sie sie direkt in Ihre project.yml-Datei hinzufügen. Diese Methode ist zuverlässiger für häufige Neu-Bereitstellungen, da sie sicherstellt, dass Ihre Trigger immer in der Konfiguration der Funktion enthalten sind. Im Gegensatz zur zuvor beschriebenen Control Panel-Option verhindert dieser Ansatz, dass Trigger während der Neu-Bereitstellungen überschrieben oder verloren gehen.
So richten Sie es ein:
-
Öffnen Sie Ihre
project.yml
Datei aus Tag 4: Bereitstellung von Geburtstagsbenachrichtigungen mit DigitalOcean Functions. Sie könnte ungefähr so aussehen: -
Fügen Sie Ihrer Funktionskonfiguration einen
triggers
Abschnitt hinzu, um den Zeitplan zu definieren: -
Endgültig aktualisierte
project.yml
Datei:Dies sagt DigitalOcean, die
birthdays
Funktion jeden Tag um 9:00 Uhr auszuführen.-
triggers
Abschnitt: Definiert den Namen, Typ und Zeitplan für den Trigger. Sie können Ihren Trigger beliebig beschreiben, wiedaily-birthday-trigger
. -
cron
: Gibt die Zeit an, zu der die Funktion täglich in UTC ausgeführt wird. Der Cron-Ausdruck0 9 * * *
plant beispielsweise die Funktion, jeden Tag um 9:00 Uhr auszuführen.
-
-
Speichern Sie die Datei und führen Sie den folgenden Befehl aus dem Verzeichnis aus, das den
my-birthday-reminder-service
Ordner enthält:Wichtig: Stellen Sie sicher, dass Sie den Befehl aus dem übergeordneten Verzeichnis und nicht aus dem
my-birthday-reminder-service
Ordner ausführen. Ein Ausführen an der falschen Stelle kann zu einem Fehler wie diesem führen: -
Sobald die Bereitstellung erfolgreich ist, sehen Sie eine Bestätigungsmeldung, die dieser ähnlich ist:
-
Gehen Sie zu Ihrem Dashboard, um zu überprüfen, ob der Trigger im Abschnitt Funktionen erstellt wurde.
Profi-Tipp: Um Ihren Trigger zu testen, setzen Sie vorübergehend den Cron-Ausdruck auf einige Minuten von jetzt an (z. B. 28 9 * * *
, wenn es 9:25 Uhr ist). Nach Bestätigung, dass es funktioniert, setzen Sie ihn zurück auf Ihren beabsichtigten Zeitplan und führen Sie ihn erneut aus.
Schritt 2: Testen der Automatisierung
Testen wir Ihre Trigger, um sicherzustellen, dass sie funktionieren. Anstatt darauf zu warten, dass sie zu ihrer üblichen Zeit ausgelöst werden, können Sie sie vorübergehend so einstellen, dass sie in wenigen Minuten ausgeführt werden. So geht’s:
-
Legen Sie den Cron-Ausdruck für Ihren Trigger auf einige Minuten von der aktuellen Zeit (in UTC) fest. Wenn es z. B. 9:25 Uhr UTC ist, setzen Sie den Cron-Ausdruck auf
28 9 * * *
, damit die Funktion um 9:28 Uhr UTC ausgeführt wird.Hinweis: Nicht sicher, wie Sie Ihre lokale Zeit in UTC umrechnen? Tools wie Zeitzonenkonverter können helfen.
-
Speichern Sie den aktualisierten Auslöser (wenn Sie das Control Panel verwenden) oder bereitstellen Sie Ihre aktualisierte
project.yml
-Datei erneut (wenn Sie die CLI verwenden): -
Warten Sie darauf, dass der Auslöser ausgeführt wird, überprüfen Sie dann die Aktivierungs-Logs, um zu bestätigen, dass die Funktion erfolgreich ausgeführt wurde:
Hinweis: Aktivierungsprotokolle zeichnen Details darüber auf, wann Ihre Funktion ausgeführt wurde, einschließlich ob sie erfolgreich war oder Fehler aufgetreten sind. Sie sind eine hilfreiche Möglichkeit, um zu überprüfen, ob Ihr Trigger zur geplanten Zeit ausgelöst wurde.
Dieser Befehl gibt die Details der letzten Aktivierung Ihrer Funktion zurück. Zum Beispiel könnten Sie etwas wie dies sehen:
Das bestätigt, dass der Trigger ausgelöst wurde und die Funktion erfolgreich aktiviert wurde! 🎉
Hinweis: Sobald Sie bestätigt haben, dass alles funktioniert, aktualisieren Sie den Cron-Ausdruck auf Ihren gewünschten Zeitplan (z. B. 0 9 * * *
für 9:00 Uhr UTC täglich) und speichern oder redeployen Sie.
Eine kurze Anmerkung zu Protokollen
Während der Befehl Aktivierungsprotokolle
eine großartige Möglichkeit ist, um kürzliche Ausführungen zu überprüfen, benötigen Sie manchmal detailliertere Protokolle, um Probleme mit Ihrer Funktion zu debuggen oder zu untersuchen. DigitalOcean bietet auch Optionen, um diese Protokolle an externe Protokollierungsdienste weiterzuleiten, was die Überwachung und Fehlersuche Ihrer Anwendung im Laufe der Zeit erleichtert.
Am Tag 6 lernen Sie, Protokolle direkt einzusehen, sie effektiv zu interpretieren und die Protokollweiterleitung an externe Dienste wie Logtail oder Papertrail einzurichten. Diese Tools helfen Ihnen, die Leistung Ihrer Funktion leicht im Auge zu behalten.
🎁 Zusammenfassung
Das haben Sie heute erreicht:
- Sie haben Ihren Geburtstags-Erinnerungsdienst (oder eine andere Funktion) automatisiert, sodass er täglich ausgeführt wird.
- Sie haben zwei Möglichkeiten gelernt, Trigger einzurichten—über das Control Panel und mit dem
doctl
CLI. - Sie haben Ihre Einrichtung getestet, um sicherzustellen, dass sie wie erwartet funktioniert.
Hier sind die vorherigen Tutorials aus dieser Reihe:
- Tag 1: Einrichten einer PostgreSQL-Datenbank für Geburtstags-Erinnerungen
- Tag 2: Verbindung zu Ihrer PostgreSQL-Datenbank mit Python
- Tag 3: Überprüfen von Geburtstagen und Senden von SMS-Benachrichtigungen
- Tag 4: Bereitstellung von Geburtstagsbenachrichtigungen für Funktionen
Als Nächstes: Da Ihr Dienst jetzt unabhängig läuft, ist der nächste Schritt, ihn effektiv zu überwachen. Im nächsten Tutorial erfahren Sie, wie Sie Ihre Funktionsprotokolle anzeigen und an externe Dienste weiterleiten, um das Tracking und die Fehlerbehebung zu vereinfachen. Bis bald!
Source:
https://www.digitalocean.com/community/tutorials/automating-birthday-reminders-with-triggers