「[[.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