Skip to content

DNET_CloudFoundryFirstStep

nishi_74322014 edited this page Sep 11, 2026 · 1 revision

Cloud Foundryファースト・ステップ

概要

IBM Cloud (Bluemix)を使用することにしました。

内容

メモ・アプリ

  • メモを登録・削除できる。
  • Cloudant(CouchDB)に永続化

準備

事前に以下を行っておく。

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

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

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

演習

アプリケーションの作成とデプロイ

リソースの作成(MemoApp)

  • ポータルにサインインして、「組織」と「スペース」、場所を「米国南部」に設定。 手順1

  • [アプリの作成]ボタンを押下して、遷移後、[カタログ]のリンクを押下。

  • [Cloud Foundryアプリ]カテゴリの[SDK for Node.js]を押下。

  • アプリ名に「MemoApp」、ホスト名に他と重複の無い任意の値を入力し[作成]ボタンを押下。

    • ホスト名:daisukenishino とした。
    • 価格プラン:256MB とした。
  • 作成されたアプリの画面に遷移して
    [アプリ URL にアクセス]リンクを押下すると、
    アプリのエンドポイントにアクセスできる。 手順2

ソースコードの取得

  • 以下の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の書換

取得したコード内に含まれる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でデプロイ

  • 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
    
  • 参考

アプリケーションの動作確認(初回デプロイ)

  • 成功の状態で、
    前述の[アプリ URL にアクセス]リンクを押下すると、
    MemoApp のエンドポイントにアクセスし動作確認できる。

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

Cloudant NoSQLサービスの追加

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

リソースの作成(Cloudant)

  • 前述の手順と同様に、[カタログ]のリンクを押下、
    [データ & 分析]カテゴリの[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で再デプロイ

  • first-bluemix-applicationディレクトリでapp push
    (cfコマンドがラップされているようで、直接触れない模様)

    >bluemix app push
    'cf push' を起動しています...
    
  • 失敗したらログ確認(成功してもログ確認)

    >bluemix app logs MemoApp --recent
    

アプリケーションの動作確認(再デプロイ)

  • 成功の状態で、
    前述の[アプリ URL にアクセス]リンクを押下すると、
    MemoApp のエンドポイントにアクセスし動作確認できる。

  • これにより、

    • ポータルからアプリを再起動しても登録内容がクリアされなくなる。
    • 以下でデーターベースに永続化されたデータを確認できる。 手順3

セカンド・ステップ

参考

移行メモ

  • 「戻る」の並びにある「Cloud Foundryファースト・ステップ」は自ページのため、 その旨を補った。
  • 元 Wiki では見出しそのものが他ページへのリンクになっていた箇所 (「セカンド・ステップ」)は、GitHub Wiki では見出しからアンカが 生成されるため、見出しをプレーン・テキストとし、リンクは直下の本文に置いた。
  • 同名の見出し(「リソースの作成」「アプリケーションの動作確認」)が 複数あり GitHub Wiki でアンカが衝突するため、括弧で文脈を補って一意にした。
  • PukiWiki のページ内アンカ(#xxxxxxxx)は GitHub Wiki では再現できないため、 同一ページ内のアンカは見出しから生成されるアンカに張り替えた。
  • 元 Wiki の行頭空白によるプレフォーマット・ブロックは、 フェンス付きコードブロックにした。
  • 本文中のメールアドレスは元 Wiki のまま残した。

Tags: 移行, Cloud Foundry, IBM Cloud, Bluemix, Node.js, Cloudant, CouchDB, manifest.yml, デプロイ

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally