【发布时间】:2019-10-16 10:19:56
【问题描述】:
我在多个区域部署了一个时间触发的 Azure 函数,并且我希望在它们之间具有单例行为。例如,如果区域是美国西部和中欧,我希望每次只运行其中一个。这可以实现吗?
正如documentation 所说,TimeTrigger 隐式使用 Singleton 属性来确保每个主机只运行一个函数的一个实例,从而涵盖了这一方面。
为了在所有地区都有相同的行为,我尝试使用带有以下参数的 Singleton:
[Singleton(Account = "myAccount", Mode = SingletonMode.Listener)]
我通过复制我的 C# 解决方案并运行这两个项目在本地对其进行了测试。显示以下错误:
The listener for function 'MyFunction' was unable to start.
Microsoft.Azure.WebJobs.Host.Storage: Must replace singleton lease manager to
support multiple accounts.
我没有找到更多关于 Account 属性的信息,而不是来自 Singleton 类的元数据,即 Gets the name of the Azure Storage account that the blob lease should be created in。我不知道该函数是如何知道如何连接到 Storage 以及在哪里配置连接的。
【问题讨论】:
标签: c# azure concurrency azure-functions azure-blob-storage