Python调用GraphQL查询New Relic传参获取Synthetics监控GUID报错
解决方案
错误原因
你将variables变量块错误写入了GraphQL查询字符串内部,不符合New Relic GraphQL API的请求规范,因此触发语法报错。按照标准请求规则,查询字符串仅需包含操作定义和字段结构,变量需要作为独立参数和查询平级传入请求体。
修正后的代码
1. 拆分查询与变量
首先调整查询字符串,删除内部的variables块:
query = ''' query($query: String!) { actor { entitySearch(query: $query) { results { entities { guid } } } } } '''
2. 调整API调用参数
将变量作为variables字段独立放到请求的JSON参数中:
my_response = requests.get( url=my_url, headers=header, json={ "query": query, "variables": { "query": "name LIKE 'MYMONITORNAME'" } } )
可选优化
如果你的监控名称是完全匹配,可将查询条件改为"name = 'MYMONITORNAME'",既可以提升查询效率,也能避免LIKE模糊匹配到无关实体。
内容的提问来源于stack exchange,提问作者bahrt
相关产品推荐
相关产品推荐

