当 HttpClient 在 [FunctionName]
修饰的方法中实例化时,将触发此规则。
价值 | |
---|---|
规则 ID | AZF0002 |
类别 | [可靠性] |
严重性 | 警告 |
规则说明
简单地使用 HttpClient
进行 HTTP 请求会有几个问题,包括易于耗尽套接字。 在函数应用中,在函数方法主体中调用 HttpClient
构造函数会在每次调用函数时创建一个新实例,从而放大了这些问题。 对于在消耗托管计划上运行的应用,HttpClient
使用效率低下可能会耗尽该计划的出站连接限制。
建议的最佳做法是通过依赖项注入使用 [IHttpClientFactory
],或使用单个静态 实例,具体取决于应用程序的性质。
如何修复违规行为
将
HttpClient
实例化迁移到函数外部定义的静态实例,如此示例所示。通过
HttpClient
使用 IHttpClientFactory 为函数提供 。 这是用于解决此冲突的建议方法。
何时抑制此规则
不应抑制此规则。
后续步骤
若要详细了解 Azure Functions 中的连接管理最佳做法,请参阅管理 Azure Functions 中的连接。
若要详细了解 HttpClient
行为问题和管理,请参阅使用 IHttpClientFactory 实现可复原的 HTTP 请求