日本語 HARTING IT Software Development Marienwerder Str. 3, 32339 Espelkamp, Germany Phone: +49 5572 47-97300, Fax: +49 5772 47-482 mica@harting.com 2016-10 v1.3 Page 1 of 9
Node.js Environment v1.3. for HAIIC MICA Guide 目次 1. NODE.JS ENVIRONMENT CONTAINER ベーシック... 3 1.1. 概要... 3 1.2. NODE.JS CONTAINER のインストール... 3 2. NODE.JS CONTAINER の説明... 4 2.1. ユーザインターフェースの概要... 4 2.2. NODE.JS アプリケーションスクリプトのアップロード... 5 2.3. アクティブな NODE.JS アプリケーションスクリプトのダウンロード... 6 2.4. アプリケーションロガーの使用... 6 3. 使用例... 7 3.1. デフォルトアプリケーションのダウンロード... 7 3.2. アプリケーションの修正... 7 3.3. 修正したアプリケーションの ( 再 ) アップロード... 8 4. NODE.JS コンテナによるサービスの提供... 8 4.1. 概要... 8 4.2. サービスの利用... 8 5. NODE.JS コンテナの拡張... 9 2016-10 v1.3 Page 2 of 9
1. Node.js environment container ベーシック 1.1. 概要 Node.jsは Node.js Foundation1によってホストされるオープンソースプロジェクトであり Linux Foundation2の共同プロジェクトです Chrome V8エンジンで構築された軽量のJavaScriptランタイムを実装し イベント駆動型アーキテクチャとリアルタイムWebアプリケーションのアプリケーションのスループットとスケーラビリティを最適化するために設計されたノンブロッキングI/O API を提供します ビルトインライブラリにより Node.jsアプリケーションはスタンドアロンのWeb サーバとして動作します Node.jsプロジェクトは 世界最大のオープンソースライブラリのエコシステムを提供すると主張するnpm-package managerによって管理されホストされています Node.js 環境コンテナは現在 Node.js v6.9.1 LTSに基づいています Node.jsおよびNPMの詳細については https://nodejs.org/en/ と https://www.npmjs.com/ を参照してください 1.2.Node.js container のインストール 図 1: Node.js Environment Container を含む MICA ホーム画面 1 Node.js Foundation ( https://nodejs.org/en/foundation/, Retrieved: 2016/01/22) 2 Linux Foundation Collaborative Projects (http://collabprojects.linuxfoundation.org/, Retreived: 2016701/22) 2016-10 v1.3 Page 3 of 9
kode. s 環境コンテナのインストールおよび設定ルーチンは IIC MICA が提供する標準ルーチンに従い MICA Programming Guide にあります 2. Node.js container のユーザインターフェース 2.1. ユーザインターフェース概要 図 2: Node.js Environment Container ユーザインターフェース Node.js 環境コンテナのユーザインタフェースは アプリケーションをコンテナにインポート / エクスポートしてアプリケーションを表示するために使用できるエントリ Application およびログアプリケーションを表示する Logging を含む単一のセクション General で構成されています ユーザインタフェース構造は 以下のように記述することができます : 1.) Application ファイルテキストフィールド : テキストフィールドを使用して コンテナにアップロードする js-application スクリプトを設定できます 2.) Upload: Uploadロードボタンは 1.) で指定された js-applicationファイルのアップロードを行います 3.) Download: download ボタンは 現在のアクティブな js-application のダウンロードをファイルシステムに関連付けます 4.) Show Log File: log file ボタンを使用すると 図 5 に示すようなログウィンドウを入力できます 2016-10 v1.3 Page 4 of 9
2.2. Node.js アプリケーションスクリプトのアップロード 図 3: Node.js Environment へのアプリケーションアップロード 新しいアプリケーションをコンテナにアップロードするには アプリケーションファイルのテキストフィールド (2.1 項を参照 ) をクリックし 図 3 のように js-application スクリプトを選択するか ファイルをテキストフィールドにドラッグ & ドロップするだけです ファイルを選択すると ファイル名がアプリケーションファイルテキストフィールドに表示されます Upload ボタンを押すと 選択したファイルがコンテナに送信され 内部に保存されます 送信が終了すると 図 4 に示すように 送信が成功したか失敗したかがアプリケーションファイルのテキストファイルの右側に表示されます ファイル送信が終了しましたらコンテナはさらに置換するアプリケーションを停止しすぐに新しいアプリケーションを開始します アップロードされたアプリケーションの名前は app.js に変更され コンテナ自体の起動後に自動的に開始されます 注意 : アップロードに本ユーザインターフェイスを使用すると 一度に 1 つのアプリケーションしか実行できません 古いアプリケーションは置き換えられ起動されます ただし ( MICA Programming Guide の説明に従って )SSH 経由でコンテナにログインし 同時に複数の Node.js アプリケーションを実行することもできます 2016-10 v1.3 Page 5 of 9
図 4: Node.js Environment へのアプリケーションアップロード成功 2.3. アクティブな Node.js アプリケーションスクリプトのダウンロード "download" ボタンをクリックするだけで 現在アクティブな Node.js スクリプトをダウンロードできます スクリプトをダウンロードしたら ワードパッド (Windows) や TextEdit (OS X ) などのシンプルなテキストエディタや Visual Studio (Windows) や X code (OS X ) などの開発 IDE でファイルを開き表示 / 変更しことができ 2.2 項で説明したようにアプリケーションを再アップロードできます 2.4. アプリケーションロガーの使用 アクティブなアプリケーションログファイルは Show Log File をクリックして ロガーウィンドウ ( 図 5 参照 ) で検査できます アプリケーションロガーを使用するには ログ情報を次のファイルに書き込む必要があります /var/log/nodeapp.log Node.js にログ情報を書き込む方法の詳細については 新しい Node.js 環境コンテナごとに提供されるデフォルトの js-application を参照してください 2016-10 v1.3 Page 6 of 9
図 5: Node.js Environment Container のアプリケーションロガーウィンドウ 3. 使用例 3.1. デフォルトアプリケーションのダウンロード この例で最初にやりたいことは デフォルトの sjapplication スクリプトをダウンロードすることです したがって ユーザインターフェイスで download ボタンをクリックするだけで済みます ダウンロードスクリプトファイルをエディタで開くとスクリプトはポート RMMM でリッスンする簡単な ettp Web サーバを実装していることがわかります したがって ブラウザタブを開いて次のアドレスを入力すると It Works!! が表示されます http://<container-address>:5000 このスクリプトはまた 初期化プロセス中のログをファイル /var/log/nodeapp.log に書き込みます Show Log Files ボタンをクリックするとこれらのメッセージがロガーウィンドウに表示されます 3.2. アプリケーションの修正 アプリケーションスクリプトをダウンロードした後 "It Works!!" のテキストを "It still Works!! に変更 スクリプトの最後に次の行を追加してスクリプトを修正しダウンロードします : 2016-10 v1.3 Page 7 of 9
logger.log( Wow, that was easy! ); その後 スクリプトを "new_app.js" に保存し 次のセクションで説明するようにスクリプトを ( 再 ) アップロードします 3.3. 修正したアプリケーションの ( 再 ) アップロード この例の最後のステップでは 変更されたアプリケーションをコンテナに再度アップロードします したがって アプリケーションファイルのテキストフィールドをクリックし スクリプトファイル "new_app.js" を選択し 最後に "Upload" ボタンをクリックします ファイルがアップロードされた後 再びロガーウィンドウが開き Wow, that was easy! というメッセージが表示されます その後 Web サーバのページ ( ポート 5000) を更新し Web サーバの応答メッセージ "It still Works!!" が表示されます 4. Node.js container によるサービスの提供 4.1. 概要 Node.js 環境コンテナを使用すると HTTP リクエストを介してリモートからユーザインタフェースが提供する機能にアクセスできます したがって コンテナは IIC MICA ホストによって提供されたトークンを使用して要求を認証します 詳細は MICA Programming Guide のセクション Single sign-on (SSO) を参照してください 4.2. サービスの利用 次の HTTP リクエストがコンテナによって提供されます : 1. Upload: js-application スクリプトのアップロード Method: POST URL : appupload?token=xxx 2. Download: 現在のjs-application スクリプトの内容を取得 Method: POST URL : appdownload?token=xxx 3. Log file: アプリケーションログファイルの内容を取得 Method: GET URL : applogfile?token=xxx 2016-10 v1.3 Page 8 of 9
5. Node.js container の例 Node.js 環境コンテナは npm エコシステムで利用可能なすべてのオープンソースプロジェクトにアクセスでき 提供されたコマンドラインツール npm を使用して拡張できます SSH 経由でコンテナにログインした後 Node.js コマンドノードと同様に npm にアクセスできます 次の行を入力して アプリケーションフォルダに移動する必要があります : cd /opt/nodeapp このフォルダには バックグラウンドで実行されている app.js スクリプトもあります 新しい npm モジュールをインストールするには 次の行を入力するだけです : npm install <module> インストール (express) したい場合 npm-module で <module> を置換します 新しい npm-module をインストールした後は js-application スクリプト内で <module> コマンドと組み合せて使用できます Express を使用する場合は アプリケーションに次の行を追加するだけです : var express = require( express ); npm の詳細については https://docs.npmjs.com/ を参照してください 2016-10 v1.3 Page 9 of 9