Standard Setup in einer Unix Shell:
Im Folgenden stellen wir ein Upload Skript, sowie eine Erklärung zum Scheduling desselben zur Verfügung. Stellen Sie sicher, dass zum Ausführen die nötigen Voraussetzungen Ihres Systems erfüllt sind.
Schritt 1: Voraussetzungen
Bitte installieren Sie die folgenden in der Tabelle aufgeführten Programme und fügen Sie diese entsprechend zu Ihrem System-PATH hinzu. Eine ausführliche Beschreibung zu diesem Prozess finden Sie weiter unten.
Hinzufügen von Systemumgebungsvariablen zum PATH auf UNIX Geräten
In dieser Anleitung führen wir Sie durch den Prozess, ein benutzerdefiniertes Verzeichnis zur PATH-Umgebungsvariable des Systems hinzuzufügen. Wir beschreiben die Vorgehensweise für das Programm Azcopy, welches wir unserem PATH hinzufügen wollen.
Der PATH ist eine Umgebungsvariable und enthält eine Liste von Ordnern / Verzeichnissen, in denen das System nach ausführbaren Programmen sucht. Damit ein beliebiges Programm über den Terminal ausgeführt werden kann, muss die ausführbare Datei in einem der im PATH gelisteten Ordner abgelegt sein
Überprüfen Sie: Wird das Programm bereits im Terminal erkannt?
which azcopy
Ist dies nicht der Fall erfolgt folgende Information:azcopy not found
Identifizieren des Verzeichnisses: Bestimmen Sie den Pfad zum Verzeichnis, welchen Sie zum PATH hinzufügen möchten, und ersetzen Sie
/Pfad/zum/azcopy-Verzeichnisin den folgenden Codebeispielen durch den tatsächlichen Pfad.
Bearbeiten der Shell-Konfigurationsdatei des Benutzers: Öffnen Sie die entsprechende Terminal-Konfigurationsdatei. Übliche Dateien sind
.bashrc,.zshrcoder.profile. Verwenden Sie Ihren bevorzugten Texteditor, um die Datei zu öffnen.
In diesem Beispiel öffnen wir die Konfigurationsdatei mittels Nano:
nano ~/.bashrc
Fügen Sie das Verzeichnis zum PATH hinzu: Fügen Sie den folgenden Code am Ende der Datei ein und ersetzen Sie
/Pfad/zum/azcopy-Verzeichnis, wie zuvor erwähnt. Dadurch wird das Verzeichnis zum PATH hinzugefügt.
export PATH=/Pfad/zum/azcopy-Verzeichnis:$PATH
Speichern und Beenden: Speichern Sie die Datei und beenden Sie den Texteditor.
Änderungen anwenden: Öffnen Sie entweder eine neue Terminal-Sitzung oder wenden Sie die Änderungen sofort auf Ihre aktuelle Sitzung an mit folgendem Befehl:
source ~/.bashrc
Überprüfung des Vorgangs: Sie sehen den aktualisierten PATH mit dem hinzugefügten Verzeichnis, welches jetzt dauerhaft verfügbar ist. Der Pfad zu unserem Programm azcopy sollte nun auch an erster Stelle vorhanden sein.
echo $PATH
Bei erneutem Ausführen des folgenden Befehls sollte azcopy nun zu erkennen sein und der Installationspfad angezeigt werden
which azcopy
Um zu überprüfen ob die Tools richtig installiert wurden und auch zum Pfad hinzugefügt wurden, öffnen Sie ein Terminal und geben sie die in der Tabelle aufgeführten Befehle ein.
az version
azcopy --version
Schritt 2: Aufsetzen des Datentransfers:
Unter Unix Systemen kann der Upload über ein Shell-Skript durchgeführt werden. Sie erhalten das für Sie vorbereitete Skript mit Ihren Zugangsdaten von dem für Ihr Onboarding zuständigen Ansprechpartner.
Damit können Sie dann die folgenden Schritte ausführen:
Ordnerstruktur aufsetzen
Erstellen Sie einen Ordner “tacto” auf Ihrem lokalen Rechner, von dem aus Sie die Daten-Exporte an Tacto übertragen.
Innerhalb des angelegten Ordners "tacto" müssen Sie dann noch 3 weitere Ordner erstellen:
"data-export"
"logs"
"skript"
Legen Sie innerhalb des "data-export" Ordners Ihr erstes Bündel an Exportdateien ab.
Erstellen Sie zusätzlich innerhalb des "logs" Ordners eine .log-Datei, mit dem Namen "scheduled-task.log”. In dieser Datei werden zukünftig Logdaten während der Datenübertragung gespeichert.
Passen Sie die entsprechenden Platzhalter im Skript wie folgt an:
SOURCE_FOLDER ="Pfad/zu/ihrem/lokalen/data-export-ordner"
LOGPATH="Pfad/zu/Ihrer/log-datei/scheduled-task.log"
Speichern Sie das Skript in einem lokalen Verzeichnis auf ihrer Maschine ab.
Geben Sie dem .sh-Skript Execution Rechte. Es ist wichtig dass Sie sich zum Ausführen des Befehls im Ordner befinden in welchem sich das Skript befindet
chmod +x <fileName>
Schritt 3: Planung des automatisierten Datentransfers mit Cron-Tasks
Die Ausführung des Skripts lässt sich über Cron-Tasks automatisieren. Dafür sind folgende Schritte nötig:
Öffnen Sie ein Terminalfenster und geben Sie den Befehl "crontab -e" ein, um die crontab-Datei zu öffnen.
Wenn dies das erste Mal ist, dass Sie Cron verwenden, wird möglicherweise ein Texteditor wie nano oder vim geöffnet, in dem Sie die Aufgaben hinzufügen können. Wählen Sie den Editor aus, mit dem Sie arbeiten möchten.
Geben Sie am Ende der crontab-Datei folgende Zeile ein, um das Skript "data-update-script.sh" wöchentlich auszuführen:
0 0 * * 0 /pfad/zu/deinem/ordner/data-update-script.sh-teeDieser Befehl führt das Skript jeden Sonntag um Mitternacht aus. Beachten Sie, dass Sie den Pfad zum Skript anpassen müssen, um das tatsächliche Verzeichnis anzugeben, in dem sich das Skript befindet.
Um das Skript zu einem anderen Zeitpunkt auszuführen passen Sie den Schedule Code an. Ein Cheat Sheet für die entsprechenden Codes findet sich hier.
Speichern Sie die Datei und schließen Sie den Editor.
Jetzt wird das Skript „data-update-script.sh" im gewünschten Rhythmus ausgeführt, solange der Cron-Daemon läuft. Sie können den Cron-Daemon überprüfen, indem Sie den Befehl systemctl status cron im Terminal eingeben. Wenn Cron nicht aktiv ist, können Sie ihn mit dem Befehl "systemctl start cron" starten.
🏁 Damit haben Sie den automatischen Datenupload auf die Tacto-Cloud erfolgreich eingerichtet!
Detaillierte Erklärung zum Azure-CLI-Tool und dessen Verwendung im Zusammenhang mit Tacto
❗Im folgenden Abschnitt wird die detailliertere Verwendung des Azure-CLI -Tools beschrieben. Der Umfang dieser Informationen geht über den Standardfall weit hinaus.
Für die Interaktion zwischen deinen Systemen und dem Tacto Azure Blob Storage werden hauptsächlich az storage fs Befehle des Azure CLI-Tools verwendet. Die folgenden Kurzfassungen sollen einen Überblick über die wichtigsten Funktionen geben. Für weitere Informationen kann die Dokumentation (Docs) zur Hilfe genommen werden.
❗ Aktuell gibt es ein Problem mit dem Azure CLI Befehl für Batch Uploads als Service Principal (siehe GitHub Issue).
Als Workaround wird empfohlen, statt des integrierten azcopy direkt die azcopy Utility zu verwenden (Docs).
Upload einer einzelnen Datei
Mit dem bereitgestellten Service Principal einloggen (siehe Credentials in der Mail).
APP_ID=<APP_ID>
CLIENT_SECRET=<CLIENT_SECRET>
TENANT_ID=<TENANT_ID>
FOLDER_NAME=<FOLDER_NAME>
az login --allow-no-subscriptions --service-principal \
-u ${APP_ID} -p ${CLIENT_SECRET} -t ${TENANT_ID}Datei hochladen.
az storage fs file upload --auth-mode login \
--file-system erp-data --account-name tactoexchange \
--path ${FOLDER_NAME}/<FILE_NAME> --source <SOURCE_PATH>
Batch Upload von Dateien
Mit dem bereitgestellten Service Principal einloggen (siehe Credentials in der Mail).
# ---SETTINGS---
# SOURCE_FOLDER needs to be replaced with the customer's directory
APP_ID=<APP_ID>
CLIENT_SECRET=<CLIENT_SECRET>
TENANT_ID=<TENANT_ID>
DESTINATION_FOLDER=<customer-id>
SOURCE_FOLDER=<"$HOME/tacto/data-export">
# ---only modify the settings above---
export AZCOPY_SPA_CLIENT_SECRET=${CLIENT_SECRET}
azcopy login --service-principal --application-id ${APP_ID} \
--tenant-id ${TENANT_ID}Dateien hochladen.
azcopy copy "${SOURCE_FOLDER}/*" "https://tactoexchange.dfs.core.windows.net/erp-data/${DESTINATION_FOLDER}" --recursive --overwrite=Falseℹ️ Laut Dokumentation sollten die Source und Destination Pfade in einfache Anführungszeichen (
') eingebettet sein.
Dateien lesen
Mit dem bereitgestellten Service Principal einloggen (siehe Credentials in der Mail).
APP_ID=<APP_ID>
CLIENT_SECRET=<CLIENT_SECRET>
TENANT_ID=<TENANT_ID>
DESTINATION_FOLDER=<customer-id>
az login --allow-no-subscriptions --service-principal -u ${APP_ID} -p ${CLIENT_SECRET} -t ${TENANT_ID}Alle Dateien im Ordner ausgeben.
az storage fs file list --file-system erp-data --account-name tactoexchange \
--output table --auth-mode login \
--path ${FOLDER_NAME}
