LoginSignup
5
1

More than 3 years have passed since last update.

[チュートリアル] Node.jsのWebアプリ公開からCloudant NoSQL DB接続まで (IBM Cloud Foundry)

Last updated at Posted at 2019-08-05

皆さん、こんにちは。戸倉彩です。

今回はIBM Cloud上で提供されているCloud Foundryサービスを利用してNode.jsのWebアプリケーションを構築する手順について紹介します。

はじめに

このチュートリアルでは、次のアカウントおよびツールを利用します。必要に応じて入手してください。
IBM Cloud アカウント: まだお持ちでない方は、過去に投稿した「「IBM Cloudをはじめました」無料ではじめられるライト・アカウント登録方法」をご覧ください。
IBM Cloud CLI: IBM Cloudをコマンドで操作するためのコマンド・ライン・インターフェース(CLI)です。
Git: GitHubリポジトリーからクローンする際に利用します。
Node.js: 今日現在、最新バージョン12.7.0が提供されていますが、安定バージョン10.16.1 LTSを利用されることをお勧めします。

Step 1: サンプルアプリケーションのクローン

下記のコマンドを実行してNode.jsのHello WorldサンプルアプリケーションをGitHubのリポジトリからクローンします。

git clone https://github.com/IBM-Cloud/get-started-node

Step 2: アプリケーションをローカル実行

1. コマンドラインで、ディレクトリをダウンロードしたサンプルアプリケーションがある場所に変更します。

cd get-started-node

2. アプリケーションをローカルで実行するため、次のコマンドを実行してpackage.jsonファイルにリストされている依存関係をインストールします。

npm install

3. 次のコマンドでアプリケーションを実行してください。

npm start

4. Webブラウザで http://localhost:3000 にアクセスします。
5. 「ようこそ」画面が表示されたら名前を入力します。
6. 「こんにちは <入力した名前>」と表示されたらOKです。
7. コマンドラインで[Control]+[C]を同時に押し、アプリケーションの実行を止めます。

Step 3: デプロイのためのアプリの準備

IBM Cloudにデプロイするには、manifest.yml ファイルをセットアップします。 manifest.yml には、名前、各インスタンスに割り当てるメモリ容量、ルートなど、アプリに関する基本的な情報が含まれています。 get-started-nodeディレクトリに、次のサンプルのmanifest.ymlファイルが存在することを確認してください。

applications:
- name: GetStartedNode
  random-route: true
  memory: 128M

Step 4: IBM Cloudへのアプリケーションのデプロイ

1. コマンドラインからIBM Cloudにログインします。

ibmcloud login

企業アカウントなどでシングルサインオンを採用している場合は、次のコマンドでログインしてください。

ibmcloud login --sso

2. Cloud Foundryの組織とスペースをターゲットにします。

ibmcloud target --cf

組織やスペースが設定されていない場合は、「組織とスペースの追加」サイトを参照してください。

3. get-started-nodeディレクトリー内から、アプリをIBM Cloudにプッシュします。

ibmcloud cf push

アプリケーションのデプロイには数分かかることがあります。デプロイが完了すると、アプリが実行されているというメッセージが表示されます。 pushコマンドの出力に表示されているURLでアプリを表示するか、次のコマンドを実行してアプリの展開ステータスとURLの両方を表示します。

ibmcloud cf apps

また、「IBM Cloud リソース・リスト」サイトにアクセスしてアプリを表示することもできます。

4. 生成されたURL、例えば (getstartednode-xxx).mybluemix.net にブラウザでアクセスしてアプリケーションがIBM Cloud上にデプロイしたことを確認してください。

Step 5: データベースの追加

次に、このアプリケーションに IBM Cloudant NoSQLデータベース を追加して、ローカルでもIBM Cloud上でも実行できるようにアプリケーションをセットアップします。
1. ブラウザで、IBM Cloudにログインしてダッシュボードを表示します。[リソースの作成] ボタンを選択します。
2. [カタログ] から 「Cloudant」 を検索して、サービスを選択します。
3. [Available authentication methods(利用可能な認証方法)]で、[Use both legacy credentials and IAM (従来の認証情報とIAMの両方を使用する)] を選択します。他のフィールドはデフォルト設定のままにすることができます。 [作成]ボタンをクリックしてサービスを作成します。作成には数分を要する場合があります。
4. ナビゲーションで [接続] に移動し、[接続の作成]ボタン をクリックします。アプリケーションを選択して [接続] をクリックします。
5. デフォルト値を使用して、[Connect&restage app] をクリックしてデータベースをアプリケーションに接続します。プロンプトが表示されたら、[アプリの接続および再ステージ] をクリックします。

Step 6: データベースの使用

このデータベースを指すようにローカルコードを更新します。アプリケーションが使用するサービスの資格情報を格納するJSONファイル を作成します。このファイルは、アプリケーションがローカルで実行されている場合にのみ使用されます。
IBM Cloud で実行している場合、資格情報は VCAP_SERVICES 環境変数から読み取られます。

1. get-started-node ディレクトリに、次の内容のvcap-local.jsonというファイルを作成します。

{
 "services": {
   "cloudantNoSQLDB": [
     {
       "credentials": {
         "url":"CLOUDANT_DATABASE_URL"
       },
       "label": "cloudantNoSQLDB"
     }
   ]
 }
}

2. IBM Cloudリソース・リストからご自身のアプリケーションをクリックして詳細を表示します。アプリの詳細ページで、サイドバーの [接続] をクリックします。 IBM Cloudantメニュー・アイコンの横の (…) をクリックして、[資格情報の表示] を選択します。
3. CLOUDANT_DATABASE_URLをコピーして、vcap-local.jsonファイルのurlフィールドにURLだけをコピーして貼り付けてファイルを保存します。
4. アプリケーションをローカルで実行します。

npm start

5. ローカル上で実行したご自身のアプリを http://localhost:3000 にアクセスして、名前を入力して[Enter]キーを押します。

6. アプリに入力した名前はすべてデータベースに追加されます。

以上です。
IBM Cloud Foundryでは、Node.jsの他にもJava、ASP.NET Core、Swift、Go、PHP、Python、Rubyに対応していますので、いろいろチェックしてみてください。

参考文献

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1