Node.js 运行nodejs的Azure函数的事件网格验证
我不熟悉Azure函数和NodeJ(我的背景主要是powershell)。我正在尝试设置一个可以处理事件网格事件的函数,我读到的所有内容都表明连接这两个事件应该很容易。然而,我似乎无法通过“简单”的验证步骤。我使用以下代码创建了函数: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
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,正确填写值为我的一生,我无法正确显示该评论的格式…谢谢!几天前我确实浏览了那一页。我会再看一眼,走慢一点。我还怀疑我在某种程度上被阻止了,比如我不知道的权限设置。