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 について詳しくは、こちらを参照してください。

Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.
Last modified on July 03, 2020