前回からの続きで、BluemixのDeployについて説明します。
4. bluemixにDeploy
BluemixにDeployするためのフォルダ構造は、以下です。実際にBluemixにDeployする場合は、そのままのフォルダ構造になるようにExploreでフォルダを作成してください。models、routesは不要、実際に開発する場合はnode_modulesがあり.cfignoreで排除指定が必要です。
Cドライブ
├── bluemix
├── myapp →wavファイル生成Javascriptを配置します(2章のソース)
├ ├── app.js, package.json, Procfile
├ ├── models →今回のケースでは形式上残してるだけで空フォルダです。
├ ├── routes →今回のケースでは形式上残してるだけで空フォルダです。
├ ├── view
├ ├── test.ejs →wavファイル生成Javascriptを配置します(2章のソース)
├
├── mystt →STTの音声認識Javascriptソースを配置します。(3章のソース)
├── app.js, package.json, Procfile
├── models →今回のケースでは形式上残してるだけで空フォルダです。
├── routes →今回のケースでは形式上残してるだけで空フォルダです。
├── view →今回のケースでは形式上残しておだけで空フォルダです。
STTで音声認識Javascriptソースを最初にDeployします。以下、必要なpackage.jsonとProcfileです。pakage.jsonには、STTのサンプルアプリケーションとしてGithubで公開されているspeech-to-text-nodejs
のpackage.jsonと、ファイルのUploadに使用するformidable(と、それに関連するモノ)を記述しています。
{
"name": "mystt",
"version": "1.0.0",
"description": "A sample browser app for Bluemix that use the speech-to-text service, fetching a token via Node.js",
"dependencies": {
"ejs": "^2.3.4",
"express": "~4.13.3",
"watson-developer-cloud": "^1.2.4",
"cfenv": "1.0.x",
"formidable": "1.0.17",
"gently": "0.8.0",
"findit": "0.1.1",
"hashish": "0.0.4",
"urun": "~0.0.6",
"utest": "0.0.3",
"request": "~2.11.4"
},
"repository": {
"type": "git",
"url": "https://github.com/watson-developer-cloud/speech-to-text-nodejs.git"
}
}
procfileは、以下です。ファイル中に、”web: node app”とだけ記述します。
web: node app
cf pushにより、Bluemix上にDeployします。一意なURLを考えるのが面倒だったので、URLは--random-routeオプションでランダム生成されるようにしています。cf pushのコマンド出力に含まれるurlsで、wavファイル生成Javascripソースのapp.jsの'STTで音声認識Javascriptソースが動作するURLを記述'を置換します。
:cf pushのコマンド出力
C:\Users\hoge\.nvmw>cd c:\bluemix\mystt
C:\bluemix\myapp>cf push mystt --random-route
・・・ <cf pushのコマンド出力、省略してます>
requested state: started
instances: 1/1
usage: 1G x 1 instances
urls: mystt-xxxxxxxx.mybluemix.net
package uploaded: Sun May 15 02:20:04 UTC 2016
stack: cflinuxfs2
buildpack: SDK for Node.js(TM) (ibm-node.js-4.4.3, buildpack-v3.3-20160428-1409)
・・・ <cf pushのコマンド出力、省略してます>
次に、wavファイル生成JavascripソースをDeployします(watson-developer-cloudは不要です、削除忘れです)。
{
"name": "myapp",
"version": "1.0.0",
"description": "A sample browser app for Bluemix that use the speech-to-text service, fetching a token via Node.js",
"dependencies": {
"ejs": "^2.3.4",
"express": "~4.13.3",
"watson-developer-cloud": "^1.2.4"
},
"repository": {
"type": "git",
"url": "https://github.com/watson-developer-cloud/speech-to-text-nodejs.git"
}
Procfileは、mysttと同様です。ファイル中に、”web: node app”とだけ記述します。
web: node app
myappフォルダに移動し、app.js(wavファイル生成Javascripソース)の'STTで音声認識Javascriptソースが動作するURLを記述'をmysttのurlsで置換していることを確認、mysttと同様にcf pushを実行します。ここで出力されたurlsをブラウザで実行して適切に動作していることを確認します。
:cf pushのコマンド出力
C:\Users\hoge\.nvmw>cd c:\bluemix\myapp
C:\bluemix\myapp>cf push myapp --random-route
・・・ <cf pushのコマンド出力、省略してます>
5. おわりにに続きます。