Веб-задание Azure получает строку подключения из параметра конфигурации веб-приложения (которое запускает задание) - AzureWebJobsStorage. Мне нужно контролировать две очереди в разных хранилищах с помощью одного WebJob. Возможно ли каким-то образом иметь несколько строк подключения для веб-задания?
Несколько строк подключения веб-задания Azure
Ответы (1)
В связи с этим постом возможно:
В вашем случае вы хотите привязать к разным учетным записям хранения, чтобы ваша функция выглядела так:
public static void JobQueue1(
[QueueTrigger("queueName1"),
StorageAccount("storageAccount1ConnectionString")] string message)
{
}
public static void JobQueue2(
[QueueTrigger("queueName2"),
StorageAccount("storageAccount2ConnectionString")] string message)
{
}
Вы также можете реализовать собственный INameResolver, если хотите получить строки подключения из конфигурации:
public class ConfigNameResolver : INameResolver
{
public string Resolve(string name)
{
string resolvedName = ConfigurationManager.AppSettings[name];
if (string.IsNullOrWhiteSpace(resolvedName))
{
throw new InvalidOperationException("Cannot resolve " + name);
}
return resolvedName;
}
}
использовать это:
var config = new JobHostConfiguration();
config.NameResolver = new ConfigNameResolver();
...
new JobHost(config).RunAndBlock();
И ваши новые функции выглядят так:
public static void JobQueue1(
[QueueTrigger("queueName1"),
StorageAccount("%storageAccount2%")] string filename)
{
}
public static void JobQueue2(
[QueueTrigger("queueName2"),
StorageAccount("%storageAccount1%")] string filename)
{
}
- storageAccount1 и storageAccount2 - это ключ строки подключения в
appSettings
person
Thomas
schedule
13.05.2016
AzureWebJobsStorage
просто default, но не единственное. вы можете использовать несколько строк подключения. - person Youngjae   schedule 13.05.2016