Azure Functions が発表されました。
日本でも実際に使ってみた人がもういますので、詳細はそちらをご参照ください。
大変良いサービスだと思ってます。AWSに合って無かった機能の1つでもあるので。
これで、例えばストレージに画像を上げたらサムネイルを作成するといったことが簡単に出来るようになると思います。*1
で、今回のタイトルにもなっている「Azure Functions は Storage Blob のトリガーをリアルタイムサポートをして欲しい」はそのまま内容です。
現状、Azure Functions における Storage Blob トリガーはリアルタイム性は保証されておらず、ベストエフォートとなっています。つまり、イベントの発火の遅延は避けられないという状況です。
詳細は次のドキュメントの"Azure Storage - blob trigger"の項目に書いてあります。
Note: The Functions runtime scans log files to watch for new or changed blobs. This process is not real-time; a function might not get triggered until several minutes or longer after the blob is created. In addition, storage logs are created on a "best efforts" basis; there is no guarantee that all events will be captured. Under some conditions, logs might be missed. If the speed and reliability limitations of blob triggers are not acceptable for your application, the recommended method is to create a queue message when you create the blob, and use a queue trigger instead of a blob trigger to process the blob.
ストレージのログをウォッチしてイベントを発火しており、ストレージのログが即座に作成されることは保証されておらず、「ベストエフォート」となっています。もし、即座性を担保したければキューを使えということですが、いちいちキューを使うのは面倒くさいというのが人情です。
どうすれば良いの?
現状はキューを使うしかないです。でも、そこは改善してほしいので、feedbackをしましたので、共感してくれる人は Vote お願いします!
Should be support real-time Storage blob triggers
Azure Functions is awesome! I'd like to propose for more convenience.
Currently, Storage blob triggers do NOT support real-time. Because write at
"https://azure.microsoft.com/en-us/documentation/articles/functions-reference/"
"The Functions runtime scans log files to watch for new or change...
Azure は英語になってしまいますが、こんな感じで欲しい機能はどんどんオープンに要求できます。皆さんの Vote が多いほど、開発される優先度があがりますので、是非ともよろしくお願いします。
余談
ちなみに今一番多い Vote は Clear DB やめて Azure で MySQL 用意しろって奴みたいですね… Amazon と Google には既に用意されているので、当然な要求ですよねぇ。 PostgreSQL もあるとうれしーなー。
*1:実際はスクリプトからImageMagickを呼び出せるかとか検証が必要ですが