2016-05-12 13 views
2

Azure WebJobは、Webアプリケーション(ジョブを実行する)の設定パラメータAzureWebJobsStorageから接続文字列を取得します。 1つのWebJobを使用して、異なるストレージ内の2つのキューを監視する必要があります。 WebJobに複数の接続文字列を使用することは可能ですか?この記事に関連するAzure Webジョブ複数の接続文字列

+0

複数追加できません異なる名前と値を持つ接続文字列 – henrikmerlander

+0

AFAIK Azure WebJobは親アプリケーションのデフォルトの接続文字列名 "AzureWebJobsStorage"を使用します。 – minuzZ

+0

接続文字列を使用するコード例はありますか? – henrikmerlander

答えて

2

ことが可能です:

:あなたのケースでは

あなたの関数は、そのように見えることができますので、あなたは貴様のストレージアカウントにバインドしたいのですが

public static void JobQueue1(
    [QueueTrigger("queueName1"), 
    StorageAccount("storageAccount1ConnectionString")] string message) 
{ 

} 

public static void JobQueue2(
    [QueueTrigger("queueName2"), 
    StorageAccount("storageAccount2ConnectionString")] string message) 
{ 

} 

configから接続文字列を取得する場合は、カスタム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
内の接続文字列のキーです
+0

ご返信ありがとうございます。ありがとう、それは動作します! :) – minuzZ

関連する問題