Azure Application Insights 警报是否可以触发其他功能?

Is it possible for an Azure Application Insights Alert to trigger another function?

我想使用 Application Insights 来监视链接多个 Azure Functions 的逻辑应用程序。我希望链尽可能安全,如果出现问题,我希望函数无法正确处理 http 请求。 我想我可以在出现问题时从 Application Insights 发出警报,但是我不确定如何将失败的消息获取到 blob 或 "failed message queue".

Application Insights 警报是否可能触发将数据添加到 blob 的函数?

可以从 Alerts blade 中定义具有函数触发动作类型的动作组。如下图所示,App Service Auth无法在该功能上启用。

您还可以通过在 Analytics 中创建的自定义查询发出警报。例如。搜索过去一小时内包含单词 "Error":

的所有跟踪日志
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);