2017-09-12 2 views
0

Ich habe ein Python-Skript, das liest die CSV-Datei, erstellen Tabelle in BigQuery basierend auf Daten in CSV und lädt die Daten in der Tabelle zur Laufzeit. Ich möchte dieses Skript immer dann auslösen, wenn ein Ereignis eintritt, z. B. wenn eine Datei in einem bestimmten Bucket eintrifft. Mein Python-Skript ist auf der VM-Instanz vorhanden (bis jetzt, um das Skript von der VM-Instanz auszuführen). Gibt es eine Möglichkeit, dieses Skript basierend auf einem Ereignisauslöser auszuführen?Event-Trigger zum Ausführen von Python-Skript von Google Cloud

Antwort

1

Eine Funktion von Google Cloud Storage namens 'Object Change Notifications' könnte hier nützlich sein. Dadurch wird eine Benachrichtigung an einen Web-Hook gesendet, wo Sie Ihren Verarbeitungscode zur Verarbeitung des Ereignisses verwenden können (ein Beispiel für die Ausführung auf AppEngine wird here angegeben, Sie können dies jedoch auch als einen Flask-Endpunkt implementieren).

Eine weitere Option ist die Verwendung von Pub/Sub Notifications in Kombination mit Cloud Storage, falls Sie damit besser zurechtkommen. Sie können dann die Pub/Sub Python SDK verwenden, um ein bestimmtes Thema zu hören, in dem Ihre Ereignisse ankommen, und den Code verwenden, den Sie bereits geschrieben haben, um diese Ereignisse zu verarbeiten.

+0

Vielen Dank für Dokumente Link bereitstellt. Durchgehen und hoffentlich wird es hilfreich sein. – Shikha

+0

Hallo .. Gibt es eine Möglichkeit, Python-Skript innerhalb eines Ereignisauslösers direkt aufzurufen? Mein index.js hat folgenden Code in Ereignisauslöser: exports.helloGCS = function (event, Rückruf) { const file = event.data; if (file.resourceState === 'not_exists') { console.log ('Datei $ {datei.name} gelöscht.'); } sonst if (file.metageneration === '1') { console.log ('Datei $ {file.name} hochgeladen.'); } else { console.log ('Datei $ {file.name} Metadaten aktualisiert.'); } Rückruf(); }; Kann ich aus dieser Datei heraus nur Python-Skripte aufrufen, die auf der VM-Instanz gespeichert sind? – Shikha

+0

Können Sie weitere Details zu dem, was Sie implementieren möchten, angeben? Liegt der Code über einer Google Cloud-Funktion, die Sie bereitstellen, um die Ereignisse zu verarbeiten? Verwenden Sie Object Change Notifications oder Pub/Sub? –

Verwandte Themen