SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Scott Guthrie氏 Blog翻訳

Windows Azure Service BusでAMQPサポートのリリースについてのお知らせ

連載:ScottGu's Blog翻訳

  • X ポスト
  • このエントリーをはてなブックマークに追加

ステップ4:Pythonアプリリスナーの作成

 では、もう一つのサブスクリプションに接続し、データ処理するPythonアプリを書きましょう。

 Linux VM内で、このPythonアプリをホストします。

 Linux VMは、Windows Azureを使用すれば非常に簡単に作成できます。ポータルのNEWコマンドを選択して、Compute->Virtual Machine->Quick Createオプションを使用するだけで、CentOS仮想マシンが作成できます。

 VMが準備されると、その中にSSHで構成およびセットアップできます。

Linux VM上にProtonライブラリをインストール

 PythonおよびPHPアプリに、ApacheのProtonクライアントライブラリを使用します。それらは、http://qpid.apache.org/proton/download.htmlからダウンロードできます。ProtonライブラリはAMQP 1.0対応ライブラリを提供しており、Windows Azure Service Busと通信するのに使用できます。ProtonのREADMEファイルに、依存関係のインストールとProtonのビルドに必要なステップが書かれています。以下は、Linux VMのコマンドラインを使用したステップのまとめです。

 1)yum構成ファイル(/etc/yum.conf)を編集して、カーネルヘッダ(# exclude=kernel*)への更新除外をコメントアウトします。これはgccコンパイラーをインストールするために必要です。

 2)必要なパッケージをインストールします。

>> yum install gcc cmake libuuid-devel 

>> yum install openssl-devel

>> yum install swig python-devel ruby-devel php-devel java-1.6.0-openjdk

>> yum install epydoc

 3)Protonライブラリをダウンロードします。

>> wget http://www.bizdirusa.com/mirrors/apache/qpid/proton/0.4/qpid-proton-0.4.tar.gz

 4)配布アーカイブからProtonコードを抽出します。

>> tar -xvf qpid-proton-0.4.tar.gz

 5)READMEファイルからの以下のステップを使用して、コードをビルドしてインストールします。

READMEファイルがあったディレクトリから

mkdir build
cd build

# インストールプレフィックスをセットします。システムによっては調整が必要です。

cmake -DCMAKE_INSTALL_PREFIX=/usr ..

# ドキュメンテーションのビルドおよびインストールが不要な場合は省略

make all docs

# このステップはルート権限が必要です。

sudo make install

 この後、Protonはマシンにインストールされ、利用可能になります。以下は、Windows Azure Service Bus Topic上の“python”サブスクリプションからデータ受信するためのPythonコードです。

import sys 
from proton import Messenger, Message 
broker = "amqps://owner:sSDdaYHUo3/wpewtjhEDlCi1y6SRwjFMX01tz2c/AXw=@scottgu-ns.servicebus.windows.net" 
entityName = "scottmessages/Subscriptions/python" 
messenger = Messenger() 
messenger.subscribe("%s/%s" % (broker, entityName)) 
messenger.start() 
msg = Message() 

while True: 
  messenger.recv(10) 
  while messenger.incoming: 
    try: 
      messenger.get(msg) 
    except Exception, e: 
      print e 
    else: 
      print "Message From Scott > %s" % msg.body 
messenger.stop() 
print "Done" 

 上記で数点注意することがあります。

  • ブローカーの接続文字列の形式
amqps://[issuer-name]:[issuer-key]@[namespace].servicebus.windows.net 
  • その形式から受信するデータのエンティティ名
[topic-name]/Subscriptions/[subscription-name]. 

 上記のPythonスクリプトを実行すると(Linux VMから)、Windows Azure Service Busへ接続し、AMQPを使用した.NETアプリから発行されたデータが確認できます。

 上記アプリの利点には、Pythonを使用してLinux VMで実行されることや、オープンAMQPプロトコルのみを使用してWindows Azure Service Busデータ通信システムと通信するオープンソースAMQPライブラリを最適利用することなどがあります。

次のページ
ステップ5:PHPアプリリスナーの作成

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Scott Guthrie氏 Blog翻訳連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト Chica(チカ)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Scott Guthrie(Scott Guthrie)

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7171 2013/05/30 16:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング