UiPath Documentation
functions
latest
false
Guide de l'utilisateur des fonctions
  • Vue d'ensemble (Overview)
    • À propos des fonctions
  • Fonctions JavaScript
    • Démarrage
    • Construire des fonctions JavaScript
    • Déclencheurs et routage HTTP
    • Contexte de la fonction
    • Accéder aux services de la plateforme
    • Test et débogage
  • Fonctions Python
  • Déployer et exécuter
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.

Contexte de la fonction

Les identités, les coordonnées de la plateforme et les données de la requête que le runtime transmet à chaque gestionnaire de fonctions JavaScript.

Chaque gestionnaire reçoit un objet de contexte comme deuxième argument. Il transporte qui a appelé la fonction, l'identité de la plate-forme de la fonction et où envoyer les appels de plate-forme sortants. Ainsi, aucun de ces éléments ne doit être transmis en tant qu'entrée.

handler: async (input, ctx) => {
  ctx.user?.accessToken     // the caller's OAuth token
  ctx.user?.sub             // the caller's user id
  ctx.robot?.accessToken    // the function's own platform token
  ctx.robot?.key            // the serverless robot key
  ctx.platform?.baseUrl     // e.g. "https://cloud.uipath.com"
  ctx.platform?.orgId       // organization id
  ctx.platform?.tenantId    // tenant id
  ctx.platform?.folderKey   // folder of the invocation, if any
  ctx.params                // path parameters, as strings
  ctx.headers               // request headers, lowercase keys
}
handler: async (input, ctx) => {
  ctx.user?.accessToken     // the caller's OAuth token
  ctx.user?.sub             // the caller's user id
  ctx.robot?.accessToken    // the function's own platform token
  ctx.robot?.key            // the serverless robot key
  ctx.platform?.baseUrl     // e.g. "https://cloud.uipath.com"
  ctx.platform?.orgId       // organization id
  ctx.platform?.tenantId    // tenant id
  ctx.platform?.folderKey   // folder of the invocation, if any
  ctx.params                // path parameters, as strings
  ctx.headers               // request headers, lowercase keys
}

Deux identités​

Une fonction reçoit deux identités par invocation, et le choix entre elles est une décision de sécurité.

ctx.userctx.robot
À qui il s'agitL'appelant qui a invoqué la fonctionL'identité de la plate-forme de la fonction
Autorisations qui s'appliquentLe propre fichier de l'appelantCompte de service de la fonction
Utilisez-le pourAgir au nom de l’utilisateur connectéLecture des ressources que l’appelant ne doit pas atteindre directement

ctx.user.accessToken s'applique lorsque l'appelant doit uniquement voir ce que ses propres autorisations autorisent. ctx.robot.accessToken s'applique lorsque la fonction doit atteindre quelque chose que l'appelant ne peut pas faire, par exemple des informations d’identification dans un dossier restreint. Consultez la section Accès aux services de la plate-forme.

Remarque :

ctx.robot est l'identité la plus privilégiée. Un gestionnaire qui lit le nom de la ressource qui arrive dans la requête agit en tant qu’assistant pour la requête de l’appelant avec les propres privilèges de la fonction. La récupération doit être limitée à un ensemble fixe de code.

Coordonnées de la plateforme​

ctx.platform fournit baseUrl, orgId et tenantId pour les appels de plate-forme sortants. Ceux-ci proviennent du runtime, mais jamais de l'appelant, de sorte qu'une requête ne peut pas rediriger vers la fonction d'envoi de son trafic, et ils ne doivent jamais être acceptés comme champs d'entrée.

C'est tout ou rien: ctx.platform est null, sauf si les trois sont disponibles. folderKey peut être null seul, pour une invocation sans dossier.

Indique où​

Déclencheur HTTPJobLocal serve
ctx.userL'identité de l'appelantAucune identité d’appelantAffiché lorsque la requête comporte un jeton de porteur
ctx.robotOui (Yes)Oui (Yes)null
ctx.platformOui (Yes)Oui (Yes)Uniquement avec UIPATH_BASE_URL, UIPATH_ORG_ID et UIPATH_TENANT_ID définis
ctx.params, ctx.headersOui (Yes)Vide: il n’y a pas de requête HTTPOui (Yes)

Étant donné que ctx.robot est null localement, le code qui a besoin d'un jeton de plate-forme doit basculer vers une variable d'environnement pour le développement local:

const token = ctx.robot?.accessToken || process.env["UIPATH_ACCESS_TOKEN"] || "";
const token = ctx.robot?.accessToken || process.env["UIPATH_ACCESS_TOKEN"] || "";

Prochaines étapes​

  • Deux identités​
  • Coordonnées de la plateforme​
  • Indique où​
  • Prochaines étapes​

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