こんにちは、ソリューション開発部の柴崎です。

前回は Azure Event Hubs を利用して Azure Blob Storage に書き込みを試みました。今回は Azure Blob Storage の Append Block 操作を利用してメッセージを追記することについて調査しましたのでご紹介します。

BLOB サービスには Append Blobs があり、Append Block 操作によってファイルの末尾に追記することができます。これは追記を続けるログファイルとして使うことができそうです。今回は Pepper から送信したログを直接 Blob に出力してみます。

Blob を作成する

最初から追記の API だけを利用したいところですが、追記対象となるリソースが存在しない場合は 404 エラー (The specified blob does not exist.) となってしまいます。そのため事前に Put Blob 操作により新規に Blob を作成する必要があります。

Blob が存在しない場合のみ新規作成し Blob を上書きしないようにする

既に Blob が存在する場合に上書きしてしまうと困る場合があります。Blob サービス操作の条件ヘッダーの指定をすることで、既に Blob が存在する場合に影響を与えないようにすることができます。具体的には、リクエストに以下のヘッダーを付与することで、既に Blob が存在する場合は 409 エラー (The specified blob already exists.) となりリソースに影響を与えなくなります。

Blob に追記する

前述の Put Blob 操作で作成した Blob に対し Append Block 操作により追記することができます。

メッセージを送りつける Python コード

コードを実行し、Blob に出力されていることを確認しましょう。

このコードを実行すると、以下の内容が見事に Blob に出力されました。

上記のコードを再度実行しても既存の Blob が消されることなく追加されていきます。

まとめ

ログの追記などであれば Azure Blob Storage の Append Block が有用であることが分かりました。Azure Storage のスケーラビリティおよびパフォーマンスのターゲットを確認し利用できるかどうか検討してみてください。

 

この記事が気に入ったら
いいね!しよう

最新情報をお届けします

Twitter で「株式会社アークシステム」をフォローしよう!

Azure Blob StorageにAppend Blockでログ追記する話https://devlog.arksystems.co.jp/wp-content/uploads/2016/09/AzureAppendBlob.pnghttps://devlog.arksystems.co.jp/wp-content/uploads/2016/09/AzureAppendBlob-150x150.pngshibasakiソリューション開発部Pepperプログラミング分科会クラウド利用技術Pepper,Microsoft,Azure,Python,Azure Storageこんにちは、ソリューション開発部の柴崎です。 前回は Azure Event Hubs を利用して Azure Blob Storage に書き込みを試みました。今回は Azure Blob Storage の Append Block 操作を利用してメッセージを追記することについて調査しましたのでご紹介します。 BLOB サービスには Append Blobs があり、Append Block 操作によってファイルの末尾に追記することができます。これは追記を続けるログファイルとして使うことができそうです。今回は Pepper から送信したログを直接 Blob に出力してみます。 Blob を作成する 最初から追記の API だけを利用したいところですが、追記対象となるリソースが存在しない場合は 404 エラー (The specified blob does not exist.) となってしまいます。そのため事前に Put Blob 操作により新規に Blob を作成する必要があります。 Blob が存在しない場合のみ新規作成し Blob を上書きしないようにする 既に Blob が存在する場合に上書きしてしまうと困る場合があります。Blob サービス操作の条件ヘッダーの指定をすることで、既に...ARK Solution Development Division Developers Blog.