Azure Web 作业多个连接字符串

Azure web job multiple connection strings

Azure WebJob 从 Web 应用程序(运行作业)配置参数 - AzureWebJobsStorage 获取连接字符串。 我需要使用一个 WebJob 监视不同存储中的两个队列。 是否有可能以某种方式为 WebJob 设置多个连接字符串?

与此相关post可能是:

在您的情况下,您希望绑定到不同的存储帐户,以便您的函数看起来像这样:

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
  • 中的连接字符串键