标签: azure-functions-runtime

Azure Functions host.json:maxPollingInterval

如果我阅读 maxPollingInterval 的文档:

队列轮询之间的最大间隔

从这里: https: //learn.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-queue#hostjson-settings

我已在 host.json 中将其设置为 00:01:00。我的理解是,我已经告诉函数运行时它可能不会每 2 分钟进行一次轮询。它必须至少每分钟执行一次,但是如果它正在读取的队列是“热”的,即存在一致的消息流,那么它会比我指定的分钟更频繁地执行此操作。如果消息流下降,那么运行时将开始减少检查频率,直到达到一分钟。

这理解正确吗?

我尝试在 webjob sdk 中找到此池机制的代码: https: //github.com/Azure/azure-webjobs-sdk和 Azure Functions 运行时:https://github.com/Azure/Azure-Functions,但我不知道要照顾什么(而且我还没有花那么多时间在这上面)。

azure azure-functions azure-functions-runtime

9
推荐指数
1
解决办法
6405
查看次数

Azure Functions 中令人费解的存储事务

我有一个项目,其中有几个按计划运行的基于 .NET Core 的 Azure Functions。其中一个每 10 分钟运行一次,用于更新视图计数,类似于 SO 跟踪问题视图的方式,另一个则每周发送一次电子邮件。这些功能运行良好一年左右。我最近将它们更新为使用 Azure Functions SDK v3 和 Azure Functions 运行时 v3 以及 .NET Core 3.1(基本上从 .NET Core 2.1 迁移到 .NET Core 3.1,因此我需要更新函数运行时)。

有一次我收到了一张比平常高得多的账单。事实证明,共享相同底层存储帐户的函数开始对存储进行大量 API 事务。每 5 分钟就有数千次。通常,每次运行都会生成大约 100 个存储事务(可能是检索函数文件?),但在某些时候事务会急剧增加。重新启动功能后,交易会降至正常,并且几天内一切正常,然后它们再次跳跃并保持高位,直到重新启动。

功能代码没有改变,仅升级了SDK和运行时。该函数代码通过 SDK 提供的记录器进行恒定数量的日志写入(例如 7),并且不以任何其他方式与存储交互。

我有两个相同的环境,一个用于测试,一个用于生产,并且都有相同的问题。该功能发生故障所需的时间间隔是几天,但每次似乎都不同。但是,如果我同时重新启动测试和生产,下一个峰值将在两个环境中同时发生,因此存在确定性。

根据我通过 Metrics 工具的调查,违规交易类型是 Create、Close 和 ChangeNotify,以及一些 Cancel(但少于其他)。该存储不用于其他任何用途(事实上,它的存在只是因为 Azure Functions 需要后备存储来存储其文件或其他内容)

这是相关的触发代码

[FunctionName("ViewCountUpdater")]
public static async Task RunAsync([TimerTrigger("0 */10 * * * *"/*, RunOnStartup = true*/)]TimerInfo timer, ILogger log, ExecutionContext context)
Run Code Online (Sandbox Code Playgroud)

我相信我遇到了 Azure Functions 运行时或 Azure Functions .NET Core …

azure .net-core azure-functions azure-functions-runtime

9
推荐指数
1
解决办法
347
查看次数

无法从Visual Studio 2017调试和发布Azure功能

我曾经使用Visual Studio 2017调试和发布我的Azure功能项目.

但突然间一切都停止了.

当我尝试调试项目时,我收到错误"无法直接启动具有类库输出类型的项目.".当我尝试发布项目时,发布到Azure的选项消失了,我只提供发布到文件夹.在尝试创建配置文件时,我也只能选择"文件夹配置文件"类型.

我在.csproj文件中的"Project Sdk"属性错误但我使用新创建的Azure函数项目进行了双重检查后,在Web项目中看到了类似的行为,它是相同的.当我创建一个新的功能项目时,我可以像以前一样发布到Azure.

我正在使用以下包:

以及.NET Framework 4.7.1.

此外,我正在从包含Business Logic的解决方案中引用其他一些项目.

我最终创建了一个新的函数项目,复制了那里的所有内容,现在它按预期再次运行.

有没有人知道如何发生这种情况以及如何在不创建任何东西的情况下解决这个问题?

.net c# azure azure-functions azure-functions-runtime

8
推荐指数
3
解决办法
1922
查看次数

删除Visual Studio发布的Azure功能

我通过visual studio发布了Azure Function.现在,我想删除已发布的Azure功能,并禁用要删除的按钮.有没有办法删除从VS发布的azure函数?

azure azure-functions azure-functions-runtime

8
推荐指数
1
解决办法
2681
查看次数

如何解决 AZFD0005 Azure Function App 错误

在此输入图像描述

目前,Node Azure Function App 出现问题,抛出错误AZFD0005。节点应用程序在本地运行良好。Azure 的具体错误是:

Microsoft.Azure.WebJobs.Script.ExternalStartupException : Error building configuration in an external startup class. ---> Microsoft.Azure.WebJobs.Script.HostInitializationException : Referenced bundle Microsoft.Azure.Functions.ExtensionBundle of version 1.8.1 does not meet the required minimum version of 2.6.1. Update your extension bundle reference in host.json to reference 2.6.1 or later. For more information see https://aka.ms/func-min-bundle-versions.

在此输入图像描述

我们的资源组中共有 3 个功能应用程序,似乎从2023 年 4 月 7 日星期五开始出现此错误。在此之前,功能运行良好,没有错误。我们可以重点关注1。

我尝试了几种不同的方法来解决此错误,第一种方法是显而易见的。让我们将问题应用程序称为stackoverflow-test-app

  1. 我使用门户删除了函数 app : stackoverflow-test-app,并使用基础设施管道重新部署,并将 host.json 升级为[3.3.0, 4.0.0)。-这并没有消除错误

  2. 我部署了一个函数应用程序:stackoverflow-test-app-two,使用基础设施管道使用新名称,并使用与stackoverflow-test-app …

azure azure-functions azure-functions-runtime

8
推荐指数
1
解决办法
4220
查看次数

Azure函数IWebJobsStartup实现中的ExecutionContext

如何获取对函数启动类中的ExecutionContext.FunctionAppDirectory的访问权限,以便我可以正确设置我的Configuration。请查看以下启动代码:

[assembly: WebJobsStartup(typeof(FuncStartup))]
namespace Function.Test
{
    public class FuncStartup : IWebJobsStartup
    {
        public void Configure(IWebJobsBuilder builder)
        {
            var config = new ConfigurationBuilder()
               .SetBasePath(“”/* How to get the Context here. I cann’t DI it 
                           as it requires default constructor*/)
               .AddJsonFile(“local.settings.json”, true, reloadOnChange: true)
               .AddEnvironmentVariables()
               .Build();

        }
    }
 }
Run Code Online (Sandbox Code Playgroud)

azure azure-functions azure-functions-runtime azure-functions-core-tools

7
推荐指数
2
解决办法
1060
查看次数

无法在 VS Code IDE 中调试 Python Azure 函数。获取连接 ECONNREFUSED 127.0.0.1:9091 错误

我正在尝试使用 VS code IDE 调试 Azure 函数 python 代码。
Local.settings.json 使用以下配置更新

"AzureWebJobsStorage": "UseDevelopmentStorage=true"
Run Code Online (Sandbox Code Playgroud)

到目前为止我尝试过的事情:-

  • 我重新安装了VS代码,
  • 将 Azure Function Core 工具从 4.0 降级到 3.0
  • 任何解决这个问题的指示都会非常有帮助。

以下是尝试调试用 Python 编写的 Azure 函数时 VS Code IDE 上的错误:

在此输入图像描述

下面的Host.json

{
  "version": "2.0",
  "logging": {
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "excludedTypes": "Request"
      }
    }
  },
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle",
    "version": "[2.*, 3.0.0)"
  },
  "functionTimeout": "20:00:00",
  "extensions": {
    "durableTask": {
      "maxConcurrentActivityFunctions": 1
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

下面是launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Attach to Python …
Run Code Online (Sandbox Code Playgroud)

visual-studio-code azure-functions azure-functions-runtime azure-functions-core-tools azurite

7
推荐指数
1
解决办法
9706
查看次数

什么是使用 Azurite 作为运行时存储帐户 (AzureWebJobsStorage)?

我刚刚开始创建天蓝色函数。我正在创建一个新的天蓝色函数并获得以下选项。这是什么意思?如果我选择或取消选择它怎么办?我还没有找到任何有关它的文档。

在此输入图像描述

它显示了这些信息,但我根本不明白。

在此输入图像描述

c# azure azure-functions azure-functions-runtime .net-6.0

7
推荐指数
1
解决办法
1697
查看次数

Azure 函数甚至在本地执行 RunOnStartup = false

根据我的理解 Azure 函数将执行

如果RunOnStartup = true

   1. on startup 
   2. if a host changed 
   3. a new deployment happen
   4. on schedule time
Run Code Online (Sandbox Code Playgroud)

并且,如果RunOnStartup = false 或未定义

   1. on schedule time only
Run Code Online (Sandbox Code Playgroud)

但是当我使用RunOnStartup = false在本地运行它时,它也在启动时执行,并且在 azure 门户上运行良好。任何人都可以请建议为什么会发生?

更新:- 功能代码:-

    public static void Run([TimerTrigger("0 30 3 * * *", RunOnStartup = false)]TimerInfo myTimer, TraceWriter log, ExecutionContext executionContext)
    {
        log.Info($"Function1- Timer trigger function executed at: {DateTime.Now}");
        try
        {
            //main work
        }
        catch (Exception ex)
        {
            log.Error(ex.Message, ex);
        } …
Run Code Online (Sandbox Code Playgroud)

azure azure-functions azure-functions-runtime azure-functions-core-tools

6
推荐指数
1
解决办法
3295
查看次数

EventHubTriggerAttribute 在命名空间“Microsoft.Azure.WebJobs”中不存在

在 Visual Studio 中创建 Azure Function 的步骤如下

  1. 创建新项目并选择Azure Function模板

在此处输入图片说明

  1. 选择 Azure Function V2(.net 代码)和 IoT Hub Trigger

在此处输入图片说明

  1. 生成的代码但有参考错误。

     using IoTHubTrigger = Microsoft.Azure.WebJobs.EventHubTriggerAttribute;
     using Microsoft.Azure.WebJobs;
     using Microsoft.Azure.WebJobs.Host;
     using Microsoft.Azure.EventHubs;
     using System.Text;
     using System.Net.Http;
     using Microsoft.Extensions.Logging;
    
     namespace DeviceMessageFunction_v2
     {
       public static class Function1
       {
          private static HttpClient client = new HttpClient();
    
          [FunctionName("Function1")]
          public static void Run([IoTHubTrigger("messages/events", Connection = "")]EventData message, ILogger log)
          {
             log.LogInformation($"C# IoT Hub trigger function processed a message: {Encoding.UTF8.GetString(message.Body.Array)}");
          }
       }
     }
    
    Run Code Online (Sandbox Code Playgroud)

CS0234 命名空间“Microsoft.Azure.WebJobs”中不存在类型或命名空间名称“EventHubTriggerAttribute”(您是否缺少程序集引用?)DeviceMessageFunction_v2 C:\Functions\DeviceMessageFunction_v2\Function1.cs

尝试添加引用,但没有运气

在此处输入图片说明

这是我的工具和框架详细信息 …

azure azure-functions azure-functions-runtime

6
推荐指数
1
解决办法
2049
查看次数