しばらくやらないと、手順を忘れちゃうから、そうならないように一応メモしておきました。
事前準備
事前準備として、IBM Cloudへの利用登録、 Cloud Foundry CLIの導入、IBM SDK for Node.jsの導入が必要となります。
(*実は環境により、IBM SDK for Node.jsを導入してアプリを実行すると、よくわからないエラーが起きていたことがあります。個人的には公式の最新版Node.jsの導入をオススメです)
・IBM Cloudへの利用登録(https://www.ibm.com/cloud-computing/jp/ja/bluemix/lite-account/)
・Cloud Foundry CLI 導入(https://github.com/cloudfoundry/cli/releases)
・IBM SDK for Node.jsの導入(https://www.ibm.com/developerworks/web/nodesdk/)
または公式版Node.js(https://nodejs.org/ja/)の導入
manifest.ymlファイルの設定
設定例:
//アプリに組み込むIBM Cloud上のサービス
declared-services:
nlc-1:
label: natural_language_classifier
plan: standard
Conversation-1:
label: conversation
plan: Lite
dashDB-1:
label: dashDB
plan: Entry
Discovery-1:
label: discovery
plan: Standard
//アプリ設定
applications:
- services:
- nlc-1
- Conversation-1
- dashDB-1
- Discovery-1
name: app-name
host: app-name
domain: mybluemix.net
command: node app.js
path: .
memory: 512M
//環境設定
env:
ALLOW_HTTP: '0.'
ALLOW_IP: '300.'
IPSECURITY: 'OFF'
AUTHENTICATION: 'ON'
IP_AUDIT: 'FAIL'
AUDIT: 'FAIL'
DEBUG: '1'
ADMIN_USER: 'user'
ADMIN_PASS: 'password'
//NLCを利用する場合は下記設定が必要
PRECLASSIFY: 'PRECLASSIFY'
FINALCLASSIFY: 'FINALCLASSIFY'
※ name/hostは同一で、かつ、IBM Cloud上で固有のものになるようにする
※ domainは、リージョンに合わせて入力します。例えば、
- 米国南部:mybluemix.net
- 英国:eu-gb.mybluemix.net
- シドニー:au-syd.mybluemix.net
(今年ドイツや東京も出てきたらしい)
デプロイ
●コマンドラインからCloud Foundry CLI を利用してIBM Cloudに接続
・アプリケーションのファイルを配置したディレクトリーへ移動し、IBM Cloudに接続する
cf api https://api.ng.bluemix.net
・IBM Cloudにログイン
cf login –u [user_name] –p [password]
・アプリケーションをインストールする組織とスペースを選択する
●サービスインスタンス作成
cf create-service [service_name] [plan_type] [instance_name]
もしろんIBM Cloud GUIから直接サービスインスタンスを作成することも可能です
例:Natural Language Classifierのサービスを作成します。
manifest.ymlで設定したサービス名、プラン種類、インスタンス名を代入する
cf create-service natural_language_classifier standard instance_name
サービスを利用しない場合は、この手順をスキップしてください。
●cf pushコマンドによって作業ディレクトリにあるファイルをIBM Cloudへデプロイ
・cf pushコマンドをアプリケーションのファイルを配置したディレクトリーにて実行する
cf push
・デプロイしたアプリケーションの起動が始まり、IBM Cloud上で実行中となればデプロイ完了
補足:ローカル環境でのアプリケーションの実行
VCAP_SERVICES.jsonファイルの取得
・IBM Cloudのアプリケーションのダッシュボードより「ランタイム」を押下
・「環境変数」と表示されている画面の右下にある「エクスポート」を押下
・「[アプリ名]_vcap.json」のファイルが生成されます
・アプリ名部分を削除して「VCAP_SERVICES.json」という名前のファイルとしてアプリケーションのディレクトリに保存する
・作業ディレクトリにて環境変数を設定
(※macOSの場合は setコマンドの代わりにexportコマンドを使用する)
set ALLOW_HTTP=1
以上