Node.js 运行nodejs的Azure函数的事件网格验证

Node.js 运行nodejs的Azure函数的事件网格验证,node.js,function,azure,Node.js,Function,Azure,我不熟悉Azure函数和NodeJ(我的背景主要是powershell)。我正在尝试设置一个可以处理事件网格事件的函数,我读到的所有内容都表明连接这两个事件应该很容易。然而,我似乎无法通过“简单”的验证步骤。我使用以下代码创建了函数: module.exports = function (context, req) { context.log('Event Grid Validation.'); context.log(req.body[0]) if(req.body[0].data.vali

我不熟悉Azure函数和NodeJ(我的背景主要是powershell)。我正在尝试设置一个可以处理事件网格事件的函数,我读到的所有内容都表明连接这两个事件应该很容易。然而,我似乎无法通过“简单”的验证步骤。我使用以下代码创建了函数:

module.exports = function (context, req) {
context.log('Event Grid Validation.');
context.log(req.body[0])

if(req.body[0].data.validationcode){
    context.res = {
        // status: 200, /* Defaults to 200 */
        body: {"validationResponse": req.body[0].data.validationcode}
    };
} else {
    context.res = {
    body: "Sorry no validation code found"
    };
}

context.done();

};
当我直接向函数发送请求时,我得到了预期的结果。例如,使用以下正文发送请求:

[{ “id”:1234, “数据”:{ “验证代码”:“Woo Validate Me Baby” }, “主题”:“请”, “事件类型”:“新事件” }]

作为一个独立的请求非常有效。但事件网格不断回退相同的失败消息

部署失败,出现以下错误:{“代码”:“Url验证”,“消息”:“尝试验证提供的终结点失败。有关详细信息,请访问。“}

我觉得我在某个地方犯了一个新手错误,但我不知道在哪里


任何帮助都将不胜感激。谢谢

这里是一个分步演示,如果您是新手,我建议您跟随演示(即使它不在node.js中,只是为了了解这个想法)。我相信你的问题更多的是权限问题,而不是编码问题


明白了!我太傻了

validationCode不是validationCode…区分大小写argh

module.exports = function (context, req) {
context.log('Event Grid Validation.');
context.log(req.body[0])
context.log(req.body[0].data.validationCode)

context.res = {
   "validationResponse": req.body[0].data.validationCode
};
context.done();
};

这管用!谢谢你的帮助

您的URL是什么样子的?用于测试函数的我的Powershell类似于以下$endpoint=”https:///api/“$body=@”[{“id”:1234,“数据”:“{“validationcode”:“Woo Validate Me Baby”},“主题”:“Please”,“eventType”:“New Event”}]”@$WR=Invoke WebRequest-Uri$endpoint-Method POST-Body$Body-ContentType“application/json”$WR.Content,正确填写值为我的一生,我无法正确显示该评论的格式…谢谢!几天前我确实浏览了那一页。我会再看一眼,走慢一点。我还怀疑我在某种程度上被阻止了,比如我不知道的权限设置。