我已经定义了一个通知功能,将要订阅图表:
public static class NotificationFunction
{
[FunctionName("NotificationFunction")]
public static async Task<HttpResponseMessage> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
string validationToken = req.Query["validationToken"];
log.LogInformation($"validationToken {validationToken}");
return new HttpResponseMessage(System.Net.HttpStatusCode.OK)
{
Content = new StringContent(validationToken, System.Text.Encoding.UTF8, "text/plain")
};
}
}
我尝试在计时器函数中添加此notificationUrl:
var subscription = new Subscription
{
ChangeType = "created,updated",
NotificationUrl = NotificationUrlValue,
Resource = "me/mailFolders('Inbox')/messages",
ExpirationDateTime = DateTimeOffset.Parse("2019-12-30T18:23:45.9356913Z"),
ClientState = "secretClientValue"
};
NotificationUrlValue是NotificationFunction URL,如果我对其进行测试,但是在计时器触发器运行时可以正常工作:
Code: InvalidRequest
Message: Subscription validation request failed. Must respond with 200 OK to this request.
在“触发器功能监视器”中,我看不到任何电话,也许是防火墙问题?从哪个IP调用NotificationUrl?
问题是NotificationUrl在防火墙后面,解决方案是将NotificationUrl更改为可访问的URL。