30 分钟后 Azure 函数超时

Sha*_*eKm 3 .net c# asp.net-core azure-functions azure-functions-runtime

我已经设置了 Azure Function v3。根据本文档配置标准计划:https://learn.microsoft.com/en-us/azure/azure-functions/functions-host-json#functiontimeout。另外,将 functionTimeout 设置为 Unlimited

标准(S1:1)计划是否正确?我是否需要将其更改为 P1V12 才能将其设置为“无限”超时?

在此输入图像描述 在此输入图像描述 主机.json:

在此输入图像描述

30 分钟后继续崩溃: 在此输入图像描述

好像没有考虑host.json?还是计划不正确?请帮忙。

Sha*_*eKm 5

我能够让它工作的是添加一个属性:

[Timeout("05:00:00")]
[FunctionName("MyFunction")] 
Run Code Online (Sandbox Code Playgroud)

似乎 host.json 文件被忽略

编辑 -使用 HOST.JSON 文件修复

找到这个线程:https ://github.com/Azure/azure-functions-servicebus-extension/issues/81

解决方案: https://github.com/Azure/azure-functions-servicebus-extension/issues/34#issuecomment-596781972

public override void Configure(IFunctionsHostBuilder builder)
        {
            var tempServices = builder.Services.BuildServiceProvider();
            var azureFuncConfig = tempServices.GetService<IConfiguration>();
            var configBuilder = new ConfigurationBuilder()
                .AddConfiguration(azureFuncConfig)
                .SetBasePath(Environment.CurrentDirectory)
                .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
                .AddEnvironmentVariables();

            var configReader = configBuilder.Build();
            var config = configBuilder.AddAzureKeyVault(new AzureKeyVaultConfigurationOptions()
            {
                Client = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(new AzureServiceTokenProvider().KeyVaultTokenCallback)),
                Vault = configReader["keyvaulturl"],
                Manager = new DefaultKeyVaultSecretManager()),
            }).Build();

            builder.Services.AddSingleton<IConfiguration>(config);
        }
Run Code Online (Sandbox Code Playgroud)