2015-10-05 15 views
5

私は、ローカルマシンのファイルパスを受け取り、それを処理し、出力ファイルを再びローカルパスに生成するレガシーexeを持っています。 Azure Webjobでこれを実行できますか?Azure Webjob - ローカルファイルシステムへのアクセス

ブロブストレージからファイルをダウンロードしてローカルファイルシステムに保存するラッパーexeを作成しようと考えていました。>出力を取得してブロブにアップロードし直してください。

このアプローチは機能しますか、または制限がありますか?

+0

私はこの記事が古いことを認識していますが、解決策を見つけることになりましたか?私はWebjob経由でローカルファイルのpathesにアクセスしようとするのと同じ問題があります。 –

答えて

3

このようなexeは、書き込み先のフォルダを/から渡す限り、正常に実行されます。 WebJobに入る前に、WebアプリケーションでKudu Consoleを使って手動でテストし、正常に動作することを確認することをお勧めします。

次に、BLOBの入出力を処理することを目標とする場合は、ラッパーexeが機能するはずです。明らかに、それはブログストリームで直接作業することがよりきれいですが、レガシーのexeが指定されていて変更できない場合、ラッパーのアプローチはうまくいくはずです。

+0

Davidに感謝します。私はKuduのコンソールを試してみる – user3863695

+0

Kuduのコンソールで試したところ、見つかったのは:レガシーのexeはWindows SDK(Windows 8.1 SDKとPhone SDK)に依存しているため、実行に失敗しています。このレガシーexeをAzure WebJob上で実行させることは可能でしょうか? – user3863695

+1

関連する依存関係を持つ方法が見つかった場合にのみ実行できます(低レベルのシステムの場合は必ずしも可能ではありません)。 Igは、Kudu Consoleを介して動作させる方法はありません.WebJobs経由でも全く同じ環境で動作するため、動作しません。 –

4

最終的にラッパーを作成すると、WebJobs SDKのファイルバインディング拡張があなたの興味を引くかもしれません:https://github.com/Azure/azure-webjobs-sdk-extensions。例:

// When new files arrive in the "import" directory, they 
    // are uploaded to a blob container then deleted. 
    public static void ImportFile(
     [FileTrigger(@"import\{name}", "*.dat", autoDelete: true)] Stream file, 
     [Blob(@"processed/{name}")] CloudBlockBlob output, 
     string name, 
     TextWriter log) 
    { 
     output.UploadFromStream(file); 
     file.Close(); 

     log.WriteLine(string.Format("Processed input file '{0}'!", name)); 
    } 
+0

ありがとうございました。私はファイルバインディング拡張を試みます。 – user3863695

関連する問題