UiPath Documentation
uipath-cli
latest
false
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.

Guide de l'utilisateur de UiPath CLI

Comment gérer les ressources d’Orchestrator

L’outil uip resource 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. 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 resource . Cette page couvre les schémas d’utilisation courants.

Remarque :

uip resource est différent de uip solution resource La première est l'interface CRUD d'Orchestrator (cette page). Ce dernier inspecte les déclarations de ressources locales dans une solution .uipx . En cas de doute, regardez le préfixe: uip solution resource … ne lit que votre disque; uip resource … appelle toujours Orchestrator.

Conventions que vous devez d'abord connaître

Avant qu'un extrait fonctionne:

  • Authentification. Chaque uip resource verbe appelle Orchestrator. Exécutez d'abord uip login . Transmettez --tenant <name> (court -t) sur n'importe quel verbe pour remplacer le locataire de session pour un appel unique.
  • É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 . 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.
  • 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 resource 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 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

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 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
    
  • 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 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"

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

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

Le chemin à l'intérieur du compartiment (inbox/invoice-001.pdf) est le deuxième argument de write; --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 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

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

Lister et paginer

# 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>"

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

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

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 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 correspond à la charge utile JSON que le robot lira.

Ajout groupé à partir d'un fichier

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 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 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}"

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 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 prend l'un des Retried, Abandoned, Deleted.

Déclencheurs (Triggers)

Répertorier les déclencheurs dans un dossier

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}"

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

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

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

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 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"

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

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

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

uip resource webhooks ping <webhook-key>
uip resource 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 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

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 resource 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