2017-07-18 9 views
1

私はAzure関数(私はPythonを使用しています)で実行したいジョブに関するいくつかのデータを渡すためにキュートリガを使用しています。データの一部は、BLOBストレージから取得したいファイルの名前です。このため、入力バインディングでファイルパス/名前を宣言することは、キュートリガーを取得するまで関数がファイル名を持たないため、正しい方向のようには見えません。バインドせずにBLOBストレージにアクセスしますか?

私が試みた1つのアプローチは、azure-storage sdkを使用することですが、Azure関数内から認証を処理する方法がわかりません。

これに別の方法がありますか?

答えて

1

Function.jsonでは、blob入力バインディングはキューペイロードのプロパティを参照できます。キューペイロードはJSONオブジェクトである必要があります これはfunction.jsonなので、すべての言語で機能します。

{ 
    "name": "imageSmall", 
    "type": "blob", 
    "path": "container/{filename}", 
} 

そして、あなたのキューメッセージのペイロードがある場合は、function.jsonあなたの中に、例えばhttps://docs.microsoft.com/en-us/azure/azure-functions/functions-triggers-bindings

で公式ドキュメントを参照してください。そして、

{ 
"filename" : "myfilename" 
} 

{ファイル名}トークンBLOBのパスの式が置換されます。

+0

これは、黒い魔法の紺碧がボンネットの下でやっていることです。ありがとう! – apengwin

0

通常、関数文字列のアプリケーション設定に接続文字列/アカウントキーを格納し、環境変数にアクセスして読み込みます。私はアズールでのpythonを使用していないが、私はあなたが聞いて何をPython関数のone example見つけた

connection = open(os.environ['ConnectionString']).read() 

のようにそれが見えると信じて:キュー・トリガー+ブロブ操作を。

0

秘密の保存は、(アプリケーションの設定を使用して)行うこともできます。

Azureでは、Azure関数のAppサービスにアクセスし、[アプリケーション設定]をクリックします。次に、「App Settings」リストまでスクロールします。このリストはKey-Valueのペアで構成されています。キーを追加します。たとえば、MY_CON_STRと実際の接続文字列を値として追加します。

は今、あなたのアプリケーション(この例では、あなたの関数)で、あなたがそのキーを使用して保存されている値をロードすることができ、この時点で

[保存]をクリックすることを忘れないでください。たとえば、Pythonで、あなたが使用することができます。設定はローカルに保存されていないので、あなたはAzureの中からそれを実行する必要があること

os.environ['MY_CON_STR']

注意を。残念ながら、Azure関数アプリケーションにはweb.configファイルが含まれていません。

関連する問題