试图确定与包含HttpClient的Azure Function一起使用的最佳调用模式,该HttpClient在头中包含一个Auth token。
我可以使用AsyncLazy来避免HttpClient的膨胀。但是,我担心token的线程安全问题。
目前的计划是使用一个Durable函数和一个锁住的Orchestrater。有没有更好的方法?
Azure 函数支持依赖注入,因此,您的函数的类可以接收到一个由 HttpClient
或 IHttpClientFactory
- 看到 https:/docs.microsoft.comen-usazureazure-functionsfunctions-dotnet-dependency-injection。 和 https:/docs.microsoft.comen-usdotnetarchitecturemicroservicesimplement-resilient-applicationsus-httpclientfactory-to-replement-resilient-http-requests。. 这是推荐的实例化HttpClients的方式,而不是自己管理它们。
关于令牌,如果它从不改变,那么你可以使用 IHttpClientFactory
并将其配置为创建一个 HttpClient
并将其添加到 DefaultRequestHeaders
. 如果它确实改变了,那么我建议使用一个 HttpRequestMessage
的头来发送你的请求,而不是直接将其应用于 HttpClient
.