2017-12-04 25 views
1

私はコンテナからファイルを取り込む必要がある紺碧の上にC#関数を実行しています。唯一の問題は、入力ファイルへのパスが毎回異なってくる可能性があり、入力ファイルの数が1から4または5まで変化することです。したがって、デフォルトの入力Blobバインディングを使用することはできません私が知っている限り。私のオプションは、コンテナに匿名アクセスを与え、リンクを介してファイルを取得するか、動的入力バインディングを取得する方法を見つけ出すだけです。Azure関数 - Blobストリーム動的入力バインディング

実行時(C#コード内)に入力BLOBストリームのパスを宣言する方法を知っている人はいますか?

それは、私がダイナミック出力バインディングのために事前に

using (var writer = await binder.BindAsync<TextWriter>(
        new BlobAttribute(containerPath + fileName))) 
    { 
     writer.Write(OutputVariable); 
    } 

おかげでこれを見つけることができたダイナミック出力バインディングについてはcuaNの

答えて

1

を助けている場合は、次のコードスニペット活用できます

var attributes = new Attribute[] 
{  
    new BlobAttribute("{container-name}/{blob-name}"), 
    new StorageAccountAttribute("brucchStorage") //connection string name for storage connection 
}; 
using (var writer = await binder.BindAsync<TextWriter>(attributes)) 
{ 
    writer.Write(userBlobText); 
} 

enter image description here

注:上記のコードは、存在しない場合はターゲットblobを作成し、存在する場合は既存のblobをオーバーライドします。さらに、StorageAccountAttributeを指定しないと、ターゲット設定のブロブは、アプリ設定AzureWebJobsStorageに基づいてストレージアカウントに作成されます。

さらに、詳細はAzure Functions imperative bindingsに従うことができます。

UPDATE:

var blobString = await binder.BindAsync<string>(attributes); 

をそれとも、CloudBlockBlobへの結合タイプを設定し、紺碧のために次の名前空間を追加することができます。ダイナミック入力は次のように、あなただけのバインディングタイプを変更することができます結合のために

ストレージブロブ:

#r "Microsoft.WindowsAzure.Storage" 
using Microsoft.WindowsAzure.Storage.Blob; 

CloudBlockBlob blob = await binder.BindAsync<CloudBlockBlob>(attributes); 

さらに、の操作の詳細の場合は、hereに従うことができます。

+0

これは動的出力に役立ちますが、入力ブロブと同様の処理を行うにはどうすればよいですか? 私の関数は、使用する入力ファイルを特定するために使用するキューアイテムを取りますが、実行時に入力パスを宣言するためのドキュメントを見つけることができませんでした。 –

+0

私の回答が更新され、 、あなたはそれらを参照することができます。 –

関連する問題