AZF0002:HttpClient 使用效率低下

HttpClient[FunctionName] 修饰的方法中实例化时,将触发此规则。

价值
规则 ID AZF0002
类别 [可靠性]
严重性 警告

规则说明

简单地使用 HttpClient 进行 HTTP 请求会有几个问题,包括易于耗尽套接字。 在函数应用中,在函数方法主体中调用 HttpClient 构造函数会在每次调用函数时创建一个新实例,从而放大了这些问题。 对于在消耗托管计划上运行的应用,HttpClient 使用效率低下可能会耗尽该计划的出站连接限制

建议的最佳做法是通过依赖项注入使用 [IHttpClientFactory],或使用单个静态 实例,具体取决于应用程序的性质。

如何修复违规行为

  • HttpClient 实例化迁移到函数外部定义的静态实例,如此示例所示。

  • 通过HttpClient使用 IHttpClientFactory 为函数提供 。 这是用于解决此冲突的建议方法。

何时抑制此规则

不应抑制此规则。

后续步骤

若要详细了解 Azure Functions 中的连接管理最佳做法,请参阅管理 Azure Functions 中的连接

若要详细了解 HttpClient 行为问题和管理,请参阅使用 IHttpClientFactory 实现可复原的 HTTP 请求