LoginSignup
6
6

More than 5 years have passed since last update.

Spring XD で Gmail を HipChat に転送する

Last updated at Posted at 2015-12-07

Spring XD の環境が整ってきたので、ここからは実際に使ってみます。

環境

  • Ubuntu 14.04
  • Nginx 1.4.6
  • Java 1.8.0_66
  • Spring XD 1.3.0.RELEASE
  • Flo for Spring XD 1.0.0 GA (flo-spring-xd-admin-ui-client-1.3.0.RELEASE)
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.3 LTS"
$ uname -a
Linux 133-130-119-232 3.16.0-51-generic #69~14.04.1-Ubuntu SMP Wed Oct 7 15:32:41 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
$ nginx -v
nginx version: nginx/1.4.6 (Ubuntu)
$ java -version
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)
$ ./xd-shell
 _____                           __   _______
/  ___|          (-)             \ \ / /  _  \
\ `--. _ __  _ __ _ _ __   __ _   \ V /| | | |
 `--. \ '_ \| '__| | '_ \ / _` |  / ^ \| | | |
/\__/ / |_) | |  | | | | | (_| | / / \ \ |/ /
\____/| .__/|_|  |_|_| |_|\__, | \/   \/___/
      | |                  __/ |
      |_|                 |___/
eXtreme Data
1.3.0.RELEASE | Admin Server Target: http://localhost:9393
Welcome to the Spring XD shell. For assistance hit TAB or type "help".
xd:>

以前セットアップした環境を引き続き利用します。

ストリームの作成とデプロイ

さっそく試してみます。
今回はストリーム処理で、Gmail の受信トレイに届いたメールを、リアルタイムで HipChat に届けてみようと思います。

作成したサーバーの Admin UI から、[STREAMS] > [Create Stream] とメニューをたどっていきます。
ローカルにサーバーを立てた場合、http://localhost:9393/admin-ui/#/streams/create にアクセスしても目的の画面に到達します。
スクリーンショット 2015-12-07 14.53.53.png

画面左の source グループからは mail を、processor グループからは http-client を、sink グループからは null を、それぞれ選択して、編集エリアへドラッグします。
spring-xd-flo-2.gif

それぞれの箱の端についている、黒い点同士を重ねるように配置していきます。
spring-xd-flo.gif

編集したい箱をクリックし、編集エリア下部でプロパティを設定していきます。
spring-xd-flo-4.gif

設定値はそれぞれ以下のとおりです。

mail

name value note
delete false
host imap.gmail.com
username {user-name}%40gmail.com @ は %40 にエスケープ
port 993
password {user-password}
protocol imaps Gmail の場合 IMAPS 必須
outputType text/plain
maxMessages 10

http-client

name value note
url '''https://api.hipchat.com/v2/room/{room-id}/notification?auth_token={token}''' URL はシングルクオート3つで囲む

null
(設定不要)

ここまでできたら、いよいよストリームを作成・デプロイしてみます。
[Create Stream] ボタンをクリックして、ストリームに名前をつけたら、"Deploy stream(s)" にチェックを入れて、[Create] します。
spring-xd-flo-5.gif

ストリームの動作確認

デプロイしたストリームが正しく動作するか確認してみます。

うまく作成できていれば、設定した Gmail アカウントにメールが着信したタイミングで、HipChat にメッセージが連携されるはずです。

送ってみたメールがこちら。
14:08 に送信。
スクリーンショット 2015-12-07 14.09.50.png

届いたチャットメッセージがこちら。
14:08 に受信。
スクリーンショット 2015-12-07 14.11.15.png

即座に連携されていることが確認できますね!
設定はこれで問題なさそうです。

まとめ

Spring XD を利用すると、こんな具合に簡単にストリーム処理を作成できます。

これまでこの手の技術の多くは、ビッグデータまわりで多く利用されてきたように感じますが、最近では Reactive というキーワードとともに、ビッグデータ以外の領域でも利用が広がってきているようです。

今回のデモを通じて、かなり いろいろなものを連携できることが実感できたかと思います。
より実務的な利用を考えると、ログ解析や、その連携などのリアルタイム化あたりが、現実的な利用シーンとなるでしょうか。

ローカル・リモート問わず、実に様々なリソースを連携できる Spring XD。
今後は Spring Cloud Data Flow というプロダクトにリファクタリングされ、プロジェクトが継続していくようです。
ただし Spring Cloud Data Flow は、まだ Beta リリースのみのため、当面は Flo 含めた全機能を利用したい場合は、Spring XD を選択することになります。

まだいろいろ遊べそうなので、引き続き追いかけてみようと思います。

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6