[PYTHON] Machen Sie es sich einfach, die Zeit von AWS CloudWatch-Ereignissen mit CDK anzugeben.

Da alle fehlschlagen, habe ich beschlossen, es mit JST anzugeben und mit CDK in UTC zu konvertieren.

Definieren Sie CloudWatch-Ereignisse in CDK

Derzeit nur die Definition von CloudWatch-Ereignissen. Was auch immer Sie dies mit Schrittfunktionen kombinieren.

#Batch-Zeitplan in JST definieren (in Cron-Ausdruck)*Der Ort ist leer)
props['schedule'] = {
    'minute': 40,
    'hour': 9,
    'week_day': 'MON-FRI'
}

#Konvertieren Sie JST in UTC
if props['schedule'].get('hour') is not None:
    props['schedule']['hour'] = props['schedule']['hour'] - 9
    if props['schedule']['hour'] < 0:
        props['schedule']['hour'] += 24
        if props['schedule'].get('day') is not None:
            props['schedule']['day'] = props['schedule']['day'] - 1
        
#JST Wenn es zu Beginn des Monats bis 9 Uhr morgens in Betrieb ist, betreiben Sie es an einem Datum wie dem Monatsende und urteilen Sie nach Lambda usw.
if props['schedule'].get('day') == 0:
    props['schedule']['day'] = '28-31'

# props['schedule']Konvertieren Sie den Inhalt in str
for key in props['schedule'].keys():
    props['schedule'][key] = str(props['schedule'][key])
    
# Cloud Watch Events
Rule = events.Rule(
    app, f"Batch-{id}",
    schedule=events.Schedule.cron(**props['schedule'])
)

Urteil vor 9:00 Uhr zu Monatsbeginn (Ende UTC) Lambda

Es wird nur beurteilt, ob es der Beginn des Monats (1.) von JST ist und Richtig oder Falsch zurückgegeben wird. Wenn Sie es in StepFunctions integrieren möchten, können Sie den Rückgabewert beurteilen und als nächstes oder Ende fließen lassen. Wenn es sich um einen einfachen Prozess handelt, können Sie die Verarbeitung mit "if result:" in diesem Lambda fortsetzen.

import datetime
import calendar


def lambda_handler(event, context):
    print('===Start Lambda===')
    print(event)
    
    dt_now = datetime.datetime.now()
    monthrange = calendar.monthrange(dt_now.year, dt_now.month)[1]
    
    result = dt_now.day == monthrange
    
    print(result)
    
    return result

Ende

Ich wäre dankbar, wenn ein weiser Mann, der etwas besser weiß, darauf hinweisen könnte.

Recommended Posts

Machen Sie es sich einfach, die Zeit von AWS CloudWatch-Ereignissen mit CDK anzugeben.
Als ich versuchte, eine VPC mit AWS CDK zu erstellen, konnte ich es aber nicht schaffen
Machen Sie es mit der Syntax einfach
Ich habe versucht, eine Site zu erstellen, mit der die aktualisierten Informationen von Azure einfach angezeigt werden können
So aktivieren Sie die Verbindung von außerhalb (außer localhost) mit dev_appserver.py von GAE / Py
[AWS] [GCP] Ich habe versucht, die Verwendung von Cloud-Diensten mit Python zu vereinfachen
[Zaif] Ich habe versucht, den Handel mit virtuellen Währungen mit Python zu vereinfachen
Ich habe versucht, einen URL-Verkürzungsdienst mit AWS CDK serverlos zu machen
Laden Sie Daten mit einem Befehl und einer Aktualisierung auf s3 von aws hoch und löschen Sie die verwendeten Daten (unterwegs).
Ich wollte das Suchmodul von Ansible2 verwenden, aber es hat einige Zeit gedauert, machen Sie sich also eine Notiz
Einstellungen, die es einfacher machen, den Maßstab und die Beschriftung der Figur auch bei einem dunklen Thema mit Google Colaboratory zu sehen
Verwenden Sie Pillow, um das Bild transparent zu machen und nur einen Teil davon zu überlagern
Geben Sie die Start- und Endpositionen der Dateien an, die in qiitap enthalten sein sollen
Geben Sie die ausführbare Python-Datei an, die mit virtualenv verwendet werden soll
Der Hintergrund der Zeichen im Textbild ist überbelichtet, um das Lesen zu erleichtern.
GradCAM mit 22 Codezeilen. tf_explain ist möglicherweise einfach zu bedienen, ich empfehle es!
Ich habe versucht, mit dem Seq2Seq-Modell von TensorFlow so etwas wie einen Chatbot zu erstellen
Eine Geschichte über den Versuch, mit der kostenlosen Stufe von AWS zur COVID-19-Analyse beizutragen, und das Scheitern
Mit der Docker-Version der Nginx-Einheit war es ein wenig schwierig, eine Flasche zu machen
Ich wollte nur die Daten des gewünschten Datums und der gewünschten Uhrzeit mit Django extrahieren
Es ist einfach, SQL mit Python auszuführen und das Ergebnis in Excel auszugeben
Einfache Möglichkeit, die Quelle der Python-Module zu überprüfen
Fügen Sie mit Matplotlib Informationen am unteren Rand der Abbildung hinzu
[Python] So legen Sie den Download-Speicherort mit youtube-dl fest
Versuchen Sie, den Inhalt von Word mit Golang zu erhalten
Geben Sie MinGW als den in Python verwendeten Compiler an
[Python] Zusammenfassung, wie die Farbe der Figur angegeben wird
[Selen] Wie wird der relative Pfad des Chromedriver angegeben?
Das Geräusch von Mr. Tick am Arbeitsplatz ist ... Ich habe es mit dem Code geschafft
Ich habe versucht, zum Zeitpunkt der Bereitstellung mit Fabric und ChatWork Api automatisch in ChatWork zu posten
[Einführung in das SIR-Modell] Prognostizieren Sie die Endzeit jedes Landes mit der COVID-19-Datenanpassung ♬
Ich habe versucht, das Problem von F02 zu lösen, wie man mit Python offline in Echtzeit schreibt
Notieren Sie sich, was Sie in Zukunft mit Razpai machen möchten
Die weltweit am einfachsten zu verstehende Erklärung, wie LINE BOT erstellt wird (3) [Zusammenarbeit mit dem Server mit Git]
Ein Skript, mit dem Sie mit der LINE Messaging-API auf einfache Weise umfangreiche Menüs erstellen können
Geben Sie die Bilddaten mit Flask of Python zurück und zeichnen Sie sie in das Canvas-Element von HTML
Eine einfache Möglichkeit, die in Python benötigte Zeit anzuzeigen und sie intelligenter zu verbessern
So erhalten Sie Informationen von Organisationen, Cost Explorer eines anderen AWS-Kontos bei Lambda (Python)
Ich habe versucht, die Entropie des Bildes mit Python zu finden
Geben Sie den Projektnamen von Docker-Compose mit Docker-Integration von Pycharm an
Ich habe versucht, mit TensorFlow den Durchschnitt mehrerer Spalten zu ermitteln
Erleichtern Sie die Anzeige von Python-Modulausnahmen
Die erste API, die mit dem Python Djnago REST-Framework erstellt wurde
Sie, die das Protokoll ausmalen, um es besser sehen zu können
Lassen Sie uns den Befehl pünktlich mit dem Bot der Zwietracht ausführen
Ausgabe von CloudWatch-Protokollen an S3 mit AWS Lambda (Pythyon ver)
Einstellungen zum Eingeben und Debuggen des Inhalts der Bibliothek mit VS-Code
Formatieren Sie die Zeitachse des Pandas-Zeitreihendiagramms mit matplotlib neu
Versuchen Sie, den Betrieb von Netzwerkgeräten mit Python zu automatisieren
Realisieren Sie den automatischen Stopp der EC2-Instanz mit Lambda + CloudWatch-Ereignissen
Ich möchte die Legende der IT-Technologiewelt kennenlernen
Holen Sie sich die Quelle der Seite unbegrenzt mit Python zu laden.
Versuchen Sie, Merkmale von Sensordaten mit CNN zu extrahieren
Grundlegende Berechnung von Pandas, um Hakone Ekiden zu genießen und gleichzeitig mit den besten Mitgliedern aller Zeiten zu konkurrieren
Ich habe versucht, den Sesam für Eingang 2 mit einem einzigen Druck auf die AWS IoT-Taste zu entsperren