Azure Function 在启动时运行代码

标签 azure azure-functions

我正在尝试找到一种在 Azure 函数启动时运行一些代码的方法(在其中设置连接字符串、DI 和其他配置)。所以现在,它调用 Run 方法作为入口点,并在生成的 function.json 中使用此方法:

"entryPoint": "MyFunctionApp.MessageReceiver.Run"

此 Run 方法使用 EventHubTrigger 并处理传入消息,如下所示:

[FunctionName("MessageReceiver")]
        public static void Run([EventHubTrigger("eventHubName", Connection = "eventHubConnection")]string message, TraceWriter log)
        {
            if (string.IsNullOrWhiteSpace(message))
            {
                log.Info($"C# Event Hub trigger function processed a message: {message}");
            }
        }

有没有一种方法可以让我在调用此 Run 方法之前在初始启动时运行一些代码?或者有没有办法声明一个入口点,我可以在此类之前调用​​该入口点,然后调用 Run() 并以某种方式传递触发器?我正在尝试找到一种方法来避免一些黑客行为,例如设置 bool 属性来查看应用程序是否已启动。

最佳答案

您可以实现 IExtensionConfigProvider。这些将被扫描并在“启动”时执行。

using Microsoft.Azure.WebJobs.Host.Config;
namespace MyFunctionApp
{
  public class Startup : IExtensionConfigProvider
  {
     public void Initialize(ExtensionConfigContext context)
     {
        // Put your intialization code here.
     }
  }
}

关于Azure Function 在启动时运行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46553687/

相关文章:

c# - 如何检查辅助角色是否正在 Azure 模拟器中运行

python-3.x - 服务总线未在 Azure 上触发,在本地工作

azure - 具有 Http Azure 功能的 Http 过滤器

c# - 使用 TLS 1.2 从 HttpClient 连接到 Azure FrontDoor 后面的 API

azure - 使用 Azure 逻辑应用程序的 SQL 连接器我想获取插入的行 ID

c# - 在Azure函数中使用ffmpeg使用c#剪切文件

c# - 由 Blob 存储上的 EventGrid 触发的 Azure 函数

azure - 是否可以将功能管理(功能标志)与 Azure Functions 结合使用?

azure - 授予服务主体管理员同意

azure - 应用服务计划中的应用之间如何分配资源