- Überblick
- JavaScript-Funktionen
- Python-Funktionen
- Bereitstellen und ausführen
Funktionskontext
Die Identitäten, Plattformkoordinaten und Anforderungsdaten, die die Laufzeit an jeden JavaScript-Funktionshandler übergibt.
Jeder Handler erhält ein Kontextobjekt als zweites Argument. Es enthält Informationen darüber, wer die Funktion aufgerufen hat, die eigene Plattformidentität der Funktion und wo ausgehende Plattformaufrufe gesendet werden sollen – also muss nichts davon als Eingabe übergeben werden.
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
}
Zwei Identitäten
Einer Funktion werden zwei Identitäten pro Aufruf übergeben, und die Wahl zwischen ihnen ist eine Sicherheitsentscheidung.
ctx.user | ctx.robot | |
|---|---|---|
| Deren es ist | Der Aufrufer, der die Funktion aufgerufen hat | Die eigene Plattformidentität der Funktion |
| Es gelten die Berechtigungen | Eigene des Aufrufers | Das Dienstkonto der Funktion |
| Verwenden Sie es für | Handeln im Namen des angemeldeten Benutzers | Lesen von Ressourcen, die der Anrufer nicht direkt erreichen darf |
ctx.user.accessToken gilt, wenn der Aufrufer nur sehen soll, was seine eigenen Berechtigungen zulassen. ctx.robot.accessToken gilt, wenn die Funktion etwas erreichen muss, das der Aufrufer nicht erreichen kann – z. B. Anmeldeinformationen in einem eingeschränkten Ordner. Siehe Zugreifen auf Plattformdienste.
ctx.robot ist die privilegierte Identität. Ein Handler, der einen beliebigen Ressourcennamen in der Anfrage liest, fungiert als Ersatz für die Anfrage des Aufrufers mit den eigenen Berechtigungen der Funktion. Das Abrufen muss auf einen festen Satz im Code beschränkt sein.
Plattformkoordinaten
ctx.platform liefert baseUrl, orgId und tenantId für ausgehende Plattformaufrufe. Diese stammen aus der Laufzeit, nie vom Aufrufer, sodass eine Anforderung nicht umleiten kann, wohin die Funktion ihren Datenverkehr sendet, und sie dürfen niemals als Eingabefelder akzeptiert werden.
Es ist alles oder nichts: ctx.platform ist null, es sei denn, alle drei sind verfügbar. folderKey kann für einen ordnerlosen Aufruf selbst null sein.
Was wo verfügbar ist
| HTTP-Trigger | Auftrag | Lokal (Local) serve | |
|---|---|---|---|
ctx.user | Die Identität des Anrufers | Keine Anruferidentität | Ist vorhanden, wenn die Anforderung ein Bearer-Token beinhaltet |
ctx.robot | Ja | Ja | null |
ctx.platform | Ja | Ja | Nur mit festgelegten UIPATH_BASE_URL, UIPATH_ORG_ID und UIPATH_TENANT_ID |
ctx.params, ctx.headers | Ja | Leer – es ist keine HTTP-Anforderung vorhanden | Ja |
Da ctx.robot lokal null ist, sollte Code, der ein Plattformtoken benötigt, auf eine Umgebungsvariable für die lokale Entwicklung zurückgreifen:
const token = ctx.robot?.accessToken || process.env["UIPATH_ACCESS_TOKEN"] || "";
const token = ctx.robot?.accessToken || process.env["UIPATH_ACCESS_TOKEN"] || "";
Nächste Schritte
- Zugriff auf Plattformdienste
- Testen und Fehlerbehebung
- Kontextreferenz – der vollständige Typ und jedes Feld.