- 概述
- JavaScript 函数
- Python 函数
- 部署并运行
访问平台服务
Orchestrator 资产、存储桶、队列和流程通过 UiPath TypeScript SDK 可供 JavaScript 函数使用,您可以在委派标识和函数标识之间进行选择。
JavaScript 函数通过UiPath TypeScript SDK访问平台资源。包中任何内容均未硬编码:坐标来自ctx.platform ,令牌来自运行时提供的两个身份之一。
import { UiPath } from "@uipath/uipath-typescript/core";
import { Assets } from "@uipath/uipath-typescript/assets";
const { baseUrl, orgId, tenantId } = ctx.platform;
const sdk = new UiPath({
baseUrl,
orgName: orgId,
tenantName: tenantId,
secret: ctx.user.accessToken, // or ctx.robot.accessToken
});
import { UiPath } from "@uipath/uipath-typescript/core";
import { Assets } from "@uipath/uipath-typescript/assets";
const { baseUrl, orgId, tenantId } = ctx.platform;
const sdk = new UiPath({
baseUrl,
orgName: orgId,
tenantName: tenantId,
secret: ctx.user.accessToken, // or ctx.robot.accessToken
});
@uipath/uipath-typescript 属于 dependencies,不属于 devDependencies:已部署函数仅安装生产依赖项。
选择身份
| 模式 | 令牌 | 需要文件夹访问权限的用户 |
|---|---|---|
| 已委派 | ctx.user.accessToken | 调用用户需要访问文件夹 Assets.View |
| 函数 Identity | ctx.robot.accessToken | 仅该函数的服务帐户;调用者不需要任何内容 |
“委派”是默认选项:调用者自己的权限适用,因此该功能不能用于查看调用者授权的权限。函数自己的身份适用于必须位于调用者无法访问的资源中,即只有该函数才能读取的受限文件夹中的凭据。
在这种情况下,必须限制处理程序获取的内容。读取调用者提供的资源名称的特权后端将移交其身份可以看到的任何内容:
const READABLE = new Set(["PartnerApiCredential"]);
if (!READABLE.has(input.assetName)) {
throw new FunctionError(`"${input.assetName}" is not readable by this function.`, 403);
}
const READABLE = new Set(["PartnerApiCredential"]);
if (!READABLE.has(input.assetName)) {
throw new FunctionError(`"${input.assetName}" is not readable by this function.`, 403);
}
资产
const response = await new Assets(sdk).getAll({
filter: `Name eq 'ApiBaseUrl'`,
folderId: 42,
});
const value = response.items[0]?.value;
const response = await new Assets(sdk).getAll({
filter: `Name eq 'ApiBaseUrl'`,
folderId: 42,
});
const value = response.items[0]?.value;
folderId 为必填项:否则,调用将返回包含空值的元数据。
folderId是文件夹的数字ID,而不是密钥。文件夹密钥是 GUID,在数字 ID 所属的位置传递 GUID 会作为权限错误而不是错误的标识符而被拒绝,这会使您找错位置。ctx.platform.folderKey 将为您提供当前调用的密钥;当调用需要时从中解析数字 ID。
对于任何令牌,这些端点都不会返回凭据资产的用户名和密码。读取其中一个需要函数自己的身份和机器人执行路由,而该路由需要 ctx.robot.key,因此仅适用于已部署的运行。请参阅调用 Orchestrator 。
对于密码资产,值到达SecretValue字段。带有文本资产值的字段 StringValue,在密码部分为空 — 相反,读取该字段看起来像一个损坏的功能,而不是错误的字段。
资产还有一个 AllowDirectApiAccess 设置,该设置可使用调用者自己的令牌读取其值。开启是拓宽步骤,而非启用步骤:该设置区分身份,因此该值对持有文件夹的每个持有 Assets.View 的身份都可读,包括持有已登录用户令牌的浏览器。与启用此设置相比,函数自己的标识是更安全的选择。
其他服务
同一客户端公开存储桶、队列、作业、流程、实体和 Integration Service 连接。有关完整界面,请参阅SDK 参考。
凭据和安全性
- 密码位于 Orchestrator 资产中,并在运行时读取。切勿将其硬编码或提交到项目中。
- 文件夹级别基于角色的访问控制 (RBAC) 管理每个身份可以读取的内容。使用作为调用者的访问权限的委派模式;函数自己的标识为服务帐户。
- 尽可能返回派生结果,而不是密码,并记录操作,而不是值。