[PYTHON] Facilitez la spécification de l'heure d'AWS CloudWatch Events avec CDK.

Comme tous échouent, j'ai décidé de le spécifier avec JST et de le convertir en UTC avec CDK.

Définir les événements CloudWatch dans CDK

Pour le moment, seule la définition de CloudWatch Events. Quoi que vous combiniez avec les fonctions Step.

#Définir la planification des lots dans JST (dans l'expression cron)*L'endroit à faire est vide)
props['schedule'] = {
    'minute': 40,
    'hour': 9,
    'week_day': 'MON-FRI'
}

#Convertir JST en 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 S'il fonctionne à 9 heures du matin au début du mois, faites-le fonctionner à une date comme la fin du mois et jugez par Lambda etc.
if props['schedule'].get('day') == 0:
    props['schedule']['day'] = '28-31'

# props['schedule']Convertir le contenu en 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'])
)

Jugement avant 9h00 au début du mois (fin UTC) Lambda

Seul le fait que ce soit le début du mois (1er) de JST est jugé et True ou False est renvoyé. Si vous voulez l'incorporer dans Step Functions, vous pouvez juger de la valeur de retour de this et le laisser s'écouler ensuite ou se terminer, et s'il s'agit d'un processus simple, vous pouvez continuer le traitement avec ʻif result: `dans ce Lambda.

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

fin

Je serais reconnaissant à tout homme sage qui sait quelque chose de mieux de le signaler.

Recommended Posts

Facilitez la spécification de l'heure d'AWS CloudWatch Events avec CDK.
Quand j'ai essayé de créer un VPC avec AWS CDK mais que je n'ai pas pu le faire
Rendre avec la syntaxe facile
J'ai essayé de créer un site qui permet de voir facilement les informations mises à jour d'Azure
Pour activer la connexion depuis l'extérieur (autre que localhost) avec dev_appserver.py de GAE / Py
[AWS] [GCP] J'ai essayé de rendre les services cloud faciles à utiliser avec Python
[Zaif] J'ai essayé de faciliter le commerce de devises virtuelles avec Python
J'ai essayé de créer un service de raccourcissement d'url sans serveur avec AWS CDK
Mettez à jour les données en les téléchargeant sur s3 d'aws avec une commande, et supprimez les données utilisées (en chemin)
Je voulais utiliser le module de recherche d'Ansible2, mais cela a pris du temps, alors prenez note
Paramètres qui permettent de voir plus facilement l'échelle et l'étiquette de la figure même avec un thème sombre avec google Colaboratory
Utilisez Pillow pour rendre l'image transparente et en superposer une partie seulement
Spécifiez les positions de début et de fin des fichiers à inclure avec qiitap
Spécifiez le fichier exécutable Python à utiliser avec virtualenv
L'arrière-plan des caractères de l'image texte est surexposé pour faciliter la lecture.
GradCAM avec 22 lignes de code. tf_explain peut être facile à utiliser, je le recommande!
J'ai essayé de faire quelque chose comme un chatbot avec le modèle Seq2Seq de TensorFlow
Une histoire sur la tentative de contribuer à l'analyse COVID-19 avec l'offre gratuite d'AWS et l'échec
C'était un peu difficile de faire flacon avec la version docker de nginx-unit
Je voulais juste extraire les données de la date et de l'heure souhaitées avec Django
Il est facile d'exécuter SQL avec Python et de générer le résultat dans Excel
Un moyen simple de vérifier la source des modules Python
Ajoutez des informations au bas de la figure avec Matplotlib
[Python] Comment spécifier l'emplacement de téléchargement avec youtube-dl
Essayez d'obtenir le contenu de Word avec Golang
Spécifiez MinGW comme compilateur utilisé dans Python
[Python] Résumé de la façon de spécifier la couleur de la figure
[Selenium] Comment spécifier le chemin relatif de chromedriver?
Le son émis par M. Tick sur le lieu de travail est ... J'ai réussi à le faire avec le code
J'ai essayé de publier automatiquement sur ChatWork au moment du déploiement avec Fabric et ChatWork Api
[Introduction au modèle SIR] Prédire l'heure de fin de chaque pays avec l'ajustement des données COVID-19 ♬
J'ai essayé de résoudre le problème de F02 comment écrire en temps réel hors ligne avec Python
Notez ce que vous voulez faire à l'avenir avec Razpai
L'explication la plus facile à comprendre au monde sur la création de LINE BOT (3) [Coopération avec un serveur avec Git]
Un script qui facilite la création de menus riches avec l'API de messagerie LINE
Renvoyez les données d'image avec Flask of Python et dessinez-les dans l'élément canvas de HTML
Un moyen simple de visualiser le temps pris en Python et un moyen plus intelligent de l'améliorer
Comment obtenir les informations des organisations, Cost Explorer d'un autre compte AWS avec Lambda (python)
J'ai essayé de trouver l'entropie de l'image avec python
Spécifiez le nom du projet de docker-compose avec l'intégration Docker de Pycharm
J'ai essayé de trouver la moyenne de plusieurs colonnes avec TensorFlow
Facilitez la compréhension de l'affichage des exceptions du module Python
La première API à créer avec le framework Python Djnago REST
Vous qui coloriez le journal pour le rendre plus facile à voir
Exécutons la commande à temps avec le bot discord
Exporter les journaux CloudWatch vers S3 avec AWS Lambda (Pythyon ver)
Paramètres pour entrer et déboguer le contenu de la bibliothèque avec VS Code
Reformatez l'axe des temps du graphique de la série chronologique des pandas avec matplotlib
Essayez d'automatiser le fonctionnement des périphériques réseau avec Python
Réalisez l'arrêt automatique de l'instance EC2 avec Lambda + CloudWatch Events
Je veux connaître la légende du monde des technologies informatiques
Récupérez la source de la page à charger indéfiniment avec python.
Essayez d'extraire les caractéristiques des données de capteur avec CNN
Calcul de base des pandas pour profiter de Hakone Ekiden tout en rivalisant avec les meilleurs membres de tous les temps
J'ai essayé de déverrouiller l'entrée 2 lock sésame d'une simple pression sur le bouton AWS IoT