AWSやAzureを始めたとしたクラウドサービス全般を触っていく連載「クラウドサービス研究スタジオ」。この連載では、IaaS,PaaS,BaaS,SaaSなど幅広い形態のサービスを実際に使ってレポートしていきます!
今回作るもの
こんにちは、エンジニアのちゃんとくです。テクニカルライターとしてdotstudioに参加しています。
今回は、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, inc. ちゃんとく
大学までは文系で法学を学んでいたが「モノを作れる人」に憧れて知識ゼロからWebエンジニアの道へ。転職し現在はIoT中心のエンジニア・テクニカルライターとして活動。Node.jsユーザグループ内の女性コミュニティ「Node Girls」を主催。Twitter: @tokutoku393 / dotstudio, inc.
※本記事は「CodeIQ MAGAZINE」掲載の記事を転載しております。