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