「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
IBM Cloud (Bluemix)を使用することにしました。
内容 †
メモ・アプリ
- メモを登録・削除できる。
- Cloudant(CouchDB)に永続化
準備 †
事前に以下を行っておく。
- IBM Cloud (Bluemix)ポータルにサインアップ(ライト・アカウント)
- IBM Cloud CLIのインストール(Win版)
- PowerShell?でインストール
- cmdで「ibmcloud」が動くか確認
(別名、ic, bluemix, bxで利用可能)
演習 †
アプリケーションの作成とデプロイ †
リソースの作成 †
- ポータルにサインインして、「組織」と「スペース」、場所を「米国南部」に設定。
- [アプリの作成]ボタンを押下して、遷移後、[カタログ]のリンクを押下。
- [Cloud Foundryアプリ]カテゴリの[SDK for Node.js]を押下。
- アプリ名に「MemoApp?」、ホスト名に他と重複の無い任意の値を入力し[作成]ボタンを押下。
- ホスト名:daisukenishino とした。
- 価格プラン:256MB とした。
- 作成されたアプリの画面に遷移して
[アプリ URL にアクセス]リンクを押下すると、
アプリのエンドポイントにアクセスできる。
ソースコードの取得 †
- first-bluemix-applicationディレクトリ以下にクローンされる。
manifest.ymlの書換 †
取得したコード内に含まれるmanifest.ymlを書換る。
applications:
- name: MemoApp
disk_quota: 1024M
memory: 256M
host: daisukenishino
domain: mybluemix.net
command: node app.js
path: .
instances: 1
IBM Cloud CLIでデプロイ †
- IBM Cloud CLIを利用し、IBM Cloudにログイン
アプリケーションの動作確認 †
- 成功の状態で、
前述の[アプリ URL にアクセス]リンクを押下すると、
MemoApp? のエンドポイントにアクセスし動作確認できる。
- なお、この状態では、
オンメモリで処理されており、永続化されていないようで、
ポータルからアプリを再起動すると登録内容がクリアされる。
Cloudant NoSQLサービスの追加 †
- 前述のMemoApp?の永続化を可能にする(アプリを再起動しても消えなくなる)。
- Cloudant NoSQLとは、Apache CouchDBというJSONデータベースをベースとしているらしい。
リソースの作成 †
- 前述の手順と同様に、[カタログ]のリンクを押下、
[データ & 分析]カテゴリの[Cloudant NoSQL DB]を押下。
- サービス名を「Cloudant NoSQL DB-memo」に変更し[作成]ボタンを押下。
設定のためダッシュボードに遷移 †
- そのままCloudant Webコンソールの起動する。
または、ポータルトップから確認できるリソース一覧から、
先ほど作成した「Cloudant NoSQL DB-memo」を押下する。
- 遷移後、[LAUNCH CLOUDANT DASHBOARD]ボタンを押下。
DBの作成 †
- [データベースのマーク]ボタンを押下し、[Create Database]ボタンを押下。
- ポックアップにデータベース名を「memo」と入力し[Create]ボタンを押下。
Viewの作成 †
Viewとは、Cloudant(CouchDB)の機能らしい。
- [データベースのマーク]ボタンを押下し、
- [Design Documents]メニューの「+」ボタンを押下。
- [New View]を選択し、遷移した画面で、
- 必要な情報を入力する。
- Design Document名(_design/):「memos」
- index name:「list」
- Map Function:以下のスクリプトを貼り付け。
function(doc) {
var row = {
id : doc._id,
title : doc.title,
updatedAt : doc.updatedAt
};
emit(doc.updatedAt, row);
}
- 入力完了後、[Create Document and then Build Index]を押下。
Cloudantと連携するよう、アプリケーションを修正 †
manifest.ymlを修正 †
manifest.ymlにCloudantのサービス名を追加
services:
- Cloudant NoSQL DB-memo
パッケージを追加 †
package.jsonのdependenciesセクションにcradleを追加
"cradle": "~0.6.7"
ソースコードを修正 †
「reference/cloudant/memo.js」→「models/memo.js」に置換。
補足説明 †
...\first-bluemix-application\referenceの、
- memoryにオリジナル・ファイルが格納されている。
- cloudantに変更後ファイルが格納されている。
従って、書換ではなく、置換でも良いが、その際は、
ココでの変更内容をマージする必要がある。
アプリケーションの再デプロイ †
IBM Cloud CLIで再デプロイ †
アプリケーションの動作確認 †
- 成功の状態で、
前述の[アプリ URL にアクセス]リンクを押下すると、
MemoApp? のエンドポイントにアクセスし動作確認できる。
- これにより、
- ポータルからアプリを再起動しても登録内容がクリアされなくなる。
- 以下でデーターベースに永続化されたデータを確認できる。
参考 †