logsでログ取得したりするのに時間がかかるので、積み重なるとイライラするものです。Editによって、デスクトップ上のエディタで変更したコードが即時に、Bluemixで稼動するNode.jsアプリのファイルシステムに反映されます。デプロイしなくても、リブートするだけで変更が反映されたアプリをテストできます。リブート、はやいです。Inspectorが使用できます。コンソールログをみたり、ブレークポイントを設定してローカル変数を確認したり、とローカル環境と同様にデバッグできます。今回は、この機能を使って、具体的にどんな開発・デバッグができるかを、簡単なNode.jsアプリを使って示したいと思います。Servicesの理解のため、下記の記事を読んでおいていただくとよいかと思います。利用して開発していく方法を解説します。コマンド・ラインをインストールします。http://livesyncdownload.ng.bluemix.net/downloads/blive_setup.msiデスクトップ同期デスクトップ同期を使用して、ローカルPC上で変更した反映が、即時にCloudワークスペースに反映されることを確認します。ログインまずblコマンドでログインします。同期を取ることができるプロジェクトのリストデスクトップ同期できるプロジェクトをリストさせます。Syncで同期可能です。<プロジェクト名>です。今回は、SimpleWatchAppという、現在時刻を表示するシンプルなNode.jsアプリを対象にします。Projectをみるとこんな感じですよね。(SimpleWatchAppに絞ってます)デスクトップ同期する(Cloudワークスペースとデスクトップとの同期)Cloudワークスペースを同期させるデスクトップ上のディレクトリへ移動します。<該当のディレクトリ>同期します。synchronization.```同期されました。同期中なので、プロンプトは返ってこないです。デスクトップの該当ディレクトリには、ちゃんとコードが入っています!同期したディレクトリからEclipseのプロジェクトを作成する個人的に親しみのあるEclipseで作業したいので、同期したディレクトリからEclipseのプロジェクトを作成します。IDEからapp.jsを参照することで確認します。編集前app.jsで、東京の時刻だけをとっています。IDEでみても、東京だけです。編集後Eclipseで、ロサンザルスの時刻を追加します。Eclipse(app.js抜粋)追加しました。コマンドで、app.jsが同期されました。IDEからも、app.jsにロサンゼルスの行が追加されたことが確認できました。Editを有効化します。ワークスペースの変更が、Bluemixで稼動するNode.jsアプリのファイルシステムに即反映されます。デプロイしなくとも、リブートするだけで変更分がNode.jsアプリに反映されます。後ほど実施するデバッグの機能が有効となります。Editを有効化すれば十分なようです。devconsole+shell+inspector)がデプロイ時に自動的に追加され、それら機能が使えるようになります。Editを有効化する前に・・・起動構成を編集します。ワークスペースから、Bluemixへデプロイする設定です。通常、デバッグするのは、本番用アプリではなく、開発用アプリかと思います。デフォルトだと起動構成は、以下のようにmanifest.ymlを使うので、本番用アプリを向いているかもしれませんね。IDEで起動構成を確認たとえば、こうなっています。私が本番扱いしているスペースに、manifest.ymlを使ってデプロイする構成になっています。Editを開発用アプリに向けるために、起動構成を開発アプリ用に変更します。起動構成は複数作成もできますし、既存構成を上書きすることもできます。今回は既存構成に対して、スペース、ホスト名を開発用にするよう更新をかけます。Debugのために、メモリーを128MB追加するようにします。次へをクリックすると、サービスの追加の画面にきますが、今回は変更なし次へをクリックすると、メモリに128MB追加して、256MBにします。起動構成の更新が終わりました。Editが有効になっていません。クリックして有効にします。すると、デプロイがはじまり・・・デプロイが完了すると、有効になりました!manifest.ymlを上書きした開発用の設定でデプロイされています。devconsole+shell+inspector)が追加されていることが確認できます。Editの確認として以下をします。00:13:01"}編集後(リブート前)Eclipseからコード変更ローマを追加しました。ワークスペースから、Bluemixで稼働中のNode.jsアプリのファイルシステムに反映されているはずです。API呼び出しまだアプリが更新されたapp.jsを読み込んでないので、ローマの情報は取得できません。IDEからリブートします。ローマの情報も取得できました。次は気になるデバッグにうつりますデバッグ概要デバッグには以下の機能があります。以下の機能が含まれています。アプリ・コードにブレークポイントを設定して、特定の行で実行を一時停止する。ブレークポイントの条件を編集して、特定の条件が満たされた場合にのみ実行を一時停止する。ローカル変数やフィールドの状態を検査する。呼び出しからのデバッグ出力を即座に表示する。ログをモニターするより、このアクションの方がより迅速にデバッグ出力を表示できます。デバッグhttps://www.ng.bluemix.net/docs/manageapps/bluemixlive.html今回は、以下を実施してみます。Editを有効化したことで、すでにデバッグの準備は整っています。アプリのスタートコマンドをpackage.jsonに記載する必要がある点、ご注意ください。IDEで、デバッグ・ツールをクリックします。Consoleが開きます。実行することもできます。Inspectorを使用したデバッグを行います。InspectorのWeb画面が表示されます。console.log()の確認まず、console.log()のデバッグ出力を確認します。Consoleタブをクリックします。APIを呼び出します。API呼び出しを実行します。ブレークポイントで一時停止して、各タイムゾーンの時刻を格納したローカル変数(ts)を確認していきます。Sourcesタブへ移動し、ブレークポイントを設定したい行をクリックします。各タイムゾーンの時刻を変数に格納している行をクリックします。APIを呼び出します。すると、プロンプトが戻らず・・・デスクトップの右下に、デバッガーが一時停止したとのポップアップが表示されました。Inspectorをみると、ブレークポイントで一時停止していることがわかります!まだこの時点では、変数tsに値は入れておらず、実際、tsに値がないことも確認できます。Execution)をクリックすると、次のブレークポイントまで進みます。API呼び出ししていたコマンドに、無事、結果がかえってきました。Bluemix上で稼動するNode.jsアプリに対して、ブレークポイントを設定し、順次、ローカル変数を格納することができました。Insector(Chrome)とBluemix側とが切断されるエラーがでるようです。このdetachedというエラーが出ると自動では再接続はされないそうなので、ページを更新して再接続が必要です。connection)がかえります。デバッグのやり直しです・・・コードにエラーがあってアプリを起動すらできないパターンこのパターンは、Bluemixにプッシュした場合に発生してイライラとします。logsでログとってみるのが面倒です。IDEの「ログを開く」で、ログを表示しているのがよいかと思います。IDEで、「ログを開く」をクリックする。この画面は、自動で新規ログが表示されます。app.get()を、get()に変更しました。`アプリをリブートします。すると、起動に失敗しました。logsでログを取得する必要はありません。Managementを使って、デスクトップ(ローカルPC)から、Bluemix上のNode.jsアプリを快適に開発・デバッグすることができることを示しました。Editによって、デスクトップ上のエディタで変更したコードが即時に、Bluemixで稼動するNode.jsアプリのファイルシステムに反映されます。デプロイしなくても、リブートするだけで変更が反映されたアプリをテストできます。リブート、はやいです。Inspectorが使用できます。コンソールログをみたり、ブレークポイントを設定してローカル変数を確認したり、とローカル環境と同様にデバッグできます。logsを実行することなく、起動時エラーをリアルタイムに確認できます。IDEの起動構成を個人用に設定することで、チーム開発で、各個人がBluemix上に開発用アプリを持って、デスクトップから快適に開発・デバッグすることができると思います。Managerを起動し、デバッグできるようになっています。今度、試してみようと思います。利用して開発していく方法を解説します。Kazuhiro@shimacこのサイトの掲載内容は私自身の見解であり、必ずしも所属会社の立場、戦略、意見を代表するものではありません。upLoginユーザーは見つかりませんでした。