「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>Cloud Foundry]]
--Cloud Foundryファースト・ステップ
--[[Cloud Foundryセカンド・ステップ]]

*目次 [#rf3a507c]
#contents

*概要 [#ged2a5c5]
IBM Cloud (Bluemix)を使用することにしました。

-IBM Cloudでアプリケーションを作ろう - Japan~
https://www.ibm.com/cloud-computing/jp/ja/bluemix/developerslounge/makingapp/

(残念なことにcfコマンドはラップされている模様ですが、~
[[Open PaaS]]ってそう言うモンかもなぁ。などと考えました。~
エンドユーザーからすると何でも良いんですよね。)

**内容 [#b35fc400]
メモ・アプリ
-メモを登録・削除できる。
-Cloudant(CouchDB)に永続化

**[[アーキテクチャ>Cloud Foundry#xc20ca9d]] [#n98d83e0]

**準備 [#ka23fd00]
事前に以下を行っておく。

-IBM Cloud (Bluemix)ポータルにサインアップ(ライト・アカウント)

--IBM Cloud に登録~
https://console.bluemix.net/registration/free

-IBM Cloud CLIのインストール(Win版)

--IBM Cloud Developer Tools 概要~
https://clis.ng.bluemix.net/ui/home.html

---PowerShellでインストール
---cmdで「ibmcloud」が動くか確認~
(別名、ic, bluemix, bxで利用可能)

-Gitクライアントのインストール

*演習 [#o15972b0]

**アプリケーションの作成とデプロイ [#tdac2599]

***リソースの作成 [#ib6b3e13]
-ポータルにサインインして、「組織」と「スペース」、場所を「米国南部」に設定。
#ref(1.png,left,nowrap,手順1,60%)

-[アプリの作成]ボタンを押下して、遷移後、[カタログ]のリンクを押下。
-[Cloud Foundryアプリ]カテゴリの[SDK for Node.js]を押下。
-アプリ名に「MemoApp」、ホスト名に他と重複の無い任意の値を入力し[作成]ボタンを押下。
--ホスト名:daisukenishino とした。
--価格プラン:256MB とした。

-作成されたアプリの画面に遷移して~
[アプリ URL にアクセス]リンクを押下すると、~
アプリのエンドポイントにアクセスできる。
#ref(2.png,left,nowrap,手順2,60%)

***ソースコードの取得 [#u68092a9]
-以下のURLでGitクローンする。
 https://github.com/isebm/first-bluemix-application.git

--Gitクライアント
 >git clone https://github.com/isebm/first-bluemix-application.git
--TortoiseGitでもOK

-first-bluemix-applicationディレクトリ以下にクローンされる。

***manifest.ymlの書換 [#ne92cca9]
取得したコード内に含まれるmanifest.ymlを書換る。

 applications:
 - name: MemoApp
 disk_quota: 1024M
 memory: 256M
 host: daisukenishino
 domain: mybluemix.net
 command: node app.js
 path: .
 instances: 1

-参考
--About IBM Cloud Foundry Enterprise Environment~
https://console.bluemix.net/docs/cloud-foundry/index.html#appmanifest

***IBM Cloud CLIでデプロイ [#s4a699a6]
-first-bluemix-applicationディレクトリにcdし、
 >cd ...first-bluemix-application

-IBM Cloud CLIを利用し、IBM Cloudにログイン
--既定の手順でPWDがうまく入力できなかったので、~
以下の参考手順でAPIキーでログインする。
 >bluemix login --apikey <発行したAPIキーのストリング>
--組織とスペースを指定する。
---とあるので、
 >bluemix target -o <組織名> -s <スペース名>
---と指定した。
 >bluemix target -o daisukenishino77@gmail.com -s dev

-first-bluemix-applicationディレクトリでapp push~
(cfコマンドがラップされているようで、直接触れない模様)
 >bluemix app push
 'cf push' を起動しています...

-失敗したらログ確認(成功してもログ確認)
 >bluemix app logs MemoApp --recent

-参考
--Bluemixログイン処理を早速APIキーで行ってみる~
https://qiita.com/Ra1nmaker/items/b2755391bcef7b8a2335

***アプリケーションの動作確認 [#t7234dcc]
-成功の状態で、~
前述の[アプリ URL にアクセス]リンクを押下すると、~
MemoApp のエンドポイントにアクセスし動作確認できる。

-なお、この状態では、~
オンメモリで処理されており、永続化されていないようで、~
ポータルからアプリを再起動すると登録内容がクリアされる。

**Cloudant NoSQLサービスの追加 [#g719446e]
-前述のMemoAppの永続化を可能にする(アプリを再起動しても消えなくなる)。
-Cloudant NoSQLとは、Apache CouchDBというJSONデータベースをベースとしているらしい。

***リソースの作成 [#s7249e1e]
-[[前述の手順>#ib6b3e13]]と同様に、[カタログ]のリンクを押下、~
[データ & 分析]カテゴリの[Cloudant NoSQL DB]を押下。

-サービス名を「Cloudant NoSQL DB-memo」に変更し[作成]ボタンを押下。

***設定のためダッシュボードに遷移 [#n99f581e]
-そのままCloudant Webコンソールの起動する。~
または、ポータルトップから確認できるリソース一覧から、~
先ほど作成した「Cloudant NoSQL DB-memo」を押下する。

-遷移後、[LAUNCH CLOUDANT DASHBOARD]ボタンを押下。

***DBの作成 [#r33f44e7]
-[データベースのマーク]ボタンを押下し、[Create Database]ボタンを押下。
-ポックアップにデータベース名を「memo」と入力し[Create]ボタンを押下。

***Viewの作成 [#z878e674]
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と連携するよう、アプリケーションを修正 [#x93eaf3a]

***manifest.ymlを修正 [#kb68c504]
manifest.ymlにCloudantのサービス名を追加
 services: 
 - Cloudant NoSQL DB-memo

***パッケージを追加 [#k4736560]
package.jsonのdependenciesセクションにcradleを追加
 "cradle": "~0.6.7" 

***ソースコードを修正 [#h867249a]
「reference/cloudant/memo.js」→「models/memo.js」に置換。

***補足説明 [#nbea50f9]
...\first-bluemix-application\referenceの、

-memoryにオリジナル・ファイルが格納されている。

-cloudantに変更後ファイルが格納されている。

従って、書換ではなく、置換でも良いが、その際は、~
[[ココでの変更内容>#ne92cca9]]をマージする必要がある。

**アプリケーションの再デプロイ [#u451a327]

***IBM Cloud CLIで再デプロイ [#qfca6a3d]
-first-bluemix-applicationディレクトリでapp push~
(cfコマンドがラップされているようで、直接触れない模様)
 >bluemix app push
 'cf push' を起動しています...

-失敗したらログ確認(成功してもログ確認)
 >bluemix app logs MemoApp --recent

***アプリケーションの動作確認 [#d6c7f6ed]
-成功の状態で、~
前述の[アプリ URL にアクセス]リンクを押下すると、~
MemoApp のエンドポイントにアクセスし動作確認できる。

-これにより、
--ポータルからアプリを再起動しても登録内容がクリアされなくなる。
--以下でデーターベースに永続化されたデータを確認できる。
#ref(3.png,left,nowrap,手順3,60%)

*[[セカンド・ステップ>Cloud Foundryセカンド・ステップ]] [#wd127256]

*参考 [#mb26b187]
-ダッシュボード - IBM Cloud~
https://console.bluemix.net/dashboard/apps/

-IBM Cloud Developer Tools 概要~
https://console.bluemix.net/docs/cli/index.html

-Node.jsのHello WorldプログラムをIBM Bluemixで動かしてみる~
https://qiita.com/asmanabu/items/30028a8ecafdb041aefc

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS