IBM Cloud functions(node.js)からDB2 on Cloudへ接続する方法


1. はじめに

IBM Cloud functionsでは、以下リンクのpackageが標準で利用できるようになっています。
https://cloud.ibm.com/docs/openwhisk?topic=cloud-functions-runtimes#node-js-packages

例えばDb2にアクセスしたい場合にはibm_dbというモジュールが存在するので、これを利用すると簡単にDb2 on CloudなどのDb2環境にアクセスすることができます。この記事ではIBM Cloud functionsの実行言語としてnode.jsを選択しています。python版はこちらです。
https://www.npmjs.com/package/ibm_db

2. サンプルコード

以下のサンプルコードでは、Db2 on Cloudに対して、select * from SYSIBMADM.SNAPDBMを実行するコードを記載しています。

サンプルコード
var ibmdb = require('ibm_db');
function main(params) {

var ssldsn = 'DATABASE=xxxxx;HOSTNAME=dashdb-txn-flex-yp-xxxxx.xxxxxx.xxxxx.bluemix.net;PORT=xxxxx;PROTOCOL=TCPIP;UID=xxxxx;PWD=xxxxx;Security=SSL;';
var sql = 'select * from SYSIBMADM.SNAPDBM';

ibmdb.open(ssldsn, function (err,conn) {
  if (err) return console.log(err);

  conn.query(sql, function (err, data) {
    if (err) console.log(err);
    else console.log(data);

    conn.close(function () {
      console.log('connection closed');
    });
  });
});


};

接続情報であるssldsnは、DB2 on Cloudの以下のcredential情報から入手することができます。

3. サンプルコードの利用方法

IBM Cloud functionsで以下のようにアクションを作成します。



コードを貼り付けて、Invokeで実行すると、右画面に結果が出力されます。