第5章 Node.js のサンプルアプリケーション
Node.js ランタイムは、サンプルアプリケーションを提供します。OpenShift でアプリケーションの開発を開始すると、サンプルアプリケーションをテンプレートとして使用できます。
これらのサンプルアプリケーションは Developer Launcher でアクセスできます。
すべてのサンプルアプリケーションを以下にダウンロードおよびデプロイできます。
- x86_64 アーキテクチャー - 本ガイドのサンプルアプリケーションでは、サンプルアプリケーションを x86_64 アーキテクチャーにビルドおよびデプロイする方法を説明します。
- s390x アーキテクチャー - IBM Z インフラストラクチャーでプロビジョニングされた OpenShift 環境にサンプルアプリケーションをデプロイするには、コマンドで関連する IBM Z イメージ名を指定します。
ppc64le アーキテクチャー - IBM Power System インフラストラクチャーでプロビジョニングされている OpenShift 環境でサンプルアプリケーションをデプロイするには、コマンドに関連する IBM Power System のイメージ名を指定します。
サンプルアプリケーションの一部には、ワークフローを実証するために Red Hat Data Grid などの他の製品も必要になります。この場合は、これらの製品のイメージ名を、サンプルアプリケーションの YAML ファイルで関連する IBM Z または IBM Power System のイメージ名に変更する必要もあります。
5.1. Node.js の REST API Level 0 サンプル リンクのコピーリンクがクリップボードにコピーされました!
以下の例は、実稼働環境での実行を目的としていません。
REST API Level 0 サンプルでできること
REST API Level 0 のサンプルでは、REST フレームワークを使用して、HTTP 経由でビジネスオペレーションをリモートプロシージャコールエンドポイントにマッピングする方法が示されています。これは、Richardson Maturity Model の Level 0 に対応します。REST およびその基礎となる原則を使用して HTTP エンドポイントを作成すると、API のプロトタイプをすばやく作成して柔軟に設計できます。
この例では、HTTP プロトコルを使用してリモートサービスと対話するためのメカニズムが導入されました。これにより、以下が可能になります。
-
api/greetingエンドポイントで HTTPGET要求を実行します。 -
Hello, World!で設定されるペイロードを使用して JSON 形式でレスポンスを受け取ります。文字列。 -
String 引数を渡し、
api/greetingエンドポイントで HTTPGET要求を実行します。これにより、クエリー文字列にname要求パラメーターが使用されます。 -
Hello, $name!のペイロードを含む JSON 形式の応答を受け取ります。$nameは、要求に渡されるnameパラメーターの値に置き換えられます。
5.1.1. REST API Level 0 設計トレードオフ リンクのコピーリンクがクリップボードにコピーされました!
| 利点 | 不利な点 |
|---|---|
|
|
5.1.2. REST API Level 0 サンプルアプリケーションの OpenShift Online へのデプロイメント リンクのコピーリンクがクリップボードにコピーされました!
以下のオプションのいずれかを使用して、OpenShift Online で REST API Level 0 サンプルアプリケーションを実行します。
各メソッドは、同じ oc コマンドを使用してアプリケーションをデプロイしますが、developers.redhat.com/launch を使用すると、oc コマンドを実行する自動デプロイメントワークフローが提供されます。
5.1.2.1. developers.redhat.com/launch を使用したサンプルアプリケーションのデプロイメント リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、REST API Level 0 のサンプルアプリケーションをビルドし、Red Hat Developer Launcher Web インターフェイスから OpenShift にデプロイする方法を説明します。
前提条件
- OpenShift Online のアカウント。
手順
- ブラウザーで developers.redhat.com/launch URL に移動します。
- 画面の指示に従って、Node.js でサンプルアプリケーションを作成して起動します。
5.1.2.2. CLI クライアント oc の認証 リンクのコピーリンクがクリップボードにコピーされました!
oc コマンドラインクライアントを使用して OpenShift Online でアプリケーションのサンプルを使用するには、OpenShift Online Web インターフェイスによって提供されるトークンを使用してクライアントを認証する必要があります。
前提条件
- OpenShift Online のアカウント。
手順
- ブラウザーで OpenShift Online URL に移動します。
- ユーザー名の横にある Web コンソールの右上にあるクエスチャルマークアイコンをクリックします。
- ドロップダウンメニューで Command Line Tools を選択します。
-
oc loginコマンドをコピーします。 端末にコマンドを貼り付けます。このコマンドは、認証トークンを使用して CLI クライアント
ocを OpenShift Online アカウントで認証します。$ oc login OPENSHIFT_URL --token=MYTOKEN
5.1.2.3. CLI クライアント oc を使用した REST API Level 0 サンプルアプリケーションのデプロイメント リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、REST API Level 0 のサンプルアプリケーションをビルドし、コマンドラインから OpenShift にデプロイする方法を説明します。
前提条件
- developers.redhat.com/launch を使用して作成されたサンプルアプリケーション。詳細は、「developers.redhat.com/launch を使用したサンプルアプリケーションのデプロイメント」 を参照してください。
-
認証された
ocクライアント。詳細は、「CLI クライアントocの認証」 を参照してください。
手順
GitHub からプロジェクトのクローンを作成します。
$ git clone git@github.com:USERNAME/MY_PROJECT_NAME.gitまたは、プロジェクトの ZIP ファイルをダウンロードして、展開します。
$ unzip MY_PROJECT_NAME.zipOpenShift で新規プロジェクトを作成します。
$ oc new-project MY_PROJECT_NAME- アプリケーションの root ディレクトリーに移動します。
npmを使用して OpenShift へのデプロイメントを開始します。$ npm install && npm run openshiftこれらのコマンドは、不足しているモジュールの依存関係をインストールしてから、Nodeshift モジュールを使用して、サンプルアプリケーションを OpenShift にデプロイします。
アプリケーションのステータスを確認し、Pod が実行していることを確認します。
$ oc get pods -w NAME READY STATUS RESTARTS AGE MY_APP_NAME-1-aaaaa 1/1 Running 0 58s MY_APP_NAME-s2i-1-build 0/1 Completed 0 2mMY_APP_NAME-1-aaaaaPod は、完全にデプロイされて起動すると、ステータスがRunningである必要があります。特定の Pod 名が異なります。中間の数字は新しいビルドごとに増えます。末尾の文字は、Pod の作成時に生成されます。サンプルアプリケーションをデプロイして起動すると、そのルートを決定します。
ルート情報の例
$ oc get routes NAME HOST/PORT PATH SERVICES PORT TERMINATION MY_APP_NAME MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME MY_APP_NAME 8080Pod のルート情報は、アクセスに使用するベース URL を提供します。上記の例では、
http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAMEをベース URL として使用し、アプリケーションにアクセスします。
5.1.3. REST API Level 0 サンプルアプリケーションの Minishift または CDK へのデプロイメント リンクのコピーリンクがクリップボードにコピーされました!
以下のオプションのいずれかを使用して、REST API Level 0 サンプルアプリケーションを Minishift または CDK でローカルに実行します。
各メソッドは、同じ oc コマンドを使用してアプリケーションをデプロイしますが、Fabric8 Launcher を使用すると、oc コマンドを実行する自動デプロイメントワークフローが提供されます。
5.1.3.1. Fabric8 Launcher ツールの URL および認証情報の取得 リンクのコピーリンクがクリップボードにコピーされました!
Minishift または CDK にサンプルアプリケーションを作成してデプロイするには、Fabric8 Launcher ツール URL とユーザー認証情報が必要です。この情報は、Minishift または CDK の起動時に提供されます。
前提条件
- Fabric8 Launcher ツールがインストールされ、設定され、実行している。
手順
- Minishift または CDK を起動したコンソールに移動します。
実行中の Fabric8 Launcher にアクセスするのに使用できる URL およびユーザー認証情報のコンソール出力を確認します。
Minishift または CDK 起動時のコンソール出力の例
... -- Removing temporary directory ... OK -- Server Information ... OpenShift server started. The server is accessible via web console at: https://192.168.42.152:8443 You are logged in as: User: developer Password: developer To login as administrator: oc login -u system:admin
5.1.3.2. Fabric8 Launcher ツールを使用したサンプルアプリケーションのデプロイメント リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、REST API Level 0 のサンプルアプリケーションをビルドし、Fabric8 Launcher Web インターフェイスから OpenShift にデプロイする方法を説明します。
前提条件
- 実行中の Fabric8 Launcher インスタンスの URL と、Minishift または CDK のユーザー認証情報。詳細は、「Fabric8 Launcher ツールの URL および認証情報の取得」 を参照してください。
手順
- ブラウザーで Fabric8 Launcher URL に移動します。
- 画面の指示に従って、Node.js でサンプルアプリケーションを作成して起動します。
5.1.3.3. CLI クライアント oc の認証 リンクのコピーリンクがクリップボードにコピーされました!
oc コマンドラインクライアントを使用して Minishift または CDK でアプリケーションのサンプルを使用するには、Minishift または CDK Web インターフェイスによって提供されるトークンを使用してクライアントを認証する必要があります。
前提条件
- 実行中の Fabric8 Launcher インスタンスの URL と、Minishift または CDK のユーザー認証情報。詳細は、「Fabric8 Launcher ツールの URL および認証情報の取得」 を参照してください。
手順
- ブラウザーで Minishift または CDK URL に移動します。
- ユーザー名の横にある Web コンソールの右上にあるクエスチャルマークアイコンをクリックします。
- ドロップダウンメニューで Command Line Tools を選択します。
-
oc loginコマンドをコピーします。 端末にコマンドを貼り付けます。このコマンドは、認証トークンを使用して、Minishift または CDK アカウントで CLI クライアント
ocを認証します。$ oc login OPENSHIFT_URL --token=MYTOKEN
5.1.3.4. CLI クライアント oc を使用した REST API Level 0 サンプルアプリケーションのデプロイメント リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、REST API Level 0 のサンプルアプリケーションをビルドし、コマンドラインから OpenShift にデプロイする方法を説明します。
前提条件
- Minishift または CDK の Fabric8 Launcher ツールを使用して作成されたサンプルアプリケーション。詳細は、「Fabric8 Launcher ツールを使用したサンプルアプリケーションのデプロイメント」 を参照してください。
- Fabric8 Launcher ツールの URL。
-
認証された
ocクライアント。詳細は、「CLI クライアントocの認証」 を参照してください。
手順
GitHub からプロジェクトのクローンを作成します。
$ git clone git@github.com:USERNAME/MY_PROJECT_NAME.gitまたは、プロジェクトの ZIP ファイルをダウンロードして、展開します。
$ unzip MY_PROJECT_NAME.zipOpenShift で新規プロジェクトを作成します。
$ oc new-project MY_PROJECT_NAME- アプリケーションの root ディレクトリーに移動します。
npmを使用して OpenShift へのデプロイメントを開始します。$ npm install && npm run openshiftこれらのコマンドは、不足しているモジュールの依存関係をインストールしてから、Nodeshift モジュールを使用して、サンプルアプリケーションを OpenShift にデプロイします。
アプリケーションのステータスを確認し、Pod が実行していることを確認します。
$ oc get pods -w NAME READY STATUS RESTARTS AGE MY_APP_NAME-1-aaaaa 1/1 Running 0 58s MY_APP_NAME-s2i-1-build 0/1 Completed 0 2mMY_APP_NAME-1-aaaaaPod は、完全にデプロイされて起動すると、ステータスがRunningである必要があります。特定の Pod 名が異なります。中間の数字は新しいビルドごとに増えます。末尾の文字は、Pod の作成時に生成されます。サンプルアプリケーションをデプロイして起動すると、そのルートを決定します。
ルート情報の例
$ oc get routes NAME HOST/PORT PATH SERVICES PORT TERMINATION MY_APP_NAME MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME MY_APP_NAME 8080Pod のルート情報は、アクセスに使用するベース URL を提供します。上記の例では、
http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAMEをベース URL として使用し、アプリケーションにアクセスします。
5.1.4. REST API Level 0 サンプルアプリケーションの OpenShift Container Platform へのデプロイメント リンクのコピーリンクがクリップボードにコピーされました!
サンプルアプリケーションを OpenShift Container Platform に作成し、デプロイするプロセスは OpenShift Online に似ています。
前提条件
- developers.redhat.com/launch を使用して作成されたサンプルアプリケーション。
手順
- 「REST API Level 0 サンプルアプリケーションの OpenShift Online へのデプロイメント」 の説明に従い、OpenShift Container Platform Web コンソールの URL およびユーザー認証情報のみを使用します。
5.1.5. Node.js の未変更の REST API Level 0 サンプルアプリケーションとの対話 リンクのコピーリンクがクリップボードにコピーされました!
この例では、GET 要求を受け入れるデフォルトの HTTP エンドポイントを提供します。
前提条件
- アプリケーションの実行
-
curlバイナリーまたは Web ブラウザー
手順
curlを使用して、サンプルに対してGET要求を実行します。これを行うには、ブラウザーを使用することもできます。$ curl http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME/api/greeting {"content":"Hello, World!"}curlを使用して、例に対して URL パラメーターnameを使用してGET要求を実行します。これを行うには、ブラウザーを使用することもできます。$ curl http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME/api/greeting?name=Sarah {"content":"Hello, Sarah!"}
ブラウザーから、例で提供されているフォームを使用して、これらの同じ対話を実行することもできます。このフォームは、プロジェクト http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME のルートにあります。
5.1.6. REST リソース リンクのコピーリンクがクリップボードにコピーされました!
REST の背景および関連情報は、以下を参照してください。