【问题标题】:INVALID_ARGUMENT (400 error) when calling Stackdriver Error Reporting API调用 Stackdriver 错误报告 API 时出现 INVALID_ARGUMENT(400 错误)
【发布时间】:2017-07-30 08:41:48
【问题描述】:

当尝试调用Stackdriver Error Reporting APIvia the API explorer 或通过Client-Side JavaScript library)时,我收到以下错误:

请求:

{ "message" : "test" }

回复:

{
  "error": {
    "code": 400,
    "message": "Request contains an invalid argument.",
    "status": "INVALID_ARGUMENT"
  }
}

Stackdriver Error Reporting API 已启用,我拥有 App Engine 项目的所有者权限。

API 根本不起作用吗?如果我做错了什么,有人可以帮忙吗?

【问题讨论】:

    标签: stackdriver google-apis-explorer google-cloud-error-reporting


    【解决方案1】:

    报告事件的文档说ServiceContext is required

    如果您只是发送一条消息(不是堆栈跟踪/异常),您还需要包含 context with a reportLocation。这在message 字段的文档中有说明,但并不明显。

    API 资源管理器中的以下工作:

    {
     "context": {
      "reportLocation": {
       "functionName": "My Function"
      }
     },
     "message": "error message",
     "serviceContext": {
      "service": "My Microservice",
     }
    }
    

    您可能也对How Error are Grouped 上的文档感兴趣。

    FWIW,我在开发这个产品,我认为错误信息太笼统了。问题是(?)服务堆栈会清理消息,除非它们被注释为供公众使用。我会追上去的。

    【讨论】:

    • 收到请求后,API 应验证是否存在所有必需的参数。如果它们不存在,API 应该抛出一个缺少特定参数的异常。
    • 请注意the JS implementation does not specify a reportLocation。在测试 JS 包装器时,我第一次遇到 400 错误,看来这就是原因。
    • 感谢您指出这一点。请记住,模块被标记为“实验性”
    猜你喜欢
    • 2018-02-07
    • 1970-01-01
    • 2018-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-20
    相关资源
    最近更新 更多