Führen Sie Python Script regelmäßig in der AWS Data Pipeline aus

Einführung

Ich denke, es gibt einige Anforderungen, die Python Script regelmäßig auf AWS ausführen möchten. Es kann realisiert werden, indem EC2 eingerichtet und mit cron ausgeführt wird. Hier werde ich jedoch einen Einblick geben, wie es mithilfe der AWS Data Pipeline realisiert werden kann.

Beachten Sie jedoch, dass der Ausführungszyklus als Einschränkung der Datenpipeline nur auf 15 Minuten oder mehr festgelegt werden kann und nicht jede Minute ausgeführt werden kann.

Es ist auch möglich, die Lambda-Funktion in [Data Pipeline] regelmäßig auszuführen. ](Http://qiita.com/taka4sato/items/e98690742d0092dd8779) Wenn das Skript Node.js oder Java ist, ist es meiner Meinung nach einfacher, dies auf diese Weise zu tun.

Gesamtdurchfluss

Der Fluss der einzustellenden Elemente ist wie folgt. Es wird davon ausgegangen, dass das Python-Skript selbst bereits fertiggestellt wurde.

Platzieren Sie Python Script auf S3 Bucket

Erstellen einer Datenpipeline

Überprüfen Sie das Verarbeitungsergebnis der Datenpipeline

Ergänzung

Platzieren Sie Python Script auf S3 Bucket

Erstellen eines S3-Buckets

Erstellen Sie einen S3-Bucket, um das Python-Skript zu platzieren. Natürlich kann der vorhandene Eimer verwendet werden. Gehen Sie zu AWS Console → S3 und führen Sie die folgenden Schritte aus, um einen S3-Bucket zu erstellen.

Laden Sie Python Script in S3 Bucket hoch

Führen Sie die folgenden Schritte aus, um Python Script in S3 Bucket hochzuladen.

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')

Erstellen einer Datenpipeline

Erstellen einer Datenpipeline

Gehen Sie zu AWS Console → Datenpipeline und erstellen Sie eine Datenpipeline, indem Sie die folgenden Schritte ausführen.

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

Wählen Sie mit dieser Einstellung "Architekt bearbeiten", um einmal eine Datenpipeline zu erstellen. Nach der Erstellung werden zwei IAM-Rollen in der IAM-Rolle erstellt: "DataPipelineDefaultResourceRole" und "DataPipelineDefaultRole".

IAM-Rollenberechtigungseinstellungen

Da einige Berechtigungen unmittelbar nach dem Erstellen der IAM-Rolle nicht ausreichen, erteilen Sie S3 Zugriffsberechtigungen für "DataPipelineDefaultResourceRole" und "DataPipelineDefaultRole". Gehen Sie zu AWS Console → Identity & Access Management → Rollen und führen Sie die folgenden Schritte aus, um Berechtigungen zu erteilen.

Legen Sie die gleichen Berechtigungen für "DataPipelineDefaultRole" fest

Datenpipeline aktivieren

Gehen Sie zu AWS Console → Datenpipeline und aktivieren Sie die soeben erstellte Datenpipeline.

Die periodische Ausführung der Datenpipeline ist jetzt aktiviert. Es läuft alle 15 Minuten, also warten wir eine Weile.

Überprüfen Sie das Verarbeitungsergebnis der Datenpipeline

Gehen Sie zu AWS Console → Datenpipeline, wählen Sie "Test Pipeline", wählen Sie "Stdout" unter "CliActivity" → "Registerkarte" Versuche "und bestätigen Sie, dass die aktuelle Zeit von Python Script ausgegeben wird.

Ergänzung zu ShellScript

Ich habe nicht viel getan, aber ich werde den Inhalt des obigen ShellScript ergänzen.

Alarm bei Fehler überspringen

Es ist auch möglich, Alarm-E-Mails mit der AWS SNS-Funktion zu überspringen, wenn Python Script fehlschlägt. Ich werde die Erklärung von AWS SNS selbst weglassen, aber ich werde die Einstellungen in der Datenpipeline kurz ergänzen.

Es ist in Ordnung, wenn Sie einstellen. Es ist möglich, AWS SNS zum Zeitpunkt des Skriptfehlers oder -erfolgs auszulösen. Vergessen Sie nicht, die Rollenberechtigung zum Ausführen von Sns zu erteilen.

Schließlich

Wenn Python Script regelmäßig mit Data Pipeline ausgeführt werden kann, müssen Hosts nicht einzeln für die regelmäßige Ausführung gesichert oder verwaltet werden, und es werden verschiedene Fortschritte erzielt.

Recommended Posts

Führen Sie Python Script regelmäßig in der AWS Data Pipeline aus
Führen Sie regelmäßig Python-Programme auf AWS Lambda aus
[Python] Hinweise zur Datenanalyse
[Schatzdaten] [Python] Führen Sie mit dem TD-Client eine Abfrage zu Schatzdaten aus.
Erstellen einer Umgebung zum Ausführen von Python-Programmen unter AWS EC2
Führen Sie das Python-Skript aus der Batchdatei aus
Führen Sie Python planmäßig auf AWS Lambda aus
Führen Sie Python Script während CodeSys # RunTime aus
AWS Layer Creation Script für Python
Führen Sie Python regelmäßig auf Heroku Scheduler aus
Datenpipeline-Aufbau mit Python und Luigi
Führen Sie Python-Code unter C ++ aus (mit Boost.Python).
Führen Sie das Python-Skript mit TS-220 cron aus
[Python] Führen Sie Headless Chrome unter AWS Lambda aus
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 018 Erläuterung
[Version 2020] So installieren Sie Python3 auf EC2 von AWS
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 023 Erläuterung
Python-Entwicklung unter Ubuntu unter AWS EC2 (mit Jupyter Lab)
Folium: Visualisieren Sie Daten auf einer Karte mit Python
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 017 Erläuterung
[Node-RED] Führen Sie Python in einer virtuellen Anaconda-Umgebung von Node-RED aus [Anaconda] [Python]
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 026 Erläuterung
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 016 Erläuterung
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 024 Erläuterung
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 027 Erläuterung
Versuchen Sie, MLB-Daten auf Mac und Python zu importieren
TensorFlow: Führen Sie in Python gelernte Daten unter Android aus
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 029 Erläuterung
Führen Sie Python auf Apache aus, um InfluxDB-Daten anzuzeigen
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 015 Erläuterung
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 028 Erläuterung
Skript-Python-Datei
Python unter Windows
Python-Skript-Skelett
Twitter mit Python3
Datenanalyse Python
Python-Skript-Profilerstellung
Importieren Sie ein Python-Skript
Python auf Mac
Jupyter auf AWS
Python auf Windbg
[Python] Daten lesen
# 2 Erstellen Sie eine Python-Umgebung mit einer EC2-Instanz von AWS (ubuntu18.04).
Überprüfen Sie types_map, wenn Sie Mimetypen mit AWS Lambda (Python) verwenden.
Stellen Sie die Python 3-Funktion mit Serverless Framework unter AWS Lambda bereit
Unterstützung für Python 2.7-Laufzeit auf AWS Lambda (ab 2020.1)
Ich möchte Lambda mit Python auf Mac AWS!
MySQL-Installation unter Aws Linux 2 und Vorbereitung der Testdaten