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({
我们正在尝试在 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({