第5章 Node.js のアプリケーションの例
Node.js ランタイムは、サンプルアプリケーションを提供します。OpenShift でアプリケーションの開発を開始する場合、サンプルアプリケーションをテンプレートとして使用できます。
これらのサンプルアプリケーションは Developer Launcher でアクセスできます。
以下のサンプルアプリケーションをすべてダウンロードしてデプロイできます。
- x86_64 アーキテクチャー: 本ガイドのアプリケーションの例は、x86_64 アーキテクチャーでサンプルアプリケーションをビルドおよびデプロイする方法を説明します。
s390x アーキテクチャー: IBM Z インフラストラクチャーでプロビジョニングされる OpenShift 環境にサンプルアプリケーションをデプロイするには、コマンドに適切な IBM Z イメージ名を指定します。
このサンプルアプリケーションでは、ワークフローを実証するために Red Hat Data Grid などの他の製品も必要です。この場合、これらの製品のイメージ名を、サンプルアプリケーションの YAML ファイルの関連する IBM Z イメージ名に変更する必要があります。
Node.js の Secured サンプルアプリケーションには Red Hat SSO 7.3 が必要です。IBM Z では Red Hat SSO 7.3 に対応していないため、IBM Z では Secured の例は利用できません。
5.1. Node.js の REST API レベル 0 の例 リンクのコピーリンクがクリップボードにコピーされました!
以下の例は、実稼働環境で実行することは意図されていません。
実験レベルの例: Foundational。
REST API レベル 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
request パラメーターを使用します。 -
$name がリクエストに渡される
name
の JSON 形式で応答を受信します。パラメーター
の値に置き換えられた、ペイロードが Hello, $name
!
5.1.1. REST API レベル 0 設計のトレードオフ リンクのコピーリンクがクリップボードにコピーされました!
pros | cons |
---|---|
|
|
5.1.2. REST API レベル 0 サンプルアプリケーションの OpenShift Online へのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Online で REST API レベル 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. oc CLI クライアントの認証 リンクのコピーリンクがクリップボードにコピーされました!
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
$ oc login OPENSHIFT_URL --token=MYTOKEN
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.1.2.3. oc CLI クライアントを使用した REST API レベル 0 サンプルアプリケーションのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
本セクションでは、REST API レベル 0 サンプルアプリケーションをビルドし、コマンドラインから OpenShift にデプロイする方法を説明します。
前提条件
- developers.redhat.com/launch を使用して作成されたサンプルアプリケーション。詳細はを参照してください 「developers.redhat.com/launch を使用したサンプルアプリケーションのデプロイ」。
-
認証された
oc
クライアント。詳細はを参照してください 「oc
CLI クライアントの認証」。
手順
GitHub からプロジェクトのクローンを作成します。
git clone git@github.com:USERNAME/MY_PROJECT_NAME.git
$ git clone git@github.com:USERNAME/MY_PROJECT_NAME.git
Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロジェクトの ZIP ファイルをダウンロードした場合は、展開します。
unzip MY_PROJECT_NAME.zip
$ unzip MY_PROJECT_NAME.zip
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift で新規プロジェクトを作成します。
oc new-project MY_PROJECT_NAME
$ oc new-project MY_PROJECT_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - アプリケーションのルートディレクトリーに移動します。
npm
を使用して OpenShift へのデプロイメントを開始します。npm install && npm run openshift
$ npm install && npm run openshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow これらのコマンドは、不足しているモジュール依存関係をすべてインストールし、Nodeshift モジュールを使用してサンプルアプリケーションを OpenShift にデプロイします。
アプリケーションのステータスを確認し、Pod が実行されていることを確認します。
oc get pods -w
$ 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 2m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow MY_APP_NAME-1-aaaaa
Pod が完全にデプロイされ、起動されると、ステータスがRunning
である必要があります。特定の Pod 名が異なります。新規ビルドごとに、中程度の数字が増加します。末尾の文字は、Pod の作成時に生成されます。サンプルアプリケーションがデプロイされ、起動したら、そのルートを決定します。
ルート情報の例
oc get routes
$ oc get routes NAME HOST/PORT PATH SERVICES PORT TERMINATION MY_APP_NAME MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME MY_APP_NAME 8080
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pod のルート情報は、アクセスに使用するベース URL を提供します。上記の例では、アプリケーションにアクセス
する
ためにベース URL として http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME を使用します。
5.1.3. REST API レベル 0 サンプルアプリケーションの Minishift または CDK へのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
以下のいずれかのオプションを使用して、Minishift または CDK で REST API レベル 0 のサンプルアプリケーションをローカルに実行します。
各方法は同じ 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 起動からのコンソール出力の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.1.3.2. Fabric8 Launcher ツールを使用したサンプルアプリケーションのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
本セクションでは、REST API レベル 0 サンプルアプリケーションをビルドし、それを Fabric8 Launcher Web インターフェースから OpenShift にデプロイする方法を説明します。
前提条件
- 実行中の Fabric8 Launcher インスタンスの URL と Minishift または CDK のユーザー認証情報。詳細はを参照してください 「Fabric8 Launcher ツールの URL および認証情報の取得」。
手順
- ブラウザーで Fabric8 Launcher URL に移動します。
- 画面の指示に従って、Node.js でサンプルアプリケーションを作成して起動します。
5.1.3.3. oc CLI クライアントの認証 リンクのコピーリンクがクリップボードにコピーされました!
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 アカウントで
oc
CLI クライアントを認証します。oc login OPENSHIFT_URL --token=MYTOKEN
$ oc login OPENSHIFT_URL --token=MYTOKEN
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.1.3.4. oc CLI クライアントを使用した REST API レベル 0 サンプルアプリケーションのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
本セクションでは、REST API レベル 0 サンプルアプリケーションをビルドし、コマンドラインから OpenShift にデプロイする方法を説明します。
前提条件
- Minishift または CDK で Fabric8 Launcher ツールを使用して作成されたアプリケーションのサンプル。詳細はを参照してください 「Fabric8 Launcher ツールを使用したサンプルアプリケーションのデプロイ」。
- Fabric8 Launcher ツール URL。
-
認証された
oc
クライアント。詳細はを参照してください 「oc
CLI クライアントの認証」。
手順
GitHub からプロジェクトのクローンを作成します。
git clone git@github.com:USERNAME/MY_PROJECT_NAME.git
$ git clone git@github.com:USERNAME/MY_PROJECT_NAME.git
Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロジェクトの ZIP ファイルをダウンロードした場合は、展開します。
unzip MY_PROJECT_NAME.zip
$ unzip MY_PROJECT_NAME.zip
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift で新規プロジェクトを作成します。
oc new-project MY_PROJECT_NAME
$ oc new-project MY_PROJECT_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - アプリケーションのルートディレクトリーに移動します。
npm
を使用して OpenShift へのデプロイメントを開始します。npm install && npm run openshift
$ npm install && npm run openshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow これらのコマンドは、不足しているモジュール依存関係をすべてインストールし、Nodeshift モジュールを使用してサンプルアプリケーションを OpenShift にデプロイします。
アプリケーションのステータスを確認し、Pod が実行されていることを確認します。
oc get pods -w
$ 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 2m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow MY_APP_NAME-1-aaaaa
Pod が完全にデプロイされ、起動されると、ステータスがRunning
である必要があります。特定の Pod 名が異なります。新規ビルドごとに、中程度の数字が増加します。末尾の文字は、Pod の作成時に生成されます。サンプルアプリケーションがデプロイされ、起動したら、そのルートを決定します。
ルート情報の例
oc get routes
$ oc get routes NAME HOST/PORT PATH SERVICES PORT TERMINATION MY_APP_NAME MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME MY_APP_NAME 8080
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pod のルート情報は、アクセスに使用するベース URL を提供します。上記の例では、アプリケーションにアクセス
する
ためにベース URL として http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME を使用します。
5.1.4. REST API レベル 0 サンプルアプリケーションの OpenShift Container Platform へのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
サンプルアプリケーションを OpenShift Container Platform に作成し、デプロイするプロセスは OpenShift Online と似ています。
前提条件
- developers.redhat.com/launch を使用して作成されたサンプルアプリケーション。
手順
- の手順に従って 「REST API レベル 0 サンプルアプリケーションの OpenShift Online へのデプロイ」、OpenShift Container Platform Web コンソールからの URL およびユーザー認証情報のみを使用します。
5.1.5. Node.js 用の変更されていない REST API レベル 0 のサンプルアプリケーションとの対話 リンクのコピーリンクがクリップボードにコピーされました!
この例では、GET リクエストを許可するデフォルトの HTTP エンドポイントを提供します。
前提条件
- アプリケーションを実行している。
-
curl
バイナリーまたは Web ブラウザー
手順
curl
を使用して、例に対してGET
要求を実行します。ブラウザーを使用してこれを行うこともできます。curl http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME/api/greeting
$ curl http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME/api/greeting {"content":"Hello, World!"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow curl
を使用して、例に対して URL パラメーターで
GET
リクエストを実行します。ブラウザーを使用してこれを行うこともできます。curl http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME/api/greeting?name=Sarah
$ curl http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME/api/greeting?name=Sarah {"content":"Hello, Sarah!"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ブラウザーから、この例で提供されるフォームを使用して、同じ対話を実行することもできます。このフォームは、プロジェクト http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME のルートにあり ます
。
5.1.6. REST リソース リンクのコピーリンクがクリップボードにコピーされました!
REST に関する背景や関連情報は、以下を参照してください。