3

在具有最新更新的 Visual Studio 2017 中,对于 azure 函数模板,我想要一些可以初始化的东西,例如 webjobs 模板中的 program.cs。

我正在尝试在应用程序初始化时使用新的命名空间管理器创建一个新订阅,以便我可以收听一个服务总线主题。

有没有办法做到这一点?如果是,那怎么办?

4

2 回答 2

2

如果您打算创建将触发此函数的订阅,则无需手动执行此操作。Function App 将在部署时根据您的绑定创建订阅。

对于其他场景(例如定时器触发函数),您可以在静态构造函数中进行初始化:

public static class MyFunction1
{
    static MyFunction1()
    {
        var namespaceManager = NamespaceManager.CreateFromConnectionString(connString);
        if (!namespaceManager.SubscriptionExists("topic1", "subscription1"))
        {
            namespaceManager.CreateSubscription("topic1", "subscription1");
        }
    }

    [FunctionName("MyFunction1")]
    public static void Run(
    // ...
}

静态构造函数将在第一次函数调用时运行。

于 2017-09-14T05:45:42.053 回答
1

对于 azure 函数模板,我想要一些可以初始化的东西,比如 webjobs 模板中的 program.cs。

据我所知,Azure 函数目前对此没有很好的支持。你可以找到一个类似的问题

问题:

我有一个 C# 函数,想知道是否有任何初始化点。我有需要初始化的依赖注入容器,并且想知道在哪里执行此操作。

马修的回复

我们现在没有这方面的好故事。请 在我们讨论的回购中查看未解决的问题。

于 2017-09-14T03:11:33.193 回答