2017-11-22 4 views
0

私は現在、azure関数でPythonを使用してBLOBストレージからデータを集計し、その結果をcosmosDBに入れるタイマートリガを作成しています。Azure関数python名前付きパラメータの値がありません

私の問題は次のとおりです。パスバインディングで特定のファイルを使用すると、関数は期待通りに動作します。ストレージへの接続がすることになっている場合

以下
Microsoft.Azure.WebJobs.Host: No value for named parameter 'test'. 

は私のfunction.jsonバインディング

{ 
    "bindings": [ 
    { 
     "name": "blobTrigger", 
     "type": "timerTrigger", 
     "direction": "in", 
     "schedule": "0 0 * * * *", 
     "connnection": "AzureWebJobsStorage", 
     "path": "blob/{test}" 
    }, 
    { 
     "type": "blob", 
     "name": "inputBlob", 
     "path": "blob/{test}", 
     "connection": "AzureWebJobsStorage", 
     "direction": "in" 
    }, 
    { 
     "type": "documentDB", 
     "name": "outputDocument", 
     "databaseName": "database1", 
     "collectionName": "functioncollection", 
     "createIfNotExists": false, 
     "connection": "development_DOCUMENTDB", 
     "direction": "out" 
     } 
    ], 
    "disabled": false 
} 

わからないです(コンテナ内のすべてのブロブを取るように)私は、私は次のエラーを取得する、それを変更するたびにトリガーバインディングにもありますが、iveがそれなしで試してみると、私はまだ同じエラーが発生します。

これを解決する方法はありますか?

ありがとうございました。

答えて

0

これは、タイマートリガー/ blob入力バインディングの正当な構文ではありません。 blob pathblob/{test}に設定すると、関数のトリガからの情報にBlobパスをバインドすることになります。例えば。キューメッセージのプロパティにバインドするために使用できます。

トリガーはタイマーなので、BLOB入力バインディングのパラメータとして使用できる情報はありません。

本当にあなたの関数をコンテナ内のすべてのブロブにバインドすることはできません。一度にすべてのブロブにアクセスする必要がある場合は、手動で行う必要があります(専用のバインディングなしで、SDKを使用するだけです)。あるいは、一度に1つのBLOBで操作できる場合は、追加/変更されたBLOBごとにトリガされる関数を作成します。

+0

これで、BLOBストレージコンテナのすべてのファイルに対してタイマートリガを使用できませんか?私はそれを手動で行う必要がありますか?私はストレージアカウントを関数の変数として割り当て、そこから読み込みます。 – Nord112

+0

タイマートリガーは使用できますが、すべてのファイルにBLOB入力バインディングを使用することはできません。もちろん、手動でファイルを読むこともできます。 – Mikhail

+0

こんにちはMikhail、あなたを迷惑してすみませんが、この話題にとても精通しているので、私はあなたに質問するかもしれないと思っていました。私はあなたが提案したようにSDKを使用しています。私のBLOBコンテナ内のファイルを反復しようとすると、IOErrorが発生します。これは私のコード 'ジェネレータのブロブのためのものです:json = json.load(data.get_blob_to_text( 'containername'、open(blob.name)))'そしてエラーは次のようになります: 'IOError:[Errno 2] No such suchファイルまたはディレクトリ: 'test.json''私はこれが絶対パスの問題かもしれないことを認識していますか?これを解決するにはどうすればいいですか? – Nord112

関連する問題