- 概述
- Python 函数
- 部署并运行
在绑定.json 中声明 Orchestrator 或 Integration Service 资源,请验证此问题是否可在本地运行期间解析,并使其可在租户之间重新映射。
bindings.json手动维护uipath init :在不存在所需结构的情况下,将创建具有所需结构的文件,并保持现有文件不变。为函数到达的每个平台资源声明一个绑定,以便当包在另一个租户中运行时重新映射资源。有关其背后的解决机制,请参阅资源绑定。
先决条件
- 使用
uipath new创建的 Python 函数项目。 - 与
uipath auth建立经过身份验证的会话。 - 您开发的租户中已存在该资源。
- 已安装 UiPath CLI (
uip),用于步骤 1 中的连接查找。
声明连接绑定
-
从 Integration Service 中检索连接 ID:
uip is connections list uipath-microsoft-outlook365uip is connections list uipath-microsoft-outlook365 -
在项目根目录打开
bindings.json。 -
使用
resources和key的连接 ID 向ConnectionId.defaultValue数组添加条目:{ "resource": "connection", "key": "<connection-id>", "value": { "ConnectionId": { "defaultValue": "<connection-id>", "isExpression": false, "displayName": "Microsoft Outlook 365 Connection" }, "Connector": { "defaultValue": "uipath-microsoft-outlook365", "isExpression": false, "displayName": "Connector" } }, "metadata": { "Connector": "uipath-microsoft-outlook365", "UseConnectionService": "True", "BindingsVersion": "2.2" } }{ "resource": "connection", "key": "<connection-id>", "value": { "ConnectionId": { "defaultValue": "<connection-id>", "isExpression": false, "displayName": "Microsoft Outlook 365 Connection" }, "Connector": { "defaultValue": "uipath-microsoft-outlook365", "isExpression": false, "displayName": "Connector" } }, "metadata": { "Connector": "uipath-microsoft-outlook365", "UseConnectionService": "True", "BindingsVersion": "2.2" } } -
在函数中将相同的 ID 声明为模块级常量,并将其传递给 SDK 调用:
OUTLOOK_CONNECTION_KEY = "<connection-id>" conn = sdk.connections.retrieve(OUTLOOK_CONNECTION_KEY)OUTLOOK_CONNECTION_KEY = "<connection-id>" conn = sdk.connections.retrieve(OUTLOOK_CONNECTION_KEY) -
在本地运行函数:
uipath run main -f input.jsonuipath run main -f input.json
结果
运行日志中,每个声明的绑定包含一行:
No resource overwrite matched for connection key='connection.<connection-id>' on retrieve
No resource overwrite matched for connection key='connection.<connection-id>' on retrieve
该行确认覆盖查找已运行并回退到设计时 ID,这是本地的预期结果,因为不存在租户映射。如果该行命名的 ID 与 bindings.json 中的 ID 不同,则代码常量和绑定不一致。
声明其他资源类型的绑定遵循相同的模式,但使用不同的 value 形状。资产、存储桶、队列、流程、应用程序和索引使用 name 和 folderPath,而不是 ConnectionId,并且其 key 使用点将两者连接。
使绑定可在租户之间重新映射
-
在解决方案中注册函数项目:
uip solution project add ./my-solution/my-functionuip solution project add ./my-solution/my-function -
从项目声明的绑定中同步解决方案的资源列表:
uip solution resource refreshuip solution resource refresh -
查看生成的资源列表:
uip solution resource list --source localuip solution resource list --source local
结果
每个已声明的绑定都将显示在解决方案的本地资源列表中。部署会将每个条目映射到目标租户中的资源,因此同一包将针对该租户自己的连接运行。有关打包和发布解决方案的信息,请参阅uip solution pack 。
未在目标租户中映射的绑定不会导致作业失败。调用将回退到设计时标识符,因此在推广解决方案之前,请验证每个绑定是否都显示在目标租户的资源映射中。
后续步骤
- “调用 Integration Service”活动— 使用已声明的连接到达连接器操作。
- 打包并发布— 将函数部署到 Orchestrator。