UiPath Documentation
functions
latest
false
Guía del usuario de funciones
  • Información general
    • Acerca de las funciones
  • Funciones JavaScript
    • Primeros pasos
    • Crear funciones JavaScript
    • Desencadenadores HTTP y enrutamiento
    • Contexto de la función
    • Acceder a los servicios de la plataforma
    • Pruebas y depuración
  • Funciones de Python
  • Implementar y ejecutar
Importante :
Este contenido se ha traducido mediante traducción automática. La localización de contenidos recién publicados puede tardar entre una y dos semanas en estar disponible.

Contexto de la función

Las identidades, las coordenadas de la plataforma y los datos de solicitud que el runtime pasa a cada controlador de funciones JavaScript.

Cada controlador recibe un objeto de contexto como segundo argumento. Incluye quién llamó a la función, la propia identidad de la plataforma de la función y dónde enviar las llamadas de plataforma salientes, por lo que nada de eso tiene que pasarse como entrada.

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
}

Dos identidades​

Una función recibe dos identidades por invocación, y la elección entre ellas es una decisión de seguridad.

ctx.userctx.robot
De quién esLa persona que invocó la funciónLa propia identidad de la plataforma de la función
Permisos que se aplicanLa propia persona que llamaLa cuenta de servicio de la función
Úsalo paraActuar en nombre del usuario que ha iniciado sesiónLeyendo recursos a los que la persona que llama no debe acceder directamente

ctx.user.accessToken se aplica cuando la persona que llama solo debe ver lo que permiten sus propios permisos. ctx.robot.accessToken se aplica cuando la función debe llegar a algo que la persona que llama no puede: una credencial en una carpeta restringida, por ejemplo. Consulta Acceder a los servicios de la plataforma.

Nota:

ctx.robot es la identidad más privilegiada. Un controlador que lee cualquier nombre de recurso que llega en la solicitud actúa como adjunto de la solicitud de la persona que llama con los privilegios propios de la función. La recuperación debe estar restringida a un conjunto fijo en el código.

Coordenadas de la plataforma​

ctx.platform proporciona baseUrl, orgId y tenantId para las llamadas de plataforma salientes. Estos provienen del runtime, nunca de la persona que llama, por lo que una solicitud no puede redirigir a dónde envía la función su tráfico, y nunca deben aceptarse como campos de entrada.

Es todo o nada: ctx.platform es null a menos que los tres estén disponibles. folderKey puede ser null por sí mismo, para una invocación sin carpeta.

Qué está disponible dónde​

Desencadenador HTTPTrabajoLocal serve
ctx.userLa identidad de la persona que llamaSin identidad de la persona que llamaPresente cuando la solicitud lleva un token al portador
ctx.robotSíSínull
ctx.platformSíSíSolo con UIPATH_BASE_URL, UIPATH_ORG_ID y UIPATH_TENANT_ID establecidos
ctx.params, ctx.headersSíVacío: no hay ninguna solicitud HTTPSí

Como ctx.robot es null localmente, el código que necesita un token de plataforma debe recurrir a una variable de entorno para el desarrollo local:

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

Próximos pasos​

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte

¿Quiere aprender? UiPath Academy

¿Tiene alguna pregunta? Foro de UiPath

Manténgase actualizado