重要
ServiceNow 连接器现为公共预览版。
本页介绍 Databricks Lakeflow Connect 中的 ServiceNow 连接器的常见问题以及如何解决这些问题。
常规管道故障排除
如果在执行时管道失败,请单击失败的步骤,并确认错误消息是否提供了有关错误性质的足够信息。
还可以通过单击右侧面板中的“更新详细信息”,然后单击“日志”,从管道详细信息页中检查和下载群集日志。 请扫描日志以查找错误或异常。
特定表的引入速度缓慢
作为第一步,请与 ServiceNow 管理员协作,在游标列上启用索引。 根据首选项顺序从以下列表中选择光标列:sys_updated_on(第一个选项)、sys_created_on(第二个选项)、sys_archived(第三个选项)。 然后,重试引入管道。 如果问题仍然存在,请提交票证。 有关在 ServiceNow 中启用索引的说明,请参阅 ServiceNow 文档。
身份验证错误
错误:
com.databricks.pipelines.execution.conduit.common.DataConnectorException: [SERVICENOW_CONNECTION_ERROR.OAUTH_TOKEN_EXCHANGE] Failed to authenticate to ServiceNow. This can be caused by issues with your UC credentials, ServiceNow OAuth setup, and more...
步骤 1:
确认在创建 Unity 目录连接时提供了正确的用户名、密码、客户端 ID 和客户端密码。 用于向 ServiceNow 进行身份验证的用户名和密码不一定是 SSO 的个人用户名和密码。 这些是与用于对外部服务进行身份验证和引入的用户关联的用户名和密码值。
目录资源管理器
在 Azure Databricks 工作区的边栏中,单击
目录。
在“ 目录 ”窗格顶部,单击
并从菜单中选择 “连接 ”。
或者,在“ 快速访问 ”页中,单击“ 外部数据 > ”按钮并转到“ 连接 ”选项卡。
单击连接的名称。
“ 概述 ”选项卡上列出了连接详细信息。
卷曲
运行以下 curl 请求。 将括号中的项替换为你的连接参数。
curl -X POST "https://<instance-id>.service-now.com/oauth_token.do" \
--header "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode "grant_type=password" \
--data-urlencode "client_id=<client-id>" \
--data-urlencode "client_secret=<client-secret>" \
--data-urlencode "username=<username>" \
--data-urlencode "password=<password>"
如果请求成功,则凭据正确。
步骤 2:
确认身份验证用户具有 admin
角色。 Databricks 还建议身份验证用户具有 snc_read_only
进一步限制权限的角色。
步骤 3:
确认正在进行身份验证的用户被标记为“有效”:
在 ServiceNow 中,单击“组织”>“用户”。
选择要用于身份验证的用户。
确认已选中 启用复选框。
步骤 4:
确认 ServiceNow 中的 OAuth 2.0 插件处于活动状态:
在 ServiceNow 中,单击 “系统定义 > 插件”。
在 “脚本 - 后台 ”部分中运行以下脚本:
var oauthActive = gs.getProperty('com.snc.platform.security.oauth.is.active'); gs.info('OAuth Active: ' + oauthActive);
如果脚本返回
true
,插件安装成功。 如果此脚本返回false
,请卸载,然后重新安装。
步骤 5:
确认是否正确配置了 OAuth 终结点:
在 ServiceNow 中,访问 系统 OAuth > 应用程序注册表。
在右上角,单击“ 新建”。
在 OAuth 应用程序选项中,单击 “为外部客户端创建 OAuth API 终结点”。
确认已选中 启用复选框。
成功创建 OAuth 应用程序后,它将显示在类型为 >的系统 OAuth 应用程序注册表的列表中。
步骤 6:
如果问题在遵循这些排除故障步骤后仍然存在,请提交支持请求。