Http Trigger Azure函数随机返回404。

问题描述 投票:0回答:1

我们有一个.net core azure函数在函数运行时3。这工作完美地运行在本地和我们部署的应用程序服务的大部分时间。然而,我们经历了间歇性的404响应请求,在其他时间完全正常。

在我们的日志或应用程序洞察力遥测中没有出现失败请求的条目。

感觉很像 azure-function-host github 项目上的这个问题。https:/github.comAzureazure-functions-hostissues5247.虽然那是针对函数运行时1或2的问题。

有谁遇到过类似的问题,或者知道有什么方法可以获得额外的日志信息,以突出我们遇到的问题。

azure azure-functions http-status-code-404 serverless
1个回答
0
投票

这可能发生在扩大规模或您的功能应用程序从一个服务器到另一个(出于某种原因)。这其实就是无服务器应用的弊端。

但我可以给你的建议是。

  • 创建类似这样的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。

enter image description here

这样也能让你随时有一个温暖的Azure Functions实例。但是很明显,你每次调用心跳的时候,都会根据你调用AF的频率,把你的1m免费调用消耗计划花掉。

© www.soinside.com 2019 - 2024. All rights reserved.