Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

⾃⼰紹介 • 名前 • Twitter : @TonyTonyKun(トニー) • 仕事 • C#で業務アプリケーションを開発しています。 • 得意分野は、Azure と ASP.NET Web API • Auzre 歴 • 2010年頃〜 • Blog • ROMANCE DAWN for the new world • http://gooner.hateblo.jp/

Slide 3

Slide 3 text

2010年頃の Azure 提供されていたサービス 管理ポータルからの VIP Swap

Slide 4

Slide 4 text

先⽉、告知されました。 • どのバージョンが使えなくなるの? • .NET の場合、Client Library 1.x • いつ使えなくなるの? • 2015年8⽉1⽇ • 対応は? • 新しいバージョンの Client Library に更新する(最新版は、4.3)

Slide 5

Slide 5 text

うちのクラウドサービス 全部 1.7 だったズラー!

Slide 6

Slide 6 text

ポイント① Azure SDK のバージョンとは違う Visual Studio からアップグレードするだけでは、 Storage Client 1.x は更新されない! 1.x : Microsoft.WindowsAzure.StorageClient.dll 2.0 〜 : Microsoft.WindowsAzure.Storage.dll

Slide 7

Slide 7 text

ポイント② ビルドエラーの嵐に⾒舞われる! • 2.0 以降で互換性が保証されない変更が⼊っています。 • TableClient ではなく、CloudTable で操作する。 • CloudBlob が削除されたので、CloudBlockBlob を使う。 • CreateIfNotExists() のメソッド名に「s」が付いた etc • どのように置き換えるのかの情報が少なく、苦労しました。 • ブログにまとめたので、参考にしてみてください。 http://gooner.azurewebsites.net/2014/09/16/azure-storage/

Slide 8

Slide 8 text

ポイント③ 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 以降では、動作しない!

Slide 9

Slide 9 text

⾯倒なだけではなく、嬉しいことも。 • パフォーマンスの向上。 • Table の通信がデフォルトで JSON に。 • Blob のアップロードが速い。 • async / await の⾮同期処理に対応。 • 読み取り専⽤地理冗⻑(RA-GRS)に対応。 • Azure Files に対応。

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

ご清聴ありがとうございました。