У меня есть функция Azure, запускаемая по времени, развернутая в нескольких регионах, и я хочу, чтобы в них было одноэтапное поведение. Например, если регионы находятся на западе США и в центральной Европе, я хочу, чтобы каждый раз запускался только один из них. Можно ли этого достичь?
Как сказано в документации , 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
. Я не знаю, как функция знает, как подключиться к хранилищу и где настроить соединение.