Azureの小ネタ (改)

~Azureネタを中心に、色々とその他の技術的なことなどを~

SDK1.6から診断機能がデフォルトで有効になっているの件


SDK1.6より前のデフォルトがどうなっていたか定かではないのですが。元ネタは、With Azure SDK 1.6, Azure Diagnostics is enabled by default can cause thousands of daily transections to Azure Storage - Avkash Chauhan's Blog - Site Home - MSDN Blogsでございます。



まずは、おさらいとして。Windows Azureにおけるログの出力は、デフォルトで有効になっていて、ローカルストレージに勝手に出力されています。それだけですと、インスタンスが死んだり、こけた時にログもろとも消えてしまうので、それらを保存しないといけません。

診断機能は、それらのログを、AzureストレージのBLOBやテーブルにせっせと転送する機能となります。

当然、ストレージに転送すれば、容量やトランザクションに対して課金されることとなります。


という前提を踏まえたうえで、要約すると、

  • SDK1.6から診断機能がデフォルトで有効
  • 通常は開発ストレージの文字列が入っている
  • ただし、Visual Studioから直接発行する場合にかぎって、発行につかったストレージアカウントを診断機能の出力先として使う。

ということです。デプロイ時に、サービス構成ファイル(*.cscfg)を勝手に書き換えてデプロイしてしまうんでしょうか。


こうなると、利用者にとっては予期しない課金が発生するために、Blogでアナウンスされたんでしょうと推測。


回避方法としては、

  • Windows Azureへの発行時に発行ストレージアカウントを文字列として使用する」ってのをオフにする。
  • または、根こそぎ診断機能を無効にする。
  • または、管理ポータルから直接デプロイする。


ってところでしょうか。Visual Studioのお節介機能ですかねぇ。次回のエンハンスでオフになるのに100カノッサということで、さようなら。