第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
$ oc login OPENSHIFT_URL --token=MYTOKENCopy to Clipboard Copied! Toggle word wrap Toggle overflow
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
$ git clone git@github.com:USERNAME/MY_PROJECT_NAME.gitCopy to Clipboard Copied! Toggle word wrap Toggle overflow または、プロジェクトの ZIP ファイルをダウンロードして、展開します。
unzip MY_PROJECT_NAME.zip
$ unzip MY_PROJECT_NAME.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift で新規プロジェクトを作成します。
oc new-project MY_PROJECT_NAME
$ oc new-project MY_PROJECT_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow - アプリケーションの root ディレクトリーに移動します。
npmを使用して OpenShift へのデプロイメントを開始します。npm install && npm run openshift
$ npm install && npm run openshiftCopy 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 2mCopy to Clipboard Copied! Toggle word wrap Toggle overflow MY_APP_NAME-1-aaaaaPod は、完全にデプロイされて起動すると、ステータスが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 8080Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pod のルート情報は、アクセスに使用するベース 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 起動時のコンソール出力の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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
$ oc login OPENSHIFT_URL --token=MYTOKENCopy to Clipboard Copied! Toggle word wrap Toggle overflow
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
$ git clone git@github.com:USERNAME/MY_PROJECT_NAME.gitCopy to Clipboard Copied! Toggle word wrap Toggle overflow または、プロジェクトの ZIP ファイルをダウンロードして、展開します。
unzip MY_PROJECT_NAME.zip
$ unzip MY_PROJECT_NAME.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift で新規プロジェクトを作成します。
oc new-project MY_PROJECT_NAME
$ oc new-project MY_PROJECT_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow - アプリケーションの root ディレクトリーに移動します。
npmを使用して OpenShift へのデプロイメントを開始します。npm install && npm run openshift
$ npm install && npm run openshiftCopy 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 2mCopy to Clipboard Copied! Toggle word wrap Toggle overflow MY_APP_NAME-1-aaaaaPod は、完全にデプロイされて起動すると、ステータスが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 8080Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pod のルート情報は、アクセスに使用するベース 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
$ 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 パラメーターnameを使用して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 の背景および関連情報は、以下を参照してください。