从Azure Pipeline在Azure Data Explorer创建表时遇getaddrinfo错误
Azure Pipeline执行ADX表创建时getaddrinfo ENOTFOUND错误排查与解决
错误信息
##[error]Service returned an error: Error: getaddrinfo ENOTFOUND testdbprod.kusto.windows.net testdbprod.kusto.windows.net:443 server: testdbprod.kusto.windows.net database: testprod-prod command: .create-merge table Notifications (Timestamp: datetime, NoteType: string, homename: string, Value: string)
原始Pipeline配置
- task: ADXQuery@1 inputs: targetType: 'inline' script: '.create-merge table Notifications (Timestamp: datetime, NoteType: string, homename: string, Value: string)' kustoUrls: 'https://testdbprod.kusto.windows.net:443?DatabaseName=testprod-prod' customAuth: false ResourceURI: 'https://testdbprod.kusto.windows.net' aadClientId: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx' aadClientSecret: 'XXXXXXXXXXXXXXXXXXXXXX' tenantId: 'XXXXXXXXXXXXXXXXXXXXXXXX' minThreshold: '0' maxThreshold: '0'
排查与解决步骤
- 验证集群域名正确性:先确认
testdbprod.kusto.windows.net是正确的ADX集群域名,检查是否有拼写错误(比如大小写、多字符/少字符)。可以在本地执行nslookup testdbprod.kusto.windows.net或ping testdbprod.kusto.windows.net,确认域名能正常解析。 - 修正kustoUrls配置:ADXQuery任务的
kustoUrls仅需填写集群的基础URL,无需附加端口(默认443)和数据库查询参数。建议修改为:
同时在script中指定目标数据库,避免URL参数干扰:kustoUrls: 'https://testdbprod.kusto.windows.net'use testprod-prod; .create-merge table Notifications (Timestamp: datetime, NoteType: string, homename: string, Value: string) - 检查代理网络连通性:
- 如果使用微软托管代理:确认ADX集群是公网可访问的,或者已配置VNet集成允许托管代理访问。
- 如果使用自托管代理:检查代理服务器的网络设置,确保能访问公网,防火墙/企业代理未拦截对kusto.windows.net域名的443端口请求。
- 确认ADX集群防火墙规则:将Pipeline代理的IP范围(托管代理需查对应区域出站IP,自托管代理用机器公网IP)添加到ADX集群的防火墙允许列表中,避免被拦截。
内容的提问来源于stack exchange,提问作者anuruddhas
相关产品推荐
相关产品推荐

