UiPath Documentation
uipath-cli
latest
false
Guide de l'utilisateur de UiPath CLI
Important :
Ce contenu a été traduit à l'aide d'une traduction automatique. La localisation du contenu nouvellement publié peut prendre 1 à 2 semaines avant d’être disponible.

Comment gérer les ressources d’Orchestrator

Tâches quotidiennes pour la gestion des ressources de runtime Orchestrator avec `uip ou`, couvrant les ressources, les compartiments, les bibliothèques, les files d'attente, les déclencheurs et les Webhooks.

uip or est la surface CRUD à usage général des ressources d’exécution d’Orchestrator: ressources, compartiments (et fichiers à l’intérieur), bibliothèques, files d’attente (et éléments), déclencheurs et webhooks — avec les commandes de tâches, de processus et de dossiers documentées ailleurs dans ce guide. Cette page collecte les tâches qui surviennent quotidiennement — création en bloc d'actifs, déplacement de fichiers dans et hors des compartiments, répartition du travail des files d'attente, inspection des déclencheurs — sous forme d'extraits copier-coller.

La liste complète des indicateurs pour chaque sous-commande se trouve sur la page de référence uip or et ses pages par ressource. Cette page couvre les schémas d’utilisation courants.

Remarque :

uip or (cette page) est différent de uip solution resource. uip or appelle toujours Orchestrator sur un locataire actif. uip solution resource ne lit que les déclarations de ressources locales dans une solution .uipx sur disque. En cas de doute, regardez le préfixe.

Conventions que vous devez d'abord connaître​

Avant qu'un extrait fonctionne:

  • Authentification. Chaque uip or verbe appelle Orchestrator. Exécutez d'abord uip login . Exécutez uip login tenant set <name> pour changer de locataire actif avant un appel qui en cible un autre.
  • Étendue des dossiers. Les ressources, les compartiments, les files d'attente, les éléments de file d'attente et les déclencheurs de temps/file d'attente sont à l'échelle du dossier — transmettez --folder-path (par exemple Shared) ou --folder-key, ou --all-folders où cet indicateur est pris en charge. Les bibliothèques, les déclencheurs d’API et les webhooks sont à l’échelle des locataires et rejettent les indicateurs de dossier.
  • Clés. Les verbes de liste renvoient des GUID (key, identifier, uniqueKey). Transmettez-les à get, update et delete. Les champs numériques id sont internes; ne les transmettez pas aux commandes.
  • Les opérations destructrices nécessitent -y, --yes. Chaque verbe delete sur ces ressources refuse de s'exécuter sans lui - l'invite CLI ne s'invite jamais de manière interactive.
  • JSON est la sortie par défaut. Chaque extrait ci-dessous s'appuie sur cela; consultez la section Formats de sortie.

Actifs​

Déployer en bloc des ressources à partir d’un fichier CSV​

Il s’agit de la tâche « Gérer mes clés secrètes et la configuration » la plus courante. Étant donné un fichier CSV comme:

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

Passez-le en revue avec simple bash + uip or assets create:

#!/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 or 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 or assets create "$name" "$value" \
    --folder-path "$folder" \
    --type "$type"
done

La réexécution de cette action dans le même dossier échouera sur les doublons. Deux façons de gérer cela:

  • Modèle d'insertion de mise à jour. Lister d'abord, puis create ou update par ligne:

    tail -n +2 ./assets.csv | while IFS=, read -r name value type folder; do
      existing=$(uip or assets list --folder-path "$folder" --name "$name" \
        --output-filter "Data[?name=='$name'] | [0].key" --output plain)
    
      if [ -n "$existing" ] && [ "$existing" != "null" ]; then
        uip or assets update "$existing" "$value"
      else
        uip or 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 or assets list --folder-path "$folder" --name "$name" \
        --output-filter "Data[?name=='$name'] | [0].key" --output plain)
    
      if [ -n "$existing" ] && [ "$existing" != "null" ]; then
        uip or assets update "$existing" "$value"
      else
        uip or assets create "$name" "$value" --folder-path "$folder" --type "$type"
      fi
    done
    
  • Modèle de déploiement de la solution. Pour les ensembles de ressources qui sont livrés avec un package, déclarez-les dans le manifeste de la solution et utilisez uip solution deploy run --config-file — ce chemin est idempotent par sa conception. Voir Comment procéder: compresser et publier une solution.

Ressources de type Credential (Informations d'identification)​

Les ressources d’informations d’identification et de secret nécessitent une clé de magasin d’informations d’identification:

# 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 or 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 or assets create ApiLogin "alice:s3cr3t" \
  --folder-path Shared \
  --type Credential \
  --credential-store-key "$STORE_KEY"

Les valeurs des informations d'identification et du secret ne sont jamais renvoyées par list ou get; utilisez assets get-asset-value (qui nécessite toujours une étendue de dossier) pour lire la valeur dynamique, ou appelez via le robot.

Partage des ressources entre les dossiers​

Créez une fois dans Shared, puis partagez avec chaque dossier qui en a besoin:

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

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

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

Révoquer avec unshare. Voir Ressources pour obtenir la liste complète des verbes.

Compartiments et fichiers de compartiment​

Charger un fichier local​

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

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

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

Le chemin à l'intérieur du compartiment (inbox/invoice-001.pdf) est le deuxième argument de upload; --file est le chemin local à charger. Le type de contenu est détecté automatiquement; transmettez --content-type pour remplacer.

Télécharger un fichier​

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

Sans --destination, le contenu est diffusé vers stdout — utile pour les pipelines dans un processeur.

Lister et paginer​

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

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

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

Les listes de fichiers de compartiment sont la seule ressource de la CLI qui utilise un jeton de poursuite plutôt que la pagination de décalage - les autres verbes de la liste prennent --limit / --offset

URL pré-signées​

Si un robot ou un service externe a besoin d'un accès direct à l'objet blob sans passer par la CLI:

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

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

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

Tous deux renvoient une URL limitée dans le temps définie sur le chemin d'accès au fichier unique.

Files d'attente et éléments de la file d’attente​

Créer une file d'attente​

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

Liste complète des indicateurs — --auto-retry, --enforce-unique-reference, --encrypted, paramètres de rétention — sur la référence des files d'attente.

Ajouter un seul élément de travail​

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

--specific-content correspond à la charge utile JSON que le robot lira.

Ajout groupé à partir d'un fichier​

cat > ./items.json <<'EOF'
[
  {"specificContent": {"InvoiceId":"INV-001"}, "priority": "Normal"},
  {"specificContent": {"InvoiceId":"INV-002"}, "priority": "Normal"}
]
EOF

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

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

Chaque élément accepte specificContent, priority, reference, deferDate, dueDate — il n'y a pas de nom de file d'attente par élément; la file d'attente est l'argument de position unique (InvoiceQueue ci-dessus) partagé par l'ensemble du lot.

--commit-type contrôle ce qui se passe lorsqu'une ligne échoue à la validation: ProcessAllIndependently (par défaut), StopOnFirstFailure ou AllOrNothing.

Inspecter les éléments ayant échoué​

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

Utilisez queue-items get-history sur un seul uniqueKey pour afficher son historique complet des transitions d’état, utile pour diagnostiquer les boucles de réessai.

Marquer les éléments ayant échoué pour une nouvelle tentative​

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

set-review-status prend l'un des Retried, Abandoned, Deleted.

Déclencheurs (Triggers)​

Répertorier les déclencheurs dans un dossier​

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

Trois types de déclencheurs: time, queue et api. Transmettez --type sur chaque verbe ( sa valeur par défaut est time). Les déclencheurs d'API sont à l'échelle du locataire — omettez --folder-path.

Créer un déclencheur de temps​

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

uip or 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 or 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

La valeur --cron utilise le format à 6 champs de Quartz (sec min hour dayOfMonth month dayOfWeek), et non le format Cron standard. "0 0 2 * * ?" correspond à « tous les jours à 02 h 00 ».

Activer ou désactiver un déclencheur​

Il n'y a pas de commande enable/disable dédiée — activer/désactiver un déclencheur via update:

uip or triggers update <trigger-key> --type time --folder-path Shared --disabled
uip or triggers update <trigger-key> --type time --folder-path Shared --enabled
uip or triggers update <trigger-key> --type time --folder-path Shared --disabled
uip or triggers update <trigger-key> --type time --folder-path Shared --enabled

Utilisez triggers history pour diagnostiquer un déclencheur qui ne se déclenche pas - le journal de déclenchement indique les licences manquantes, les machines indisponibles et d'autres blocs en amont.

Webhooks​

Les Webhooks sont à l’échelle du locataire. Créez une fois et le Webhook se déclenche à chaque événement correspondant dans le locataire:

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

Répertorier les types d'événements disponibles pour un locataire:

uip or webhooks event-types
uip or webhooks event-types

Testez la livraison sans attendre un événement réel:

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

Bibliothèques​

Les bibliothèques sont à l'échelle du locataire (pas à l'échelle du dossier): elles résident dans le flux du locataire et sont référencées par des ID de package tels que MyLib:1.0.0:

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

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

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

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

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

Les clés prennent la forme PackageId:Version , et non un GUID.

Conseils de script​

  • Transmettez toujours --output-filter lors de l'entrée d'une valeur unique dans une variable. Il évite les invocations jq fragiles et la validation au moment de l’analyse CLI — voir Modèles de script.
  • Les verbes de liste renvoient des résultats paginés - --limit / --offset sur la plupart, --continuation-token sur les fichiers de compartiment. Les résultats vides (zéro ligne dans Data) quittent toujours 0 — la requête de liste a réussi; Aucune correspondance.
  • La plupart des verbes de mise à jour/suppression sont des dossiers croisés - la table des indicateurs sur la section uip or de chaque verbe l'indique explicitement (« Dossier croisé»). Seules les ressources create et la liste ont besoin de l'étendue du dossier sur ces ressources.

Voir également​

Cette page vous a-t-elle été utile ?

Connecter

Besoin d'aide ? Assistance

Vous souhaitez apprendre ? UiPath Academy

Vous avez des questions ? UiPath Forum

Rester à jour