我想使用 Application Insights 来监控链接多个 Azure Functions 的逻辑应用程序。我希望链尽可能安全,如果出现问题,我希望函数无法正确处理 http 请求。我想当出现问题时我可以从 Application Insights 发出警报,但是我不确定如何将失败的消息放入 blob 或“失败的消息队列”。
Application Insights 警报是否可以成为将数据添加到 blob 的函数的触发器?
我想使用 Application Insights 来监控链接多个 Azure Functions 的逻辑应用程序。我希望链尽可能安全,如果出现问题,我希望函数无法正确处理 http 请求。我想当出现问题时我可以从 Application Insights 发出警报,但是我不确定如何将失败的消息放入 blob 或“失败的消息队列”。
Application Insights 警报是否可以成为将数据添加到 blob 的函数的触发器?
可以从警报刀片定义具有功能触发器操作类型的操作组。如下图所示,该功能无法开启App Service Auth。
您还可以从 Analytics 中创建的自定义查询发出警报。例如,搜索过去一小时内包含“错误”一词的所有跟踪日志:
traces |
where message contains "Error" and timestamp >= ago(1h)
保存查询并创建新的警报规则并将该查询用作警报条件。
访问函数中的事件内容:
HttpRequestMessageFeature feature = new HttpRequestMessageFeature(request.HttpContext);
HttpRequestMessage req = feature.HttpRequestMessage;
var content = await req.Content.ReadAsStringAsync();
然后使用WindowsAzure.StorageSDK 将内容推送到 blob。
var blobClient = storageAccount.CreateCloudBlobClient();
var container = blobClient.GetContainerReference(containerName);
var blockBlob = container.GetBlockBlobReference(fileName);
await blockBlob.UploadTextAsync(content).ConfigureAwait(false);