MongoDB Atlas Trigger -- Receiving a "StitchError: HTTP request failed: unexpected status code: expected=200, actual=415" error

MongoDB Atlas Trigger -- Receiving a "StitchError: HTTP request failed: unexpected status code: expected=200, actual=415" error

我们正在尝试在 MongoDB Atlas 中创建一个触发器,它会自动降低我们晚上的 Azure 层级以节省成本。我们放在一起的函数(可能不正确!)returns 当我们尝试 运行 时出错。结果输出为:

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
  });
};

如有任何帮助,我们将不胜感激。

事实证明我们一直都是对的。

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

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

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

...您需要像这样将函数更改为异步/等待:

exports = async function() {

  const response = await context.http.patch({