UiPath Documentation
uipath-cli
latest
false
Wichtig :
Dieser Inhalt wurde maschinell übersetzt. Es kann 1–2 Wochen dauern, bis die Lokalisierung neu veröffentlichter Inhalte verfügbar ist.

UiPath-CLI-Benutzerhandbuch

So: Verwalten Sie Orchestrator-Ressourcen

Das uip resource -Tool ist die allgemeine CRUD-Oberfläche über die Runtime-Ressourcen des Orchestrator: Assets, Buckets (und darin enthaltene Dateien), Bibliotheken, Warteschlangen (und Elemente), Trigger und Webhooks. Auf dieser Seite werden die täglich anfallenden Aufgaben – Massenerstellung von Assets, Verschieben von Dateien in und aus Buckets, Verteilen von Warteschlangenarbeit, Überprüfen von Triggern – als kopiert-einfügefähige Snippets gesammelt.

Die vollständige Flag-Liste für jeden Unterbefehl befindet sich auf der uip resource -Referenzseite. Diese Seite behandelt die gängigen Nutzungsmuster.

Hinweis:

uip resource unterscheidet sich von uip solution resource. Erstere ist die CRUD-Oberfläche auf Orchestrator (diese Seite). Letztere überprüft lokale Ressourcendeklarationen innerhalb einer .uipx -Lösung. Wenn Sie sich unsicher sind, sehen Sie sich das Präfix an: uip solution resource … liest nur Ihre Festplatte; uip resource … ruft immer den Orchestrator auf.

Konventionen, die Sie zuerst kennen müssen

Bevor ein Snippet funktioniert:

  • Authentifizierung. Jedes uip resource Verb ruft Orchestrator auf. Führen Sie zuerst uip login aus. Übergeben Sie --tenant <name> (kurze -t) bei einem beliebigen Verb, um den Sitzungsmandanten für einen einzelnen Aufruf zu überschreiben.
  • Ordner-Scoping. Assets, Buckets, Warteschlangen, Warteschlangenelemente und Zeit-/Warteschlangentrigger haben einen Ordner-Scope – übergeben Sie --folder-path (z. B Shared) oder --folder-key (GUID). Bibliotheken, API-Trigger und Webhooks haben einen Mandanten-Scope und lehnen die Ordner-Flags ab.
  • Schlüssel. Listenverben geben GUIDs zurück (key, identifier, uniqueKey). Übergeben Sie diese an get, update und delete. Numerische id -Felder sind intern; Übergeben Sie sie nicht an Befehle.
  • JSON ist die Standardausgabe. Jedes folgende Snippet basiert darauf; siehe Ausgabeformate.

Assets

Bereitstellung von Assets aus einer CSV-Datei massenweise

Dies ist die gängigste Aufgabe „Meine geheimen Schlüssel und Konfiguration verwalten“. Bei einer CSV-Datei wie:

name,value,type,folderPath
ApiEndpoint,https://api.example.com,Text,Shared
MaxRetries,3,Integer,Shared
Debug,false,Bool,Shared
name,value,type,folderPath
ApiEndpoint,https://api.example.com,Text,Shared
MaxRetries,3,Integer,Shared
Debug,false,Bool,Shared

Mit Bash + uip resource assets create durchlaufen:

#!/usr/bin/env bash
set -euo pipefail

# Skip the header row
tail -n +2 ./assets.csv | while IFS=, read -r name value type folder; do
  uip resource assets create "$name" "$value" \
    --folder-path "$folder" \
    --type "$type"
done
#!/usr/bin/env bash
set -euo pipefail

# Skip the header row
tail -n +2 ./assets.csv | while IFS=, read -r name value type folder; do
  uip resource assets create "$name" "$value" \
    --folder-path "$folder" \
    --type "$type"
done

Das erneute Ausführen für denselben Ordner schlägt bei Duplikaten fehl. Zwei Möglichkeiten, dies zu handhaben:

  • Upsert-Muster. Zuerst auflisten, dann create oder update pro Zeile:

    tail -n +2 ./assets.csv | while IFS=, read -r name value type folder; do
      existing=$(uip resource assets list --folder-path "$folder" --name "$name" \
        --output-filter "Data[?name=='$name'] | [0].key" --output plain)
    
      if [ -n "$existing" ] && [ "$existing" != "null" ]; then
        uip resource assets update "$existing" "$value"
      else
        uip resource assets create "$name" "$value" --folder-path "$folder" --type "$type"
      fi
    done
    tail -n +2 ./assets.csv | while IFS=, read -r name value type folder; do
      existing=$(uip resource assets list --folder-path "$folder" --name "$name" \
        --output-filter "Data[?name=='$name'] | [0].key" --output plain)
    
      if [ -n "$existing" ] && [ "$existing" != "null" ]; then
        uip resource assets update "$existing" "$value"
      else
        uip resource assets create "$name" "$value" --folder-path "$folder" --type "$type"
      fi
    done
    
  • Muster für die Lösungsbereitstellung. Deklarieren Sie Asset-Sets, die zusammen mit einem Paket ausgeliefert werden, im Lösungsmanifest und verwenden Sie uip solution deploy run --config-file – dieser Pfad ist von Natur aus idempotent. Siehe Anleitung: Packen und Veröffentlichen einer Lösung.

Assets des Typs Zugangsdaten

Zugangsdaten und geheime Assets benötigen einen Schlüssel für den Zugangsdatenspeicher:

# Find the credential store
STORE_KEY=$(uip or credential-stores list \
  --output-filter "Data[?name=='MyStore'] | [0].key" --output plain)

# Create the credential asset (value format: username:password)
uip resource assets create ApiLogin "alice:s3cr3t" \
  --folder-path Shared \
  --type Credential \
  --credential-store-key "$STORE_KEY"
# Find the credential store
STORE_KEY=$(uip or credential-stores list \
  --output-filter "Data[?name=='MyStore'] | [0].key" --output plain)

# Create the credential asset (value format: username:password)
uip resource assets create ApiLogin "alice:s3cr3t" \
  --folder-path Shared \
  --type Credential \
  --credential-store-key "$STORE_KEY"

Anmeldeinformations- und Geheimniswerte werden nie von list oder get zurückgegeben; Verwenden Sie assets get-asset-value (das noch einen Ordner-Scope benötigt), um den Live-Wert zu lesen, oder rufen Sie den Roboter auf.

Freigeben von Assets über Ordner hinweg

Einmal in Shared erstellen und dann für jeden Ordner freigeben, der es benötigt:

ASSET_KEY=$(uip resource assets list --folder-path Shared --name ApiEndpoint \
  --output-filter "Data[0].key" --output plain)

for folder in Production Staging Development; do
  uip resource assets share "$ASSET_KEY" --folder-path "$folder"
done
ASSET_KEY=$(uip resource assets list --folder-path Shared --name ApiEndpoint \
  --output-filter "Data[0].key" --output plain)

for folder in Production Staging Development; do
  uip resource assets share "$ASSET_KEY" --folder-path "$folder"
done

Mit unshare widerrufen. Die vollständige Verbliste finden Sie unter Assets .

Buckets und Bucket-Dateien

Laden Sie eine lokale Datei hoch

BUCKET_KEY=$(uip resource buckets list --folder-path Shared \
  --output-filter "Data[?name=='invoices'] | [0].key" --output plain)

uip resource bucket-files write "$BUCKET_KEY" "inbox/invoice-001.pdf" \
  --folder-path Shared \
  --file ./invoice-001.pdf
BUCKET_KEY=$(uip resource buckets list --folder-path Shared \
  --output-filter "Data[?name=='invoices'] | [0].key" --output plain)

uip resource bucket-files write "$BUCKET_KEY" "inbox/invoice-001.pdf" \
  --folder-path Shared \
  --file ./invoice-001.pdf

Der Pfad innerhalb des Buckets (inbox/invoice-001.pdf) ist das zweite Argument für write; --file ist der lokale Pfad zum Hochladen. Inhaltstyp wird automatisch erkannt; Übergeben Sie --content-type zum Überschreiben.

Laden Sie eine Datei herunter

uip resource bucket-files read "$BUCKET_KEY" "reports/summary.csv" \
  --folder-path Shared \
  --destination ./summary.csv
uip resource bucket-files read "$BUCKET_KEY" "reports/summary.csv" \
  --folder-path Shared \
  --destination ./summary.csv

Ohne --destination wird der Inhalt nach Standardwert gestreamt – nützlich für das Piping an einen Prozessor.

Auflisten und paginieren

# First page
uip resource bucket-files list "$BUCKET_KEY" --folder-path Shared

# The response carries a continuationToken — pass it back to fetch the next page
uip resource bucket-files list "$BUCKET_KEY" --folder-path Shared \
  --continuation-token "<token-from-previous-response>"
# First page
uip resource bucket-files list "$BUCKET_KEY" --folder-path Shared

# The response carries a continuationToken — pass it back to fetch the next page
uip resource bucket-files list "$BUCKET_KEY" --folder-path Shared \
  --continuation-token "<token-from-previous-response>"

Bucket-Datei-Auflistungen sind die einzige Ressource in der CLI, die ein Fortsetzungstoken anstelle einer Offset-Paginierung verwendet – die anderen Listenverben verwenden --limit / --offset.

Vorsignierte URLs

Wenn ein Roboter oder externer Dienst direkten Blobzugriff benötigt, ohne die CLI zu verwenden:

uip resource bucket-files get-upload-url "$BUCKET_KEY" "inbox/incoming.pdf" \
  --folder-path Shared --expiry-in-minutes 30

uip resource bucket-files get-download-url "$BUCKET_KEY" "reports/summary.csv" \
  --folder-path Shared --expiry-in-minutes 30
uip resource bucket-files get-upload-url "$BUCKET_KEY" "inbox/incoming.pdf" \
  --folder-path Shared --expiry-in-minutes 30

uip resource bucket-files get-download-url "$BUCKET_KEY" "reports/summary.csv" \
  --folder-path Shared --expiry-in-minutes 30

Beide geben eine zeitbegrenzte URL zurück, die auf den einzelnen Dateipfad beschränkt ist.

Warteschlangen und Warteschlangenelemente

Warteschlange erstellen

uip resource queues create InvoiceQueue \
  --folder-path Shared \
  --max-retries 3 \
  --retention-period 90
uip resource queues create InvoiceQueue \
  --folder-path Shared \
  --max-retries 3 \
  --retention-period 90

Vollständige Flag-Liste – --auto-retry, --enforce-unique-reference, --encrypted, Aufbewahrungseinstellungen – für die Warteschlangenreferenz.

Fügen Sie ein einzelnes Arbeitselement hinzu

uip resource queue-items add InvoiceQueue \
  --folder-path Shared \
  --specific-content '{"InvoiceId":"INV-001","Amount":1500}' \
  --priority High
uip resource queue-items add InvoiceQueue \
  --folder-path Shared \
  --specific-content '{"InvoiceId":"INV-001","Amount":1500}' \
  --priority High

--specific-content ist die JSON-Nutzlast, die der Roboter liest.

Massenhinzufügen aus einer Datei

cat > ./items.json <<'EOF'
[
  {"Name": "InvoiceQueue", "Priority": "Normal", "SpecificContent": {"InvoiceId":"INV-001"}},
  {"Name": "InvoiceQueue", "Priority": "Normal", "SpecificContent": {"InvoiceId":"INV-002"}}
]
EOF

ITEMS=$(jq -c . ./items.json)
uip resource queue-items bulk-add InvoiceQueue \
  --folder-path Shared \
  --queue-items "$ITEMS" \
  --commit-type StopOnFirstFailure
cat > ./items.json <<'EOF'
[
  {"Name": "InvoiceQueue", "Priority": "Normal", "SpecificContent": {"InvoiceId":"INV-001"}},
  {"Name": "InvoiceQueue", "Priority": "Normal", "SpecificContent": {"InvoiceId":"INV-002"}}
]
EOF

ITEMS=$(jq -c . ./items.json)
uip resource queue-items bulk-add InvoiceQueue \
  --folder-path Shared \
  --queue-items "$ITEMS" \
  --commit-type StopOnFirstFailure

--commit-type steuert, was passiert, wenn die Validierung einer Zeile fehlschlägt: ProcessAllIndependently (Standard), StopOnFirstFailure oder AllOrNothing.

Überprüfen Sie fehlgeschlagene Elemente

uip resource queue-items list --folder-path Shared \
  --queue-name InvoiceQueue \
  --status Failed \
  --output-filter "Data[].{key:uniqueKey, ref:reference, reason:processingException}"
uip resource queue-items list --folder-path Shared \
  --queue-name InvoiceQueue \
  --status Failed \
  --output-filter "Data[].{key:uniqueKey, ref:reference, reason:processingException}"

Verwenden Sie queue-items get-history für ein einzelnes uniqueKey , um den vollständigen Statusübergangsverlauf anzuzeigen – nützlich für die Diagnose von Wiederholungsschleifen.

Fehlgeschlagene Elemente zur Wiederholung markieren

uip resource queue-items set-review-status Retried \
  "<queue-item-key-1>" "<queue-item-key-2>"
uip resource queue-items set-review-status Retried \
  "<queue-item-key-1>" "<queue-item-key-2>"

set-review-status nimmt eine von Retried, Abandoned, Deleted.

Auslöser

Listen Sie Trigger in einem Ordner auf

uip resource triggers list --type time --folder-path Shared --enabled \
  --output-filter "Data[].{name:name, cron:startProcessCron, enabled:isEnabled}"
uip resource triggers list --type time --folder-path Shared --enabled \
  --output-filter "Data[].{name:name, cron:startProcessCron, enabled:isEnabled}"

Drei Triggertypen: time, queue und api. Übergeben Sie --type bei jedem Verb (standardmäßig time). API-Trigger haben einen Mandanten-Scope – lassen Sie --folder-path weg.

Erstellen Sie einen Zeittrigger

RELEASE_KEY=$(uip or processes list --folder-path Shared --name InvoiceProcessing \
  --output-filter "Data[0].Key" --output plain)

uip resource triggers create --type time \
  --name NightlyInvoices \
  --release-key "$RELEASE_KEY" \
  --runtime-type Unattended \
  --job-priority Normal \
  --folder-path Shared \
  --cron "0 0 2 * * ?" \
  --time-zone UTC
RELEASE_KEY=$(uip or processes list --folder-path Shared --name InvoiceProcessing \
  --output-filter "Data[0].Key" --output plain)

uip resource triggers create --type time \
  --name NightlyInvoices \
  --release-key "$RELEASE_KEY" \
  --runtime-type Unattended \
  --job-priority Normal \
  --folder-path Shared \
  --cron "0 0 2 * * ?" \
  --time-zone UTC

Der Wert --cron verwendet das 6-Feld-Format (sec min hour dayOfMonth month dayOfWeek) von Quartz, nicht das Standard-CRON. "0 0 2 * * ?" ist „jeden Tag um 02:00“.

Aktivieren oder deaktivieren Sie einen Trigger

uip resource triggers enable <trigger-key> --type time --folder-path Shared
uip resource triggers disable <trigger-key> --type time --folder-path Shared
uip resource triggers enable <trigger-key> --type time --folder-path Shared
uip resource triggers disable <trigger-key> --type time --folder-path Shared

Verwenden Sie triggers history , um einen Trigger zu diagnostizieren, der nicht ausgelöst wird – das Firewall-Protokoll zeigt fehlende Lizenzen, nicht verfügbare Maschinen und andere Upstream-Blöcke an.

Webhooks

Webhooks haben einen Mandanten-Scope. Einmal erstellen und der Webhook wird bei jedem übereinstimmenden Ereignis im Mandanten ausgelöst:

uip resource webhooks create --name JobAlerts \
  --url https://hooks.example.com/uipath \
  --events "job.completed,job.faulted" \
  --secret "$WEBHOOK_SECRET"
uip resource webhooks create --name JobAlerts \
  --url https://hooks.example.com/uipath \
  --events "job.completed,job.faulted" \
  --secret "$WEBHOOK_SECRET"

Listen Sie verfügbare Ereignistypen für einen Mandanten auf:

uip resource webhooks event-types
uip resource webhooks event-types

Testbereitstellung ohne Warten auf ein echtes Ereignis:

uip resource webhooks ping <webhook-key>
uip resource webhooks ping <webhook-key>

Bibliotheken

Bibliotheken haben einen Mandanten-Scope (nicht einen Ordner-Scope) – sie befinden sich im Mandantenfeed und werden von Paket-IDs wie MyLib:1.0.0 referenziert:

# Upload a new version
uip resource libraries upload --file ./MyLib.1.0.0.nupkg

# See all versions of a package
uip resource libraries versions MyLib

# Download a specific version
uip resource libraries download MyLib:1.0.0 --destination ./MyLib.1.0.0.nupkg
# Upload a new version
uip resource libraries upload --file ./MyLib.1.0.0.nupkg

# See all versions of a package
uip resource libraries versions MyLib

# Download a specific version
uip resource libraries download MyLib:1.0.0 --destination ./MyLib.1.0.0.nupkg

Schlüssel haben das Format PackageId:Version – keine GUID.

Tipps zum Skripting

  • Übergeben Sie immer --output-filter wenn Sie einen einzelnen Wert in eine Variable einfügen. Es vermeidet zerbrechliche jq -Aufrufe und validiert zur CLI-Parse-Zeit – siehe Skriptingmuster.
  • Listenverbesserungen geben paginierte Ergebnisse zurück--limit / --offset in den meisten, --continuation-token in Bucket-Dateien. Leere Ergebnisse (null Zeilen in Data) beenden 0 immer noch – die Listenabfrage erfolgreich; nichts übereinstimmte.
  • Die meisten Verben zum Aktualisieren/Löschen sind ordnerübergreifend – die Flag-Tabelle im Abschnitt jedes Verbs von uip resource gibt dies explizit an („Ordnerübergreifend“). Nur create und die Liste benötigen den Ordner-Scope auf diesen Ressourcen.

Siehe auch

War diese Seite hilfreich?

Verbinden

Benötigen Sie Hilfe? Support

Möchten Sie lernen? UiPath Academy

Haben Sie Fragen? UiPath-Forum

Auf dem neuesten Stand bleiben