今回作るもの

こんにちは、エンジニアのちゃんとくです。テクニカルライターとしてdotstudioに参加しています。

連載第2回の今回は、2016年に公開された話題のMessenger Platformを使ってFacebook Messenger Botを作りIBM Bluemixにホスティングしてみます。

下記のようにお天気を教えてくれるものを想定しています。

BotプログラムはNode.jsで作成し、IBM Bluemixで提供されているWeather Company Dataから天気情報を取得してIBM Bluemixにホスティングし運用します。

下記の構成で手順を紹介します。

IBM Bluemixの設定 Botのベースを作成 天気情報を取得 Facebook Messenger Botをデプロイ

今回はIBM Bluemixの設定を説明していきます。

筆者の環境
OS X El Capitan(v10.11.6) Node.js v8.2.1

IBM Bluemixとは

「IBM Bluemix」はIBM社が提供するPaaSをベースとしたクラウドサービスです。

サーバサイド側のプログラムを実行環境に配置するだけで運用でき、インフラ側の複雑な設定は不要です。Node.jsアプリケーションにも対応しており、Node.jsのプログラムをpushするだけで動作します。

またWatsonやIoTといった100以上の「サービス」と連携して統合的な開発・運用をすることも可能です。30日の無料トライアルがあるため、手軽に開発を始めることができます。

IBM Bluemixにアプリケーションを作成する

まずはIBM BluemixのdeveloperWorksに登録します。

「アカウントを作成する」から進めましょう。

登録が済んだらコンソールから設定を進めます。

配置する場所と組織名を入力しましょう。個人の場合はユーザ名等で問題ありません。

アプリの作成画面に移ったら「SDK for Node.js」を選択します。

アプリケーション名をつけて作成します。

しばらく待つと、作成したアプリケーションが立ち上がります。

これで開発の準備が整いました。

環境を整える

IBM Bluemixでアプリケーションをデプロイするためには以下の4つが必要です。

Bluemixアカウント Cloud Foundry CLI Git Node

アカウントの取得は済んでいるので、Cloud Foundry CLIのインストールをしましょう。リンク先のGitHubからOSに合わせてインストールします。

筆者はMac OS Xなのでbrewコマンドでインストールしました。インストールするとcfコマンドが使えるようになります。

Gitがインストールされていない場合は「Git for Windows」やbrewコマンドを使いインストールしましょう。

Nodeのインストールはこちらの記事などを参考にnodebrewを使うと便利です。

サンプル・アプリケーションを試す

チュートリアルを参考に、サンプル・アプリケーションを試してみます。

gitでソースコードをローカルに落としてきましょう。

$ git clone https://github.com/IBM-Bluemix/get-started-node

アプリケーションのディレクトリ以下に移動し、npmコマンドで依存モジュールをインストールします。

$ cd get-started-node

$ npm install

インストールができたらnpm startで実行してみます。

http://localhost:3000 でアプリケーションを確認できます。

名前を入力してEnterすると、表示が変わります。

control+cで実行を停止します。

こちらのアプリケーションをIBM Bluemixにデプロイしてみましょう。

デプロイを試してみる

IBM Bluemixにデプロイするために、セットアップファイルを作成します。

manifest.ymlというファイルが用意されているので、viなどのエディタで開き編集します。nameの項目を先ほどつけたアプリケーション名に変更しましょう。

cfコマンドを使ってAPIのエンドポイントを設定します。

APIエンドポイントは自身が選択した地域に合わせて選択してください。シドニーを選んだ場合は以下のようになります。

$ cf api https://api.au-syd.bluemix.net

続いてBluemixアカウントにログインします。

$ cf login

Emailとパスワードを聞かれるので、アカウント情報を入力します。

ログインできたらpushします。

$ cf push

これだけでデプロイは完了です。ブラウザで確認してみましょう。

確認してみる

コンソールに表示されているアプリケーションのURLからアクセスします。

ローカルと同じように、サンプルアプリケーションが動作します。

コマンドラインからはcf appsコマンドでデプロイしたアプリケーションの状態を確認できます。

まとめ

今回はアプリケーションの基盤となるサーバー部分をIBM Bluemixで簡単に作成してみました。

セキュリティやSSL対応などの設定なしに試すことができ、サーバサイドエンジニアの方にとってはかなり手軽に感じられたと思います。

次回はFacebookにアプリケーションを作成し、ベースとなるプログラムを作成していきたいと思います。

それではまた!

●著者プロフィール

dotstudio ちゃんとく
大学までは文系で法学を学んでいたが「モノを作れる人」に憧れて知識ゼロからエンジニアに転身。本業ではPHPでWebサーバサイド開発を担う傍ら、テクニカルライターとしてdotstudioに参加している。Node.jsユーザグループ内の女性コミュニティ「Node Girls」を主催。趣味の電子工作では日本最大のIoTコミュニティ「IoTLT」で体当たり電子工作を発表中。
Twitter: @tokutoku393 / dotstudio, inc.