【发布时间】:2021-07-02 07:41:33
【问题描述】:
是否可以从位置队列中创建警报?我有一个 blob 触发功能,但是当它失败 x 次数时,它会将此消息抛出到毒队列中。我要做的是在该毒物队列的计数为x 时创建警报。
- 我可以使用 sidecart 方法来做到这一点,我有一个独立的服务来监控毒物队列
- 看到这个方法https://stackoverflow.com/a/46334184/1134076
- 希望使用
blobproperties覆盖来存储一些metadata以便我可以跟踪失败,但似乎没有办法做到这一点?我正在考虑最后一次尝试跟踪事件以声明moving message to poison queue
有更好的方法吗?
[FunctionName("MyFunction")]
public async Task Run(
[BlobTrigger("input-queue", Connection = "ConnectionString")] Stream blobContent,
string name,
System.Uri uri,
IDictionary<string, string> metaData,
BlobProperties properties,
ILogger log)
编辑 注意到这个函数重载:
[FunctionName("MyFunction")]
public async Task Run(
[BlobTrigger("input-queue", Connection = "ConnectionString")] ICloudBlob blobContent,
string name,
System.Uri uri,
IDictionary<string, string> metaData,
BlobProperties properties,
ILogger log)
{
if (!blobContent.Metadata.ContainsKey("mycount"))
{
blobContent.Metadata["mycount"] = "1";
await blobContent.SetMetadataAsync();
}
else
{
var value = int.Parse(blobContent.Metadata["mycount"]);
value++;
blobContent.Metadata["mycount"] = value.ToString();
await blobContent.SetMetadataAsync();
}
throw new Exception(("Testing Function"));
}
看起来有点矫枉过正,但我可以在这里跟踪失败计数并编写逻辑来跟踪自定义事件。
【问题讨论】:
标签: azure-functions poison-queue