我们有一个.net core azure函数在函数运行时3。这工作完美地运行在本地和我们部署的应用程序服务的大部分时间。然而,我们经历了间歇性的404响应请求,在其他时间完全正常。
在我们的日志或应用程序洞察力遥测中没有出现失败请求的条目。
感觉很像 azure-function-host github 项目上的这个问题。https:/github.comAzureazure-functions-hostissues5247.虽然那是针对函数运行时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实例。但是很明显,你每次调用心跳的时候,都会根据你调用AF的频率,把你的1m免费调用消耗计划花掉。