gpt4 book ai didi

c# - 添加 Azure Function (v3) 绑定(bind)到 BlobTrigger 的 RequestTelemetry 的自定义属性

转载 作者:行者123 更新时间:2023-12-03 01:22:33 27 4
gpt4 key购买 nike

我想将自定义属性添加到为用 C# 编写的 Azure 函数 (V3) 生成的 RequestTelemetry 中。

感谢this StackOverflow post ,我设法通过 HttpTrigger 绑定(bind)实现了该功能。

var requestTelemetry = req.HttpContext?.Features.Get<RequestTelemetry>();
requestTelemetry.Properties.Add("MyProp", "Some value");

但是,当我尝试使用 BlobTrigger 绑定(bind)对另一个函数执行相同的操作时,它变得令人困惑。第一个挑战是:

How to get current RequestTelemetry in a function that is usingBlobTrigger binding?

在具有 HttpTrigger 绑定(bind)的函数中,该函数被注入(inject) HttpRequest 参数

public async Task<IActionResult> Upload(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = "upload/{name}")] HttpRequest req,
string name,
ILogger log,
ExecutionContext context)
{
...
}

因此我们可以使用HttpRequest获取当前的RequestTelemetry。但是,带有 BlobTrigger 的函数怎么样:

    [FunctionName("Create-Thumbnail")]
public async Task CreateThumbnail([BlobTrigger("input/{name}", Source = BlobTriggerSource.EventGrid, Connection = "AzureWebJobsStorage")] Stream image,
IDictionary<string,string> metadata,
string name,
ExecutionContext context)
{
...
}

我尝试注入(inject)HttpRequest并使用与HttpTrigger函数相同的方式。但没有成功。

经过数小时的广泛研究,我找不到与此问题相关的任何文档或帖子。

有人可以提供一些建议吗?

最佳答案

据我所知,使用 blob 触发器时没有 http 请求。您仍然可以通过设置如下属性来将自定义属性添加到执行期间生成的遥测数据中:

// The current telemetry item gets a property. 
// Useful if the function is not triggered by an http request
Activity.Current.AddTag("setUsingTag", "setUsingTag");

// Subsequent telemetry gets this property attached
Activity.Current.AddBaggage("setUsingActivityBaggage", "setUsingActivityBaggage");

当使用 Baggage 而不是 Tag 时,自定义属性将添加到执行期间生成的所有遥测数据中,例如依赖项调用等。

另请参阅this github thread 。它还mentions更高版本的 AI 中可能会引入一个错误,可能会迫使您降级 AI 才能使其正常工作。

<小时/>

感谢这个GitHub issue ,在将 System.Diagnostics.DiagnosticSource 降级到版本 4.6 后,这终于可以工作了

<PackageReference Include="System.Diagnostics.DiagnosticSource" Version="4.6.0" />

关于c# - 添加 Azure Function (v3) 绑定(bind)到 BlobTrigger 的 RequestTelemetry 的自定义属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68853729/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com