Nodejs OpenShift Do

improve this page | report issue

Mobile Foundation Nodejs odo コンポーネント

OpenShift Do (odo) は、マイクロサービスを素早く構築してデプロイするために Red Hat が作成した開発者向けの CLI ツールです。odo について詳しくは、こちらを参照してください。

Mobile Foundation Node.js odo コンポーネントは、開発者がモバイル・アプリのバックエンドまたは Backend-for-Frontend のマイクロサービスを構築するための Node.js 環境を提供します。このコンポーネントは、Mobile Foundation サービス (Push Notifications、Mobile Foundation Analytics および Live Update など) を取り込むための、使いやすい API をマイクロサービス開発者に提供します。例として、モバイル・クライアントからの注文に関する顧客の購入価格に基づいて、Nodejs バックエンドからプッシュ通知をトリガーすることができます。

odo コンポーネントを使用するための前提条件

  • oc CLI のダウンロードとインストール
  • odo CLI の[インストール]((https://odo.dev/docs/installing-odo/)。
  • Docker の[インストール]((https://docs.docker.com/get-started/)。

Mobile Foundation Nodejs odo docker イメージを使用した odo プロジェクトの作成

  1. 次のコマンドを使用してコンポーネントの Docker イメージをインポートします。

     oc import-image mobile --from=docker.io/ibmcom/nodejs-mobile-foundation:odo-latest --confirm
    

    ここで「mobile」の代わりに、選択した名前を使用できます。

  2. ファイル・システムに新規フォルダーを作成し、odo CLI を使用してそれを初期設定します。以下に例を示します。

     mkdir mf-mobile-backend
     cd mf-mobile-backend
     odo create mobile --git https://github.com/{userName}/{repositoryName}
    

    これにより、odo 構成ファイルで Node.js Mobile Foundation プロジェクトが初期設定されます。この GitHub URL には、Mobile Foundation サービスを使用するノード・アプリを指定する必要があります。このようなサンプルについては、こちらを参照してください。

  3. プロジェクトが初期設定されたら、作成したプロジェクト・フォルダーにナビゲートし、以下のように .odo/config.yaml ファイルの末尾に必須の環境変数を追加します。

     Envs:
       - Name: MF_ENVVARS
         Value: '{"push":{"mf_url":"<MFSERVER>","mf_app_id":"<APPID>","username":"<UNAME>","password":"<PWD>"},"liveupdate":{"mf_url":"<MFSERVER>","mf_app_id":"<APPID>","username":"<UNAME>","password":"<PWD>"},"analytics":{"mf_url":"<MFSERVER>","mf_app_name":"<APPNAME>","username":"<UNAME>","password":"<PWD>"},"passport_filter":{"mf_url":"<MFSERVER>","username":"<UNAME>","password":"<PWD>"}}'
    

    環境変数の各パラメーターについては、以下に説明します。

    • MFSERVER

      完全修飾 Mobile Foundation サービス・エンドポイント。例: https://mf-xxxxx-mfpserver.mf.cluster.svc.local:9080 (ポートを含む完全なサーバー・アドレスが必要なことにご注意ください)。Mobile Foundation サービスが外部クラスターで実行されている場合、完全修飾 Ingress ルートを指定します。

    • APPID

      Android アプリケーションの場合はアプリのパッケージ名、iOS アプリケーションの場合はバンドル ID です。例: com.acme.myapp

    • UNAME

      機密クライアントのユーザー名。例: bffclient

    • PASSWORD

      機密クライアントのパスワード。例: bffclientpassword

    • APPNAME

      アプリケーションの表示名。例: Acme’s Awesome App

    あるいは、すべてのサービスが単一の Mobile Foundation サーバーと単一のアプリケーションを指している場合は、次のように個別の環境変数を指定することができます。

     -Name:mf_url
     Value:<MFSERVER>
     -Name:mf_app_id
     Value:<APPID>
     -Name:push_mf_username
     Value:<PUSH_UNAME>
     -Name:push_mf_password
     Value:<PUSH_PWD>
     -Name:liveupdate_mf_username
     Value:<LIVEUPDATE_UNAME>
     -Name:liveupdate_mf_password
     Value:<LIVEUPDATE_PWD>
     -Name:analytics_mf_username
     Value:<ANALYICS_UNAME>
     -Name:analytics_mf_password
     Value:<ANALYTICS_PWD>
     -Name:pf_mf_username
     Value:<PASSPORT_FILTER_UNAME>
     -Name:pf_mf_password
     Value:<PASSPORT_FILTER_PWD>"
    

    上記の場合、環境変数はご使用のポッドの Ingress ルートでなければなりません。代わりに内部 URL を使用する場合は、各サービス (Push、Liveupdate および Analytic) の内部 Mobile Foundation URL を指定する追加の環境変数が、Mobile Foundation サーバーのランタイム URL を指定する上記の mf_url に加えて必要です。

     -Name:mf_push_url
     Value:<MFPUSHSERVER>
     -Name:mf_liveupdate_url
     Value:<MFLIVEUPDATESERVER>
     -Name:mf_analytics_rl
     Value:<MFANALYTICSSERVER>
    

    : 内部 Mobile Foundation サービス URL を使用する場合、個別の変数のみを指定する必要があります。渡される環境変数として、単一環境変数の MF_ENVVARS 形式を使用することはできません。

  4. 次のコマンドを使用して、初期設定されたアプリのパブリック・ルートを作成します。

     odo url create --port 8080
    
  5. 最後に、アプリは次のコマンドを使用するとデプロイできます。

    odo push
    

    これでアプリはデプロイされ、上記で作成したルートを使用してアクセスできるようになりました。

    : アプリのルートは odo url list コマンドを使用すると表示できます。

この odo コンポーネントに使用される Docker イメージは、以下の API を直接提供します。

提供される Push API

  • sendNotification
  • sendNotificationByTags
  • sendNotificationByPlatform
  • sendNotificationByDeviceId
  • sendNotificationByUserId

提供される Live Update API

  • isFeatureEnabled
  • toggleFeature
  • enableFeature
  • disableFeature
  • getProperty
  • setProperty

提供される Analytics API

  • sendCustomLogs
  • sendNetworkTransactions

さらに、passport ストラテジーを活用すると、エンドの開発者がユーザー・コンテキスト (ユーザー名、デバイスの詳細などのユーザー固有のデータ) を利用できるようなります。passport ストラテジーについて詳しくは、こちらを参照してください。

これは、作成されたエンドポイントにフィルター mf.securityUtils.mfpAuth(scope) を追加することで使用できます。ここでのパラメーター scope により、取り出されるユーザー・コンテキスト・データが決定されます。この例は、サンプル・アプリ内に提供されます。

passport フィルターは、環境変数を指定する場合に、キー passport_filter を使用した環境変数を介して入力可能になります。

: 使用可能な API について詳しくは、こちらを参照してください。

Last modified on July 03, 2020