1.0X Rescale CLI-Grundlagen

Grundlegende Übermittlungssyntax

Mit Ihrem API-Token und der lokalen Kopie der App kann ein Job mit dem folgenden Befehl übermittelt werden:

    java -jar /usr/local/bin/rescale.jar submit -p  -i 

Für Benutzer von anderen Plattformen (KR, JP, EU) siehe CLI-FAQs für zusätzliche Flags, die bei der Verwendung der Rescale-CLI erforderlich sind. Die enthält die Befehle, die der Benutzer möglicherweise auf Rescale ausführen möchte. Es kann jede Art von .sh Shell-Skript, das über die Befehlszeile mit dem Befehl ./ Präfix. Unabhängig vom Skripttyp versucht die App, das Skript zu analysieren, um unbeabsichtigte Probleme im Zusammenhang mit der Umgebungseinrichtung und nicht unterstützten Befehlen zu minimieren. Die -p Flag wird verwendet, um das von Ihnen erstellte Rescale-API-Token wie gezeigt zu lesen werden auf dieser Seite erläutert.


Vereinfachung von CLI-Befehlen

Sie können die Rescale-Befehle vereinfachen, indem Sie Wrapper-Skripte erstellen. Sie können auch die Umgebungsvariable RESCALE_API_KEY (2) setzen oder ein Profil in der Konfigurationsdatei (3) erstellen, um Folgendes wegzulassen: -p von Rescale-CLI-Befehlen. Diese zusätzlichen Schritte helfen dem Benutzer bei der Vereinfachung und einfachen Verwendung der Rescale-CLI-Befehle.

Insbesondere durch die Erstellung eines einfachen Wrapper-Skripts lassen sich einige potenzielle Fehlerquellen beim Senden eines Auftrags reduzieren.

Nachfolgend sehen Sie ein Beispiel für den Inhalt eines Bash-Wrapper-Skripts:

#!/bin/bash java -jar /usr/local/bin/rescale.jar submit -p -E -i $1

Ersetzen Sie die <api-token> mit dem Hash-String Ihres API-SchlüsseltokenDas Skript geht außerdem davon aus, dass die Rescale CLI App (rescale.jar) befindet sich in /usr/local/bin, also entsprechend ändern. Da das Skript Ihre privaten <api-token> Wert, sollte es in einem Verzeichnis in Ihrem gespeichert werden $PATH mit eingeschränkten Berechtigungen wie /usr/local/binStellen Sie außerdem sicher, dass das Skript über die entsprechenden Berechtigungen verfügt, damit es ausgeführt werden kann:

chmod +x /usr/local/bin/rescale-submit

Für die Verwendung der Rescale-CLI-Befehle muss jedes Mal der Rescale-API-Schlüssel verwendet werden. Da der API-Schlüssel eine lange Buchstabenkombination ist, empfiehlt es sich, eine Umgebungsvariable zu erstellen und in Ihrem Profil zu speichern, damit Sie bei jeder Verwendung der Befehle bequem die API-Variable anstelle des eigentlichen Schlüssels verwenden können. So erstellen Sie die Umgebungsvariable:

  • Geben Sie auf Ihrem Terminal entweder vi ~/.bashrc OR vi ~/.bash_profile und drücken Sie ENTER.
  • Dadurch wird ein Terminal-Editor geöffnet, in den Sie Folgendes eingeben können: bash export RESCALE_API_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  • Wenn Sie mit der Eingabe fertig sind, drücken Sie zuerst ESC und geben Sie dann ein :wq um die Änderungen zu speichern.
  • Sie können die Variable testen, indem Sie die Variable anzeigen mit echo $RESCALE_API_KEY. Dadurch wird der Rescale-API-Schlüssel auf dem Terminal angezeigt.

Standardmäßig sucht die CLI nach der Profildatei in ~/.config/rescale/apiconfig. Erstellen Sie die Datei (vi ~/.config/rescale/apiconfig) und fügen Sie den folgenden Inhalt hinzu:

[Standard]API-Schlüssel = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Die CLI verwendet die [default] Profil standardmäßig. Ein anderes benanntes Profil kann mithilfe der --profile Befehlszeilenargument. Es ist auch möglich, einen anderen Konfigurationsdateipfad zu verwenden, indem Sie den RESCALE_CONFIG_FILE Umgebungsvariable auf den gewünschten Pfad.

Wenn ein Benutzer mehrere Profile für verschiedene Plattformen verwendet, muss er die URL zu diesen Plattformen in der API-Konfiguration wie folgt angeben:

[Standard]apibaseurl = https://platform.rescale.comapikey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[eu]apibaseurl = https://eu.rescale.comapikey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Einen Testjob übermitteln – Hallo Welt!

Schauen wir uns ein sehr einfaches Beispiel an. Auch dieses Beispiel geht davon aus, dass Sie ein Wrapper-Skript namens rescale-submit oben gezeigt.

Um einen „Hello World!“-Job auszuführen, erstellen Sie in einem Shell-Terminal (z. B. unter Linux, MacOS oder Cygwin) ein neues Ausführungsverzeichnis. Erstellen Sie mit dem Texteditor Ihrer Wahl eine submit.sh Eingabeübermittlungsskript mit:

Hinweis: Achten Sie beim Kopieren des obigen Skripts darauf, dass nach den Umgebungsvariablen keine Leerzeichen stehen.

Senden Sie den Auftrag:

rescale-submit submit.sh

Dadurch wird ein neues Gruppe und senden Sie die Aufträge mit den Befehlen aus dem Skript. Der Benutzer kann sich nun bei der Rescale-Web-Benutzeroberfläche anmelden, um den Auftrag zu verfolgen und zu überwachen. Die Auftragsliste zeigt den Auftrag wie folgt an: "Hallo Welt"

Auftrag übermittelt

Auf der Statusseite wird der Fortschritt des Auftrags angezeigt und die Dateien können innerhalb der Benutzeroberfläche durch Klicken auf die Datei verfolgt werden:

Lebendschwänzen

Das Protokoll sieht ungefähr so aus:

Running SGE version of Rescale Client App
Executing Command.
Parsing Input Files
No existing files to include
Found Analysis: user_included
No project with the specified name was found: null
Zipping Files
Creating temporary encrypted zip at /Users/rescale/helloworld/input.zip
Finished writing encrypted file
Uploading Files
Uploading: /Users/rescale/helloworld/run.sh
Uploading run.sh:
##############################| 288B / 288B
Uploading: /Users/rescale/helloworld/input.
Uploading input.zip:
##############################| 83.08KB / 83.08KB
Job: Saving Job
Job qMCOdb: Saved
Job qMCOdb: Submitting
Job qMCOdb: Starting polling cycle
Job qMCOdb: Status - Validated
Job qMCOdb: Status - Executing
Job qMCOdb: Status - Executing
Job qMCOdb: Status - Executing
Job qMCOdb: Status - Executing
Job qMCOdb: Status - Completed
Job qMCOdb: Finished...
Job qMCOdb: Downloading files to output/
Downloading output/submit.sh
Downloading output/run.sh
Downloading output/process_output.log
Downloading output/inputs/file2
Downloading output/inputs/file1
Downloading output/hello_world
Downloading output/file0
.
.
.
Finished downloading files.