Orchestrator 发行说明
2021.10.4
发行日期:2022 年 4 月 7 日
经过最近关于队列触发器领域的一些反复讨论之后,我们正在重新解决队列触发器启动作业的方式 - 我们希望这是最终的最佳方式。
问题陈述:每当队列中包含的新项目少于正在进行的项目时,即使机器人处于空闲状态,也不会启动任何作业。发生这种情况是因为正在运行的作业(正在处理的队列项目)的数量将超过目标作业(处理新项目所需的作业)的数量。
初始修复:在计算目标作业数量时,让 Orchestrator 考虑新的和正在进行的队列项目,而不仅仅是新项目。此方法听起来不错。但是实际操作起来无效。
全新的解决方案:Orchestrator 在计算目标作业数量时会考虑新项目,但在决定是否启动新作业时会查看待处理作业的数量。
- 假设队列中有 2 个新项目,并且存在 2 个待处理作业 => 则不会启动任何新作业。
- 假设队列中有 2 个新项目,并且存在 1 个待处理作业 => 则启动 1 个新作业。
这可确保 Orchestrator 启动足够多的作业来处理所有新项目,而不会覆盖待处理作业。
-
我们知道您的 Ledger 数据库表格可能会变得非常拥挤,因此需要经常清理。为此,我们为您提供了一个新的清理脚本,允许您每 7 天删除一次分类帐数据并应用 1,000 个条目的批处理大小。在我们的文档中发现新脚本:
- 独立 Orchestrator 安装
- Automation Suite 安装
-
作为主机,尝试通过 Swagger 用户界面结束维护窗口可能会失败。发生这种情况是因为 Swagger 用户界面使用 Cookie 进行身份验证,当您关闭浏览器时,Cookie 会丢失。
要通过 API 结束维护模式,请使用以下的其中一种解决方法:
- 请不要关闭浏览器,并从 Swagger 用户界面向
/api/Maintenance/End
发出 POST 请求。 -
使用 API 测试应用程序(例如 Postman)来执行以下操作:
-
通过与
/api.Account/Authenticate
端点交换凭据来检索访问令牌,然后 -
使用
Authorization: Bearer {access_token}
标头向/api/Maintenance/End
端点发出 POST 请求。
-
-
运行以下 PowerShell 脚本:
- 请不要关闭浏览器,并从 Swagger 用户界面向
$orchestratorUrl="https://localhost:6234"
$hostTenant="host"
$hostUser="admin"
$hostPassword=""
$tenantId="" #number
# Authenticate
$body=@{
"tenancyName"="$hostTenant";
"usernameOrEmailAddress"="$hostUser";
"password"="$hostPassword"
}
$response = Invoke-WebRequest -Uri "$orchestratorUrl/api/account/authenticate" -Method Post -Body ($body | ConvertTo-Json) -ContentType "application/json"
$token = "Bearer " + ($response | ConvertFrom-Json).result
# End maintenance mode
$headers=@{
"Authorization"="$token"
}
$res = Invoke-WebRequest -Uri "$orchestratorUrl/api/maintenance/end?tenantId=$tenantId" -Headers $headers -Method Post -ContentType "application/json" -ErrorAction Stop
if ($res -and ($res.StatusCode -eq 200)) {
Write-Host "Maintenance mode ended successfully for tenant $tenantId"
}
$orchestratorUrl="https://localhost:6234"
$hostTenant="host"
$hostUser="admin"
$hostPassword=""
$tenantId="" #number
# Authenticate
$body=@{
"tenancyName"="$hostTenant";
"usernameOrEmailAddress"="$hostUser";
"password"="$hostPassword"
}
$response = Invoke-WebRequest -Uri "$orchestratorUrl/api/account/authenticate" -Method Post -Body ($body | ConvertTo-Json) -ContentType "application/json"
$token = "Bearer " + ($response | ConvertFrom-Json).result
# End maintenance mode
$headers=@{
"Authorization"="$token"
}
$res = Invoke-WebRequest -Uri "$orchestratorUrl/api/maintenance/end?tenantId=$tenantId" -Headers $headers -Method Post -ContentType "application/json" -ErrorAction Stop
if ($res -and ($res.StatusCode -eq 200)) {
Write-Host "Maintenance mode ended successfully for tenant $tenantId"
}
-
对于允许对机器人具有特权访问权限的攻击者通过强制调用 Orchestrator 的 API 来检索同一租户中其他机器人的许可证密钥(计算机密钥)的问题,我们已修复。理论上,这将允许攻击者访问仅限于该机器人的资源。
请阅读 UiPath - 机器人帐户接管的安全公告。
- 有时,长时间运行的工作流的作业执行会卡在“正在运行”状态,而不会转换为“暂停”状态。终止这些作业后,这些作业将转换为并卡在“正在终止”状态。基本问题已得到修复,长时间运行的作业现在可以按预期转换为不同的状态,并且可以毫无问题地执行。
- 我们在“将角色分配给机器人帐户”窗口中犯了一个拼写错误。该字段显示“Seach for a robot account”,而不是“Search for a robot account”。该字段名称现在已拼写正确。
- 审核详细信息中未显示手动上传的包的名称。此问题会影响单独和批量上传的包。现在,所有上传的包的名称都已成功记录在审核详细信息中。
- 未在 Active Directory 中指定姓氏的用户无法登录。