if(재능이 없으면 시간으로 극복하라){return 성공;}

SAP BTP - CF(Cloud Foundry)에 HANA Cloud Database가 연결된 DB 배포하기

  1. CF CLI 버전 확인
    cf -v
    

image

  1. Cloud Foundry 로그인 image

  2. SAP HANA Query를 사용하기 위해 Node.js APP 하나 만들기.
    npm init -y
    
  3. server.js 생성 후에 실행
var express = require('express');
var hana = require('@sap/hana-client');
var app = express();

app.get('/', function (req, res){
    res.send('Hello World');
})

app.get('/Customers', function (req, res){
    var connOptions = {
        serverNode : '1e48300b-3b35-4003-8340-aa8f2ffb3cc1.hana.trial-us10.hanacloud.ondemand.com:443',
        UID : 'USER1',
        PWD : 'Password1',
    };

    var connection = hana.createConnection();
    connection.connect(connOptions, function(err){
        if (err) {
            return console.error(err);
        }
        var sql = 'SELECT * FROM BJSYSTEMS.CUSTOMER;';
        var rows = connection.exec(sql, function(err, rows){
            if(err){
                return console.error(err);
            }
            console.log(rows);
            res.send(rows);
            connection.disconnect(function(err){
                if(err){
                    return console.error(err);
                }
            });
        });
    });
})

const port = process.env.PORT || 3000;
var server = app.listen(port, function(){
    var host = server.address().address
    var port = server.address().port
    console.log("Example app listening at http://%s:%s",host,port);
})
node server.js

express가 없어서 오류 image

npm install express

설치후에 node server.js 명령어를 입력해주니 정상 동작 image

http://localhost:3000/Customers 로 접속하면 데이터가 정상적으로 출력 image

해당 어플리케이션을 CF에 배포해보자. nodeCF 폴더에 deployment descriptor manifest.yml 파일 생성 및 다음 코드 입력

---
applications:
- name: nodeQueryCF
  random-route: true
  type : node.js
  path : nodeQueryCF
  command : node server.js
  memory : 128M

하위 계정에서 인타이틀먼트에 Cloud Foundry Runtime이 있는지 확인 image

만든 어플리케이션을 배포해주고 아래 명령어는 manifest.yml 경로에서 입력해준다.

cf push

배포가 정상적으로 된 후에 CF의 도메인/Customers를 입력하여 접속하면 image

여러 방법으로 확인 가능 image

Service Binding을 동해 on-premise database와도 연결 가능