Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Azure Storage Client 1.7 を 4.3 に移行するときに知っておきたい3...

TonyTonyKun
December 10, 2017

Azure Storage Client 1.7 を 4.3 に移行するときに知っておきたい3つのこと

JAZUG 4周年総会の LT 資料です。

TonyTonyKun

December 10, 2017
Tweet

More Decks by TonyTonyKun

Other Decks in Technology

Transcript

  1. ⾃⼰紹介 • 名前 • Twitter : @TonyTonyKun(トニー) • 仕事 •

    C#で業務アプリケーションを開発しています。 • 得意分野は、Azure と ASP.NET Web API • Auzre 歴 • 2010年頃〜 • Blog • ROMANCE DAWN for the new world • http://gooner.hateblo.jp/
  2. 先⽉、告知されました。 • どのバージョンが使えなくなるの? • .NET の場合、Client Library 1.x • いつ使えなくなるの?

    • 2015年8⽉1⽇ • 対応は? • 新しいバージョンの Client Library に更新する(最新版は、4.3)
  3. ポイント① Azure SDK のバージョンとは違う Visual Studio からアップグレードするだけでは、 Storage Client 1.x

    は更新されない! 1.x : Microsoft.WindowsAzure.StorageClient.dll 2.0 〜 : Microsoft.WindowsAzure.Storage.dll
  4. ポイント② ビルドエラーの嵐に⾒舞われる! • 2.0 以降で互換性が保証されない変更が⼊っています。 • TableClient ではなく、CloudTable で操作する。 •

    CloudBlob が削除されたので、CloudBlockBlob を使う。 • CreateIfNotExists() のメソッド名に「s」が付いた etc • どのように置き換えるのかの情報が少なく、苦労しました。 • ブログにまとめたので、参考にしてみてください。 http://gooner.azurewebsites.net/2014/09/16/azure-storage/
  5. ポイント③ Blob に罠あり! • Blob は、⼀部実⾏時の挙動が変わっているものがあります。 • 1.7 ではどちらも動作しましたが、2.0 以降では必ず

    Blob 名 を渡す必要があります。 CloudBlobContainer container = blobClient.GetContainerReference(“test”); CloudBlockBlob blob1 = container.GetBlockBlobReference(“hoge.jpeg”); CloudBlockBlob blob2 = container.GetBlockBlobReference(“http://127.0.0.1:10000/devstoreaccount1/test/hoge.jpeg"); 2.0 以降では、動作しない!
  6. ⾯倒なだけではなく、嬉しいことも。 • パフォーマンスの向上。 • Table の通信がデフォルトで JSON に。 • Blob

    のアップロードが速い。 • async / await の⾮同期処理に対応。 • 読み取り専⽤地理冗⻑(RA-GRS)に対応。 • Azure Files に対応。
  7. まとめ • .NET の Storage Client 1.x が使えるのは、2015 年8⽉1⽇まで! 1.

    Azure SDK のバージョンとは違うので、要確認。 2. 互換性が保証されていないので、コードの書き換えが必要。 3. ⼀部挙動が変わっているので、動作検証しましょう。 • それなりにコストのかかる作業なので、早めに対応 しましょう。