Exécuter périodiquement un script Python sur AWS Data Pipeline

introduction

Je pense qu'il y a pas mal de besoins qui souhaitent exécuter régulièrement Python Script sur AWS. Cela peut être réalisé en configurant EC2 et en l'exécutant avec cron, mais ici je vais donner un aperçu de la façon de le réaliser en utilisant la fonction d'AWS Data Pipeline.

Cependant, veuillez noter qu'en tant que limitation de Data Pipeline, le cycle d'exécution ne peut être défini que sur 15 minutes ou plus, et il ne peut pas être exécuté toutes les minutes.

Il est également possible d'exécuter périodiquement la fonction Lambda dans Data Pipeline. Si le script est Node.js ou Java, je pense que c'est plus facile de le faire de cette façon.

Flux global

Le flux des éléments à définir est le suivant. On suppose que le script Python lui-même est déjà terminé.

Placer le script Python sur le compartiment S3

Créer un pipeline de données

Vérifier le résultat du traitement de Data Pipeline

Supplément

Placer le script Python sur le compartiment S3

Créer un compartiment S3

Créez un compartiment S3 pour placer le script Python. Bien entendu, le Bucket existant peut être utilisé. Accédez à AWS Console → S3 et suivez les étapes ci-dessous pour créer un compartiment S3.

Télécharger le script Python dans le compartiment S3

Suivez les étapes ci-dessous pour télécharger le script Python dans le compartiment S3.

datapipeline_test.py



#!/usr/bin/env python
# -*- coding: utf-8 -*-

import datetime
print 'Script run at ' + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')

Créer un pipeline de données

Créer un pipeline de données

Accédez à AWS Console → Data Pipeline et créez un Data Pipeline en suivant les étapes ci-dessous.

sudo yum -y install python-devel gcc && sudo update-alternatives --set python /usr/bin/python2.7 && curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py" && sudo python ./get-pip.py && pip install boto3 --user && aws s3 cp s3://datapipeline-python-test/datapipeline_test.py ./datapipeline_test.py && cat datapipeline_test.py && python ./datapipeline_test.py

Sélectionnez ʻEdit Architectavec ce paramètre pour créer une fois un pipeline de données. Une fois créés, deux rôles IAM seront créés dans le rôle IAM:DataPipelineDefaultResourceRole et DataPipelineDefaultRole`.

Paramètres d'autorisation du rôle IAM

Étant donné que certaines autorisations sont insuffisantes immédiatement après la création du rôle IAM, accordez des autorisations d'accès à S3 à «DataPipelineDefaultResourceRole» et «DataPipelineDefaultRole». Accédez à AWS Console → Identity & Access Management → Rôles et suivez les étapes ci-dessous pour accorder des autorisations.

Définissez les mêmes autorisations pour DataPipelineDefaultRole

Activer le pipeline de données

Accédez à AWS Console → Data Pipeline et activez le Data Pipeline que vous venez de créer.

L'exécution périodique du Data Pipeline est maintenant activée. Il fonctionne toutes les 15 minutes, alors attendons un peu.

Vérifier le résultat du traitement de Data Pipeline

Accédez à AWS Console → Data Pipeline, sélectionnez Test Pipeline, sélectionnez Stdout dans CliActivity → ʻAttempts tab`, et confirmez que l'heure actuelle est sortie par Python Script.

Supplément sur ShellScript

Je n'ai pas fait grand-chose, mais je vais compléter le contenu du ShellScript ci-dessus.

Ignorer l'alarme en cas d'échec

Il est également possible d'ignorer l'e-mail d'alarme à l'aide de la fonction AWS SNS lorsque le script Python échoue. J'omettrai l'explication d'AWS SNS lui-même, mais je compléterai brièvement les paramètres sur le pipeline de données.

C'est OK si vous définissez. Il est possible de déclencher AWS SNS au moment de l'échec ou de la réussite du script. N'oubliez pas de donner l'autorisation de rôle pour exécuter Sns.

finalement

Si le script Python peut être exécuté périodiquement avec Data Pipeline, il n'est pas nécessaire de sécuriser / gérer individuellement les hôtes pour une exécution périodique ou une exécution de garantie, et divers progrès seront réalisés.

Recommended Posts

Exécuter périodiquement un script Python sur AWS Data Pipeline
Exécutez régulièrement des programmes Python sur AWS Lambda
[Python] Notes sur l'analyse des données
[Treasure Data] [Python] Exécutez une requête sur Treasure Data à l'aide du client TD.
Création d'un environnement pour exécuter des programmes Python sur AWS EC2
Exécuter le script Python à partir du fichier de commandes
Exécutez Python selon la planification sur AWS Lambda
Exécuter le script Python pendant CodeSys # RunTime
Script de création de couche AWS pour python
Exécutez régulièrement Python sur Heroku Scheduler
Construction de pipeline de données avec Python et Luigi
Exécuter du code Python sur C ++ (en utilisant Boost.Python)
Exécuter le script Python avec TS-220 cron
[Python] Exécutez Headless Chrome sur AWS Lambda
[Python] 100 coups sur la science des données (traitement de données structurées) 018 Explication
[Version 2020] Comment installer Python3 sur EC2 d'AWS
[Python] 100 coups sur la science des données (traitement de données structurées) 023 Explication
Développement Python sur Ubuntu sur AWS EC2 (à l'aide de Jupyter Lab)
Folium: Visualisez les données sur une carte avec Python
[Python] 100 coups sur la science des données (traitement de données structurées) 017 Explication
[Node-RED] Exécuter Python sur l'environnement virtuel Anaconda à partir de Node-RED [Anaconda] [Python]
[Python] 100 coups sur la science des données (traitement de données structurées) 026 Explication
[Python] 100 coups sur la science des données (traitement de données structurées) 016 Explication
[Python] 100 coups sur la science des données (traitement de données structurées) 024 Explication
[Python] 100 coups sur la science des données (traitement de données structurées) 027 Explication
Essayez d'importer des données MLB sur Mac et Python
TensorFlow: exécuter des données apprises en Python sur Android
[Python] 100 coups sur la science des données (traitement de données structurées) 029 Explication
Exécutez Python sur Apache pour afficher les données InfluxDB
[Python] 100 coups sur la science des données (traitement de données structurées) 015 Explication
[Python] 100 coups sur la science des données (traitement de données structurées) 028 Explication
Fichier python de script
Python sur Windows
squelette de script python
twitter avec python3
Analyse de données python
Profilage de script Python
Importer un script python
python sur mac
Jupyter sur AWS
Python sur Windbg
[python] Lecture de données
# 2 Créez un environnement Python avec une instance EC2 d'AWS (ubuntu18.04)
Vérifiez types_map lors de l'utilisation de mimetypes avec AWS Lambda (Python)
Déployer la fonction Python 3 avec Serverless Framework sur AWS Lambda
Prise en charge de l'environnement d'exécution Python 2.7 sur AWS Lambda (à partir de 2020.1)
Je veux AWS Lambda avec Python sur Mac!
Installation de MySQL sur Aws Linux 2 et préparation des données de test