1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Node.jsAdvent Calendar 2021

Day 12

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環境の設定

###トライヤル環境に登録
https://www.sap.com/products/business-technology-platform/trial.html

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?