0

我们正在尝试在 MongoDB Atlas 中创建一个触发器,该触发器将自动减少我们的 Azure 层级以节省成本。当我们尝试运行它时,我们组合的函数(可能是错误的!)返回一个错误。结果输出为:

logs: 
uncaught promise rejection: StitchError: HTTP request failed: unexpected status code: expected=200, actual=415
> result: 
{
  "$undefined": true
}
> result (JavaScript): 
EJSON.parse('{"$undefined":true}')

我们试过弄乱标题和正文,但最终结果总是一样的。

这是 WIP 函数:

exports = function() {

  const response = context.http.patch({
    scheme: "https",
    host: "cloud.mongodb.com",
    path: "/api/atlas/v1.0/groups/abc123/clusters/fake-server",
    username: "usernamehere",
    password: "passwordhere",
    digestAuth: true,
    headers: {"Content-Type": [ "application/json" ]},
    body: {"clusterType":"REPLICASET", "providerSettings":{"providerName":"AZURE", "instanceSizeName":"M10", "regionName":"regionhere" } },
    encodeBodyAsJSON: true
  });
};

任何帮助将不胜感激。

4

1 回答 1

0

事实证明,我们一直都做对了。

执行与上面完全相同的代码现在可以正确地减少我们的层级。我不知道是什么导致 MongoDB Atlas API 认为我们的标头和/或请求正文不正确,但它今天对此非常满意。

我要指出的唯一另一件事是,如果您希望这部分错误消失......

> result: 
{
  "$undefined": true
}
> result (JavaScript): 
EJSON.parse('{"$undefined":true}')

...您需要将函数更改为 async / await ,如下所示:

exports = async function() {

  const response = await context.http.patch({ 
于 2019-09-06T01:20:07.223 回答