LoginSignup
1
0

More than 1 year has passed since last update.

SAP BTPのCloud Foundry EnvironmentにNode.jsアプリをデプロイする

Last updated at Posted at 2021-12-11

この記事はNode.js Advent Calendar 2021の12日分の記事です。

今回はNode.js+expressのアプリを作ってSAP BTPのCloud Foundry環境にデプロイする方法について説明します

環境

OS:Windows10
Node.js:16.13.1
CF-CLI:V8

Node.jsとは

サーバーサイドで動くJavaScriptの実行環境です。

SAP BTPのCloud Foundry環境について

SAP BTPは、インテリジェントエンタープライズアプリケーションとデータベース、およびデータ管理機能、アナリティクス、統合機能、拡張機能が一つに統合された、クラウド環境とハイブリッド環境の両方に対応したプラットフォームです。
数百もの SAP アプリケーションとサードパーティアプリケーションの事前構築済み統合も含まれています。

SAP BTPのランタイム環境はCloud Foundry、Kyma、ABAPの3つがあります。
今回はCloud Foundryを使用します。

今回の流れ

・Node.jsアプリの作成
・SAP BTP環境の設定
・デプロイ

Node.jsアプリの作成

準備

https://nodejs.org/en/
上記からNode.jsをインストール

アプリ作成

以下のコマンドを実行します

$ mkdir nodeApp
$ cd nodeApp/
$ npm init
$ npm install express --save

新規ファイルapp.jsを作成
ポートは固定にしてしまうとBTP上で動かした場合、エラーになるので注意が必要です

app.js
var express = require("express");

var app = express();

//  listen()メソッドを実行して3000番ポートで待ち受け
var port = process.env.PORT || 3000
var server = app.listen(port, function () {
    console.log("Node.js is listening to PORT:" + server.address().port);
});

//  Hello Worldを表示
app.get("/", function (req, res, next) {
    res.send("Hello World");
});

package.jsonを編集します
"start": "node app.js" をscriptsに追加しています

package.json
{
  "name": "nodeapp",
  "version": "1.0.0",
  "engines": {
    "node": "14.x.x"
  },
  "description": "",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node app.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "^4.17.1"
  }
}

ローカルでの実行確認

ローカルでアプリを実行

$ node app.js

URLにアクセスしてプラウザでHello Worldが表示されることを確認

SAP BTP環境の設定

トライヤル環境に登録

image.png

SAP BTP環境の準備

Subaccount: trial - EntitlementsからCloud Foundry Runtimeを有効化

image.png

Create Spaceからスペースを作成
今回はdevって名前で作成
デプロイ時に使うのでAPI Endpointをメモしておく

https://api.cf.us10.hana.ondemand.com

image.png

デプロイ

Cloud Foundry CLIのインストール

https://github.com/cloudfoundry/cli#downloads
ここらからCloud Foundry CLIをインストール
真ん中あたりにインストーラーがあります。

デプロイ

以下のコマンドでログイン後、BTPのメールアドレスとパスワード入力

cf login -a <URL>

アプリをプッシュ

cf push nodeApp --random-route

アプリ(nodeApp)がBTP上に作成されていることを確認
image.png

アプリのメモリ等を設定したい場合は以下のファイルを作成

manifest.yml
---
applications:
- name: nodeApp
  memory: 128m
  instances: 1
  buildpack: https://github.com/cloudfoundry/nodejs-buildpack.git

manifest.ymlを参照するようになるのでcf pushのみでOKになる

※参考

1
0
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
1
0