azure - Http Trigger Azure函数随机返回404
问题描述
我们在函数运行时 3 上有一个 .net 核心 azure 函数。它在本地运行得非常好,而且大部分时间都在我们部署的应用程序服务上运行。但是,对于在其他时间完全正常的请求,我们遇到了间歇性的 404 响应。
对于失败的请求,我们的日志或应用程序洞察遥测中没有出现任何条目。
感觉很像 azure-function-host github 项目中的这个问题: https ://github.com/Azure/azure-functions-host/issues/5247 尽管这是针对函数运行时 1 或 2。
有没有人有类似的问题或知道任何方式来获取可能突出我们遇到的问题的额外日志信息。
解决方案
这可能发生在横向扩展或您的函数应用程序将服务器从一个更改为另一个(出于某种原因)期间。这实际上是无服务器应用程序的缺点。
但我能给你的建议是:
创建与此类似的 HeartBeat 函数:
private readonly IAsyncRepository<Business> _businessAsyncRepository; public HeartBeat(IAsyncRepository<Business> businessAsyncRepository) { // Your all DI injections are here _businessAsyncRepository = businessAsyncRepository; } [FunctionName(nameof(HeartBeat))] public async Task<IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)] HttpRequest req, ILogger log) { string requestBody = await new StreamReader(req.Body).ReadToEndAsync(); dynamic data = JsonConvert.DeserializeObject(requestBody); return new OkObjectResult("OK"); }
然后在 Application Insights 上创建可用性测试并调用 HeartBeat。
这也将始终为您提供一个温暖的 Azure Functions 实例。但显然,您每次调用心跳时都会将 100 万免费通话用于消费计划,具体取决于您调用 AF 的频率。
推荐阅读
- java - Jackson Annotation 根据另一个字段决定一个字段类
- excel - 使用 for 循环将垂直列表拆分为单独的列
- angular - Angular 测试失败
- reactjs - > 500 个组件的初始渲染速度很慢
- java - 如何使用 MVVM 正确验证登录表单?
- airflow - Airflow:您可以对任务进行描述,以便它们显示在仪表板中吗?
- c++ - 将具有不同字段的结构转换为 uint8 数组
- wpf - 如何找到模板中的 ListBox?
- wpf - 如何从样式更改祖先的属性
- php - 如何在使用`Closure::fromCallback()`创建的闭包中`使用`变量?