第1章 プロジェクト、アプリ、およびサービス
1.1. プロジェクト
1.1.1. 概要
プロジェクトセクションでは、プロジェクトの作成と管理ができます。プロジェクトを作成すると、複数のアプリをこれに関連付けることができます。既存のアプリがある場合は、「インポート」機能を使ってこれをプラットフォームにインポートすることができます。
要件
ユーザーは、以下のパーミッションを持つ 1 つ以上のチームメンバーである必要があります。
- ドメイン — プロジェクト (表示および編集)
1.1.2. 新規プロジェクト
プロジェクトは、異なるプラットフォーム用のアプリとそれらが通信するクラウドアプリで構成されます。
新規プロジェクトは通常、クライアントアプリ 1 つとその通信先となるクラウドアプリで構成されますが、プロジェクトには複数のアプリを追加することができます。
1.1.2.1. クライアントのプラットフォーム
プロジェクトにはすべて、出発点としてテンプレートが用意されています。以下の例ではテンプレートの構成を説明しています。
- 単一アプリで、これが Node.js を使用する Cordova とクラウドアプリを使用する。
1.1.3. インポート
アプリ作成に加えて、既存のアプリをプラットフォームにインポートすることもできます。アプリをインポートする際には、新規プロジェクトを作成してそこにアプリをインポートするか、既存のプロジェクトにアプリをインポートすることを選択できます。プラットフォームにインポート可能なアプリのタイプは数多くあり、Native iOS、Native Android、PhoneGap、Basic Web App、および Advanced Web App などがあります。また、アプリをプラットフォームにインポートするには、以下のような方法があります。
- 既存の Git レポジトリーをクローンする
- Zip をアップロードする
- 空のレポジトリーでアプリを作成し、そこにコードをプッシュする
- ソースをインポートせずに RHMAP SDK を統合する
アプリをプラットフォームにインポートする方法については、ユーザーにステップごとの指示が示されます。この方法は、選択するインポートのメソッドによって多少異なります。例えば、「既存の Git レポジトリーをクローンする」オプションでのみ、Git レポジトリーのクローン方法に関する指示があります。
1.1.4. アプリ、クラウドアプリ & サービス
アプリ、クラウドアプリ & サービスのセクションでは、プロジェクト内のクライアントアプリとクラウドアプリの管理ができます。ここでは、新規クライアントアプリとクラウドアプリをプロジェクトに追加することができます。クラウドアプリは、クライアントアプリとクラウドバックエンドのストレージおよびサービスをつなぐゲートウェイの役割を果たします。
1.1.4.1. アプリ
プロジェクトは複数のアプリで構成することができます。一般的には、クライアントアプリ 1 つとその通信先となるクラウドアプリ 1 つで構成されます。プロジェクトには複数のクライアントアプリとクラウドアプリを追加することが可能です。クライアントアプリは、数多くの Native や Hybrid テンプレートをベースにして作成してから追加することができます。また、上記にあるように既存のアプリをインポートすることもできます。
1.1.4.2. クラウドコードアプリ
クラウドアプリを使用すると、開発者はアプリをバックエンドのクラウドストレージにリンクすることができます。これにより幅広いユーザー管理が可能になり、ユーザーはオンラインデータストレージや web ベースの E メールサービス、プッシュ通知などの MBaaS サービスを管理できるようになります。例えば、クラウド内で作成した機能はすべて簡単な API コールでアクセスできるので、パフォーマンス目的でクラウドキャッシュを活用してデバイス自体の作業を減らすことができます。
1.1.4.3. サービス
外部の MBaaS サービスをプロジェクトに追加して機能を拡張することができます。サービスをプロジェクトに追加する方法は、クライアントアプリや MBaaS クラウドインスタンスの場合と同様です。クラウドインスタンスはこれらのサービスを呼び出し、PayPal などの機能を活用することができます。MBaaS サービスのプロビジョニングができるのは、サービス管理者 のロールがあるユーザーのみです。サービス管理者は、サービス作成時にこれをグローバルに全プロジェクトで利用可能とするオプションがあります。グローバルで利用可能とした場合は、開発者 のロールを持つユーザーは、これを選択してプロジェクトに含めることができます。
1.1.5. アプリをプロジェクトに追加する
プロジェクトにはいくつでもアプリを追加することができ、以下の 3 つの方法があります。
1.1.5.1. 新規アプリの作成
新規アプリの作成では、アプリのベースとなるテンプレートを選択できます。既存のアプリがある場合は、「既存のアプリをインポート」のオプションを選択できます。
1.1.5.2. 既存アプリのインポート
既存のアプリがある場合は、このオプションを選択してご使用のプラットフォームと統合することができます。適切なアプリのタイプを選択して、前提条件が満たされていることを確認します。App Studio がこのプロセスをサポートします。
1.1.5.3. 既存アプリのクローン
ここに (または別のプロジェクトに) クローンをしたいアプリがある場合は、このオプションを選択します。クローンしたアプリには新しい名前を付けることが求められます。ソースとなるアプリによっては、クローンに関する新たな選択肢が表示される場合もあります。
アプリによってはクローン中にタイプが変更されるものもあれば、既存のアプリと Git リポジトリーが共有できるものもあります。アプリには専用の Git リポジトリーがあることが推奨されますが、アプリ間で Git リポジトリーを共有することが望ましいインスタンスもあります (例: Basic Web App と Cordova App が非常によく似たソースを共有する場合)。このようなケースでは、アプリはリポジトリーを共有し、共有レポジトリー内にフォルダーを作成し、それをビルド、プレビュー、およびデプロイに使用できます。
1.1.6. 接続
接続セクションでは、選択したプロジェクトで構築されたバイナリーの概要と実行中のクラウドアプリの概要が提供されます。プロジェクトにはクライアントアプリとクラウドアプリの両方が含まれており、接続はクラウドアプリアプリがポイントするクラウドインスタンスを決定します。接続は、環境内の特定のクラウドアプリをポイントします。ダッシュボードでは、全環境内に存在する接続の概要が示されます。ユーザーはダッシュボードで、各クライアントアプリがどのようにクラウドインスタンスと接続しているかを見ることができます。クライアントアプリとクラウドアプリとの接続は、何回でも再設定したり無効にすることができます。
1.1.6.1. SDK Config
クライアントアプリとクラウドインスタンス間で接続が作成されると、SDK 設定ファイルが生成されます。SDK Config オプションを選択すると、この設定ファイルが表示されます。このファイルのコンテンツを自分のクライアントアプリの fhconfig.json ファイルにコピーすると、クライアントアプリにこの特定の接続を使用するように指示できます。
1.1.6.2. 接続の再設定
接続は再設定して、クライアントアプリが異なるクラウドインスタンスと通信できるようにできます。クラウド接続は、アプリの起動時にリフレッシュされます。
1.1.6.3. 接続を無効にする
これにより、クライアントアプリとクラウドアプリ間の接続が削除されます。プロジェクトに新規アプリが追加され、更新が必要な場合にこれを行う必要があります。接続を無効にすると、クライアントアプリは機能しなくなります。クライアントに接続が無効化されるという情報を送信することができます。
1.1.7. Git クイックスタート
Git クイックスタートページでは、Git を使って自分のローカルシステム上のアプリのクライアントおよびクラウドコードにアクセスする方法を示しています。リポジトリーをクローンすると、既存リポジトリーと全く同じコピーが作成されます。'git clone' を実行すると、プロジェクト内の全ファイルの全バージョンがプルされます。ただし、リポジトリーをクローンする前に自分の SSH パブリックキーをアップロードする必要があります。パブリックキーがアップロードされたら、リポジトリーは自由にクローンすることができます。
Git リポジトリーのクローンについての詳細情報は、Git ドキュメンテーションの Getting started with Git を参照してください。
便利な Git コマンド一覧は、Git Reference を参照してください。
1.1.8. リソース
リソースセクションでは、全環境にまたがるプロジェクトのアプリについて、CPU やメモリー使用量 & ディスク使用率などのリソース使用率が表示されます。特定の環境にアプリがデプロイされていない場合は、この環境でのリソース使用率は表示されません。この画面では、デプロイ済みアプリのステータスを管理することもできます。例えば、特定のアプリのメモリー使用率が高い場合は、これを停止することができます。リソースのグラフはライブのデータを基にしているので、データを定期的に収集する間、傾向を表示するまでに多少時間がかかる場合もあります。
1.1.9. ライフサイクル管理
プロジェクトは通常、単一のアプリ (例: Cordova App) とクラウドアプリ (例: Node.js Application) で開始されます。プロジェクトは進捗するにつれて様々なステージを経過します。これがプロジェクトのライフサイクルになります。プロジェクトはそれぞれ異なるペースで進行し、その構成も時間の経過とともに拡大し、異なってきます。ライフサイクル管理ダッシュボードは、開発者とプロジェクト管理者の両方にとってこのプロセスを容易なものにします。
ダッシュボードでは、その時点におけるプロジェクトのスナップショットを提供します。アプリはすべて、ダッシュボード上の行で示されます。各環境は、ダッシュボードのコラムで示されます。このグリッドにより、プロジェクトの各部分がどのステージにあるか、個別のチームメンバーに質問することなく概要がすぐに分かります。
アプリがビルドされていれば、クラウドアプリがあるターゲットとなっている環境を示すコラムに直近のビルドが表示されます。アプリのバイナリーはここからダウンロードが可能で、または異なる git ブランチやタグから再ビルドすることもできます。「プロモート」オプションは同一コードの再ビルドのショートカットになりますが、別のクラウドアプリ環境に接続します。
クラウドアプリがデプロイ済みの場合は、直近のデプロイの詳細とステータスが対応する環境コラムに表示されます。クラウドアプリのコードは、利用可能な環境であればどれでもデプロイ (または再デプロイ) することが可能です。クラウドアプリの「プロモート」オプションは、既にデプロイ済みの git ブランチまたはタグを別の環境にデプロイするためのショートカットです。
プラットフォーム外で実行されたアプリのバイナリービルドは、ライフサイクル管理ダッシュボードでは反映されません。
1.1.10. フォーム
フォーム設定ページでは、ユーザーはプロジェクト内でフォームとテーマを関連付け、クライアント側のアプリフォームを設定することができます。ユーザーは、カメラ設定や提出、管理ユーザー、クライアントログイン、およびクラウドログインを管理することができます。
プロジェクトに関連付けられている提出もこのページで見ることができます。
ユーザーに十分な権限がない場合は、提出を見ることができません。ユーザーのロールに関する詳細情報は、管理に関するドキュメント を参照してください。
1.1.11. レポート
レポートデータは、1 日に 1 度生成されます。
レポートのセクションでは、特定のプロジェクト内のクライアントとクラウドアプリの両方に関するアナリティクス情報が高度なグラフで提示されます。実行されたデバイスインストール数や起動したアプリ数など、幅広い情報にユーザーはアクセスできます。これらの分野はどれでもさらに調査して、日付やプラットフォーム、場所に基づくアナリティクス情報にアクセスすることができます。
Studio では、これらの情報は多くの異なるグラフで表示されます。日付に特定したデータは折れ線グラフで示されます。これによりユーザーは、特定期間のアプリのアクティビティーの内訳を知ることができます。範囲内の特定日におけるアクティビティーの量が分かります。例えば、範囲内の特定日に実行されたクラウドリクエストの数が確認できます。
ドーナツグラフでは、プラットフォームごとのアクティビティーの内訳が表示されます。例えば、特定の期間内でプラットフォームごとに実行されたインストール数などです。場所特定のデータは、地図で示されます。これにより、ユーザーは地理的位置に基づいたアプリのアクティビティー内訳が分かります。各グラフはには対応する凡例があります。カーソルをこれらの図表上に持って行くと凡例で対応する値の詳細情報が示されます。
データ収集を行う期間は変更することができます。事前定義の期間では、「過去 7 日間」「過去 30 日間」「前月」の情報が示されますが、これらのいずれも当てはまらない場合は、範囲の開始日と終了日を手動で選択することもできます。つまりユーザーはデータのカテゴリーを選択し、日付の範囲を入力するだけでアプリのデータを入手することができます。
1.1.12. 設定
プロジェクト設定ページから、プロジェクトの名前を変更したり削除することができます。
1.1.12.1. プロジェクトの削除
プロジェクトは一旦削除したら、元に戻すことはできません。Git リポジトリー、クライアントアプリ、およびクラウドアプリのすべてが削除されます。削除されるプロジェクトに関連付けられているアプリは機能しなくなります。
1.1.12.2. プロジェクトの名前変更
ここではプロジェクトの名前が変更できます。
1.2. アプリ
1.2.1. 概要
Red Hat Mobile Application Platform ホスト型 (RHMAP) を使うと、hybrid、HTML5、または Native Apps など幅広いアプリをビルドできます。クライアントアプリとクラウドアプリは両方ともプロジェクトに追加できます。アプリは、位置情報やバックエンドストレージなどの機能へのアクセスを提供する数多くの JavaScript API にアクセスがあります。フォームベースのアプリは、インターフェースの簡単なドラッグアンドドロップで作成できます。
要件
ユーザーは、以下のパーミッションを持つ 1 つ以上のチームメンバーである必要があります。
- ドメイン — プロジェクト (表示)
- クライアントアプリ (表示 & 編集) — アナリティクス (表示)
関連リソース
1.2.2. 詳細
アプリ、クラウドアプリ & サービス 画面を選択すると、デフォルトで詳細ページが表示されます。ここでは、現在選択しているアプリに関する以下の情報の概要が示されます。
- アプリのタイプ: 使用するアプリのタイプです。
- アプリの名前: 使用するアプリの名前です。クライアントアプリの場合は、これがデバイスで表示されるアプリの名前になります。
- アプリの説明: 使用するアプリの説明です。
- アプリ ID: アプリの一意の識別子です。これのアプリを FHC で用いてアクションを実行するには、これを使用します。
- アプリの説明: 使用するアプリの説明です。
- アプリ API キー: これをアプリ ID と合わせて使用することで、アプリが選択したクラウドアプリと通信できるようになります。
ソースパス (Cordova のみ): アプリの全ソースファイルを格納しているフォルダーです。
これは通常、
wwwになります。アプリのビルドまたはデプロイ時に別のフォルダーを使用したい場合は、ここで変更します。前にあるまたは後ろに続くスラッシュはパスから除かれます。例えば、ソースフォルダーが/mysource/folder/の場合、入力するパスはmysource/folderとします。アプリにおけるビルドプロセス (Grunt 縮小など) は、最終的なアセットをこのフォルダーに格納します。- Git SSH URL: リポジトリーをクローンする URL です。このリポジトリーを他のアプリと共有する場合、それらのアプリはここに記載されます。
- Git ブランチ: Git リポジトリーから checkout するブランチです。
いずれのアプリの詳細もこのページで更新できます。Studio では、この画面にアプリのプレビューもあります。ユーザーは、アプリを電話、タブレット、またはデスクトップでプレビューすることが選択できます。アプリプレビューウィンドウでデバイスを選択したら、ドロップダウンリストから特定のデバイスを選択してアプリのプレビューを実行することができます。
アプリは、アプリ、クラウドアプリ & サービス ページから削除することもできます。
アプリを削除すると関連する Git リポジトリーも削除され、クラウドアプリの場合はデプロイ解除されます。
1.2.3. エディター
ビルトインのエディターを使うことで、アプリ内のコードが編集できます。構文ハイライト表示の機能が組み込まれているため、構文要素を区別しやすくなっています。ユーザーはファイルやフォルダーを新規作成し、保存された変更は自動的に対応する Git リポジトリーにプッシュバックされます。
変更がなされたらプレビューが自動的にリフレッシュされるため、変更の反映がすぐに確認できます。'git pull' を実行すると、Git リポジトリーから変更がプルされます。以下の Git 機能は、Studio のエディターセクションで利用できます。
-
branch- 詳細は Git Branching - Branches in a Nutshell かgit-branchAPI を参照してください。 -
tag- 詳細は Git Basics - Tagging かgit-tagAPI を参照してください。 -
commit- 詳細は Git Basics - Recording Changes to the Repository の Committing Your Changes セクションかgit-commitAPI を参照してください。 -
clone- 詳細は Git Basics - Getting a Git Repository の Cloning an Existing Repository セクションかgit-cloneAPI を参照してください。 -
pull- 詳細はgit-pullAPI を参照してください。
エディターのアプリプレビューでは、多くの選択可能なデバイスで現行アプリがどのように表示されるかを確認できます。
1.2.4. Docs
アプリに README.md のマークダウンファイルが含まれる場合は、変換されてここに表示されます。
1.2.5. アナリィティクス
アナリティクスデータは、1 日に 1 度生成されます。
アナリィティクスセクションでは、アプリ使用量統計値のグラフィック表示にアクセスできます。データは、インストールやクラウドリクエスト、起動、アクティブなデバイスなど多くのカテゴリーで調べることができます。また、日付やプラットフォーム、場所でカテゴリー分けすることもできます。グラフのコンテンツは、「場所ごとのインストール」を除いてプラットフォーム別に表示されます。各プラットフォームは、凡例でそれぞれ別のキーで示されます。グラフ内のコンテンツは、凡例で各プラットフォームをクリックするとオンとオフが切り替えられます。
日付の範囲もカスタマイズが可能です。事前定義の期間は、「過去 7 日間」「過去 30 日間」「前月」ですが、独自の開始日と終了日を適用することもできます。
アナリティクスページは「レポート」タブとは異なります。レポートタブではプロジェクトごとのアナリティクス情報が表示されます。アナリティクスページでは、アプリごとのデータが示されます。
アプリの初回起動時にクラウドにコールバックが行われ、この時点でデバイスインストールが記録されます。デバイスインストールはユーザーインストールとは異なります。ユーザーインストールは、以下の方法で App Stores が追跡するものです。
- アプリストアは、ユーザーがアプリをインストールしたデバイス数にかかわらず、インストールをユーザーアカウントのダウンロード実行として数えます。
- アプリストアは通常 PST タイムゾーンで日次結果をレポートしますが、RHMAPレポートは UTC に準拠しています。
- RHMAP がインストールを追跡するには、アプリが有効なインターネット接続で少なくとも 1 回は起動される必要があります。ここでインストールがカウントされるのは、ダウンロード時ではなく、アプリの初回起動時です。
1.2.6. プッシュ
プッシュセクションでは、アプリのプッシュ通知の設定ができます。プッシュ通知についての詳細は、プッシュ通知 の章を参照してください。
1.2.7. ビルド
ビルド機能を使うと、選択したプラットフォーム向けにバイナリーのセットを構築できます。ビルド操作を実行する際には、バイナリーの接続先となるクラウドアプリを選択する必要があります。これは、プロジェクトと関連付けられているクラウドアプリであれば、どれでも構いません。ビルドは以下のプラットフォーム向けに実行できます。
- Android
- iPhone
- iPad
- iOS Universal
また、以下のいずれかのビルドタイプを選択する必要があります。
- 開発ビルド
- 配信ビルド
- リリースビルド
- デバッグビルド
選択したプラットフォームとビルドタイプによっては、バイナリーの署名に認証情報バンドルが必要になる場合があります。認証情報については、下記の証明書セクションを参照してください。
ビルドが成功したら、そのアーティファクトがアーティファクト履歴に追加されます。アーティファクト履歴では、バイナリーが構築されたプラットフォームやビルドタイプ、ビルドに使用された認証情報バンドルなどを含むビルドの概要情報が提供されます。アーティファクト履歴からアーティファクトを選択すると、そのバイナリーを再度ダウンロードすることができます。
ビルドを実行するには、まず認証情報ページから関連する認証情報をアップロードする必要があります。
1.2.7.1. アプリバイナリーをサードパーティー MAM および MDM プロバイダーに公開する
RHMAP では、サードパーティー MAM および MDM プロバイダーへのアプリバイナリーのアップロードに対応しています。個別プロバイダーのサポートは、管理 > モバイルアプリの管理 > サードパーティー MAM/MDM セクションで有効、無効にできます。
少なくとも 1 つの MAM または MDM プロバイダーが有効になっていれば、クラウドアプリの ビルド 画面の MDM 統合 セクションで個別プロバイダーのオプションが表示されます。
1.2.7.1.1. Apperian
生成したバイナリーがビルド後に Apperian App Catalog にアップロードされるようにするには、ビルド前に以下のステップを実行します。
- RHMAP インスタンスのドメイン名が Apperian の EASE Portal にあるホワイトリストに追加されていることを確認します。詳細は、公式 Apperian ドキュメントの Enable a Domain Whitelist for Custom Admin Sites を参照してください。
アプリバイナリーが Apperian App Catalog にある要件を満たしていることを確認します。要件の完全一覧については、公式 Apperian ドキュメントの Add an Application を参照してください。
注記RHMAP クライアントアプリのテンプレートには、要件のすべてを満たしていないものもあります。例えば、アプリのアイコンファイルの設定が必要な場合などがあります。
特定のビルドで Apperian への公開を有効にする。
- Push the generated app binary to the Apperian App Catalog を選択します。
- Apperian ユーザー名とパスワードを入力します。
- Apperian Login をクリックします。認証が成功すると、OAuth Token フィールドに Apperian API との通信に使用されるトークンが表示されます。
これ以降のビルドにおけるアプリバイナリーは、Apperian App Catalog にアップロードされます。
1.2.8. エクスポート
エクスポートセクションでは、アプリをいくつもの選択したプラットフォームでエクスポートできます。アプリをエクスポートする際には、バイナリーの接続先となるクラウドアプリ、プラットフォーム、およびプラットフォームのバージョンを指定する必要があります。アプリは zip ファイルとしてエクスポートされます。エクスポートが完了すると、エクスポートはアーティファクト履歴に追加され、ここからいつでも再ダウンロードできるようになります。
1.2.9. 認証情報
認証情報セクションでは、認証情報バンドルが管理できます。新規の認証情報バンドルは追加またはインポートが可能です。また、既存の認証情報バンドルを一覧表示することもできます。
アプリをビルドするには、関連する認証情報バンドルへのアクセスを読み込んでいる必要があります。このアクセスを読み込んでいない場合は、ビルドは失敗します。
1.2.9.1. 認証情報バンドル
特定のタイプのビルド実行が可能となるには、アプリが認証情報バンドルで署名されている必要があります。認証情報バンドルは、開発ビルド、配信ビルド、デバッグビルドなど特定のタイプのビルドに必要となる証明書やプロビジョニングプロファイル、およびプライベートキーなどのリソースの組み合わせです。プラットフォームおよびビルドタイプによって、バンドルは異なるリソースの組み合わせになります。認証情報バンドルを構成する個別リソースについての詳細情報は、認証情報バンドルのコンポーネント を参照してください。
iOS 向けのアプリを開発するには、 Apple Developer Account が必要になります。
各プラットフォームのビルドタイプで必要となる認証情報は、以下の通りです。
プライベートキーとそのパスワードが安全な場所に保存されていることを確認してください。これらは、RHMAP で認証情報バンドルの設定時に必要となります。証明書の発行時には、正しいプライベートキーが使用されていることを確認してください。たとえば、iOS 認証情報バンドルで作業する際には、開発ビルドのプライベートキーを使用して開発ビルドの開発者証明書を生成するようにします。
iOS 認証情報バンドル
開発ビルド
- 開発者証明書
- プライベートキー
- 開発プロビジョニングプロファイル
配信ビルド
- 配信証明書
- プライベートキー
- 配信プロビジョニングプロファイル
リリースビルド
- 配信証明書
- プライベートキー
- 配信プロビジョニングプロファイル
Android 認証情報バンドル
デバッグビルド
- なし
リリースビルド
- 証明書
- プライベートキー
1.2.9.1.1. 新規バンドルの作成
ここでは新規の認証情報バンドルを作成し、後でビルド中にバイナリーの署名にこれを使用することができます。選択したプラットフォームによっては、バンドルに異なる認証情報を追加する必要がある場合もあります。例えば、Android 認証情報バンドルの作成にはプライベートキーと証明書が必要になりますが、iOS 認証情報バンドル作成時には、プライベートキーと証明書、さらにプロビジョニングプロファイルが必要になります。
1.2.9.1.2. 既存の開発リソースの移行
これにより古い App Studio から既存の認証情報が移行され、認証情報バンドル一覧に追加されます。
新規バンドルが作成されるか、移行でインポートされると、認証情報バンドル一覧に表示されます。
1.2.10. 統合
統合セクションでは、既存のクライアントアプリを RHMAP プロジェクトにインポートすることができます。アプリをインポートするには、レポジトリーをクローンして、アプリを RHMAP SDK と統合する必要があります。
Git レポジトリーのクローン
リポジトリーをクローンすると、既存リポジトリーと全く同じコピーが作成されます。'git clone' を実行すると、プロジェクト内の全ファイルの全バージョンがプルされます。ただし、リポジトリーをクローンする前に自分の SSH パブリックキーをアップロードする必要があります。パブリックキーがアップロードされたら、リポジトリーは自由にクローンすることができます。
Git リポジトリーのクローンについての詳細情報は、Git ドキュメンテーションの Getting started with Git を参照してください。
便利な Git コマンド一覧は、Git Reference を参照してください。
SDK のダウンロード
アプリが機能するには、アプリを RHMAP SDK と統合する必要があります。最新の RHMAP JavaScript SDK をダウンロードするためのリンクが画面に表示されます。
JavaScript ファイルをプロジェクトにコピーする
RHMAP SDK をダウンロードしたら、作成したプロジェクトにこれを移動して参照することができます。
初期化スニペットのコピー
アプリの ID、アプリキー、ホストドメイン、関連付けるプロジェクトの ID を格納する
fhconfig.jsonファイルを作成します。Git Commit および Push
SDK とアプリの統合が成功したら、変更のコミットとプッシュを実行できます。これでアプリがプロジェクトと正常に関連付けられました。
1.3. クラウドアプリ
1.3.1. 概要
クラウドアプリ はサーバー側のアプリケーションで、クラウドの実行環境である MBaaS で稼働します。クライアントアプリはクラウドアプリと通信し、データストレージや認証、キャッシングなどのバックエンド機能にアクセスします。
要件
ユーザーは、以下のパーミッションを持つ 1 つ以上のチームメンバーである必要があります。
- ドメイン — プロジェクト (表示)
- クラウドアプリ (表示 & 編集) — アナリティクス (表示)
1.3.2. 詳細
詳細のセクションでは、クラウドアプリの概要情報にアクセスできます。このセクションでは、このデータを編集、管理することができます。
アプリは、Running または Stopped のいずれかのステータスになり、ステータスは Start App、Stop App、および Restart App ボタンで制御されます。アプリが Running 状態の場合は、そのアプリのデバイス上のビルドは予想どおりに機能します。ただし、Stopped ステータスの場合は、アプリがクラウドの機能に依存していれば、デバイス上のユーザーはそのアプリを使用することができません。
また、アプリ ID、アプリ API キー、名前などの一般的な情報も記載されています。これらの情報は、このセクションで編集および更新ができます。
- アプリ ID: アプリの一意の識別子です。
- 名前: クラウドインスタンスの名前です。
- 説明: クラウドインスタンスの簡単な説明です。
- アプリ API キー: これをアプリ ID と合わせて使用することで、アプリがクラウドと通信できるようになります。
- Git URL: リポジトリーをクローンする URL です。
- Git ブランチ: Git リポジトリーから checkout するブランチです。
1.3.3. エディター
ビルトインのエディターを使うことで、クラウドアプリ内のコードが編集できます。構文ハイライト表示の機能が組み込まれているため、構文要素を区別しやすくなっています。ユーザーはファイルやフォルダーを新規作成し、保存された変更は自動的に対応する Git リポジトリーにプッシュバックされます。
変更がなされたらプレビューが自動的にリフレッシュされるため、変更の反映がすぐに確認できます。git pull を実行すると、Git リポジトリーから変更がプルされます。
エディターのアプリプレビューでは、多くの選択可能なデバイスで現行アプリがどのように表示されるかを確認できます。
1.3.4. 環境変数
Studio を使用する環境変数は定義が可能で、これらの変数はクラウドコードでアクセスできます。Studio では、各クラウド環境における現在定義済みの環境変数とデプロイ済みの環境変数の一覧を表示します。また、システムが定義する環境変数一覧も見ることができます。
1.3.4.1. 環境変数の一覧
環境変数のオプションは、左側のメニューにあります。最初の表示では、現在のクラウドインスタンスの環境変数全一覧が表示されます。
1.3.4.1.1. アプリの環境変数
このセクションでは、ユーザーが定義した変数が一覧表示されます。これらの変数はクラウドにプッシュされていないことがあるので、値は現在アクティブなものとは異なる場合があります。定義済みの値とデプロイ済みの値で不整合がある場合は、赤字で表示されます。値のフィールドをクリックすると、これを更新することができます。
1.3.4.1.2. デプロイ済みユーザーの環境変数
このセクションでは、ユーザーが作成したデプロイ済みの環境変数が一覧表示されます。上記と同様に、不整合は赤字で表示されます。ただし、これらの値は直接は更新できません。
1.3.4.1.3. デプロイ済みのシステム環境変数
このセクションでは、プラットフォームが作成したデプロイ済みの環境変数が一覧表示されます。これらの値はリファレンス目的のみとなり、これら変数の値は変更しないでください。
1.3.4.2. 環境変数の作成
新規の環境変数は、変数を追加 ボタンをクリックすると作成できます。環境変数の名前は以下のルールにしたがってください。
-
FH_またはMONIT_で始めない。 以下のいずれも使用しない。
-
PATH -
HOME -
PWD -
USER -
NODE_PATH -
LD_LIBRARY_PATH
-
1.3.4.3. 環境変数の設定解除/削除
既存の環境変数一覧で変数にチェックを入れると、変数を設定解除または削除するオプションがあります。
- 設定解除 選択された環境から変数が削除されます。
- 削除 すべての環境から変数が削除されます。
同時に複数の変数を設定解除または削除することが可能です。
1.3.4.4. 環境変数をプッシュ
変数の値の更新が完了したら、「環境変数をプッシュ」のボタンをクリックして変数をクラウドにプッシュする必要があります。これを実行すると、アプリの再起動も実行されます。
1.3.4.5. 環境変数のコードでの参照
環境変数は、process.env.variable 名を使用することで直接クラウドコード内で参照することができます。例を示します。
// PIN_ENABLED is the environmental variable created in the Studio. var pin_enabled = process.env.PIN_ENABLED || true // defaults to true if no value defined
クライアント側から変数の値を取得したい場合は、変数の値を返すクラウド側の関数をエクスポートし、クライアント側からこの関数を呼び出します。
// On the cloud side using node.js
exports.getEnvVariable = function(params, cb){
var pin_enabled = process.env.PIN_ENABLED || true
return cb(null, {
enabled : pin_enabled
});
};
// On the client side
$fh.act({
act : 'getEnvVariable',
req : {}
}, function(res){
// run this in the event of success.
}, function(err){
// run this in the event of failure.
});1.3.5. データブラウザー
App Studio データブラウザーセクションでは、開発者は以下のことができます。
- アプリに関連するデータを視覚的かつ対話的に表示する。
- コレクションを表示、作成、削除、インポート、エクスポートする。
- コレクション内のデータを修正する。
詳細情報は データブラウザーガイド を参照してください。
1.3.6. デプロイ
デプロイセクションでは、開発者は以下のことができます。
- 現行アプリのクラウドコードをデプロイし、デプロイのログを表示する。
- クラウドコードをデプロイする環境 (複数利用可の場合) を選択する。
- デプロイする GIT ブランチまたはタグを選択する (利用可能な場合)。
- クラウドコードを実行するランタイム & バージョンを選択する (利用可能な場合)。
- クリーンデプロイを実行する。ここでは、(依存関係を含む) デプロイディレクトリー全体が削除され、最初から再デプロイが実行されます。
- 選択したブランチに、今後の Git プッシュで自動的にアプリがデプロイされるかどうかを選択する。
Node.js アプリケーションのデプロイプロセスは通常、以下のようになります。
- 指定されたブランチまたはタグリファレンスでクラウドコードを取得する。
- (内部およびカスタムの) 環境変数の値すべて、および選択した環境のその他の設定 (例: ランタイムなど) を収集する。
- クラウドコード、環境変数の値、および他の設定を選択した環境にプッシュする。
- クラウドコードを関連するデプロイフォルダーに展開/コピーする。
- 環境変数がアプリの起動スクリプトで設定される。
- 起動スクリプトで正常に設定されているランタイムなど、送信される設定内容が実行される。
- 依存関係が解決され、インストールされる (package.json から)。
- 起動スクリプトを使用してアプリが起動する。
上記のステップは、選択したオプションやアプリのタイプ、特定ファイルの有無およびそのコンテンツによって異なります。
さらに開発者は、クラウドコードを OpenShift Online にデプロイするようプラットフォームを設定することができます。詳細は、Staging Cloud Apps to RedHat OpenShift Online PaaS guide を参照してください。
1.3.7. 統計
Studio では、アプリのエンドポイント統計値とカスタム統計値という 2 種類の統計があります。これらは、クラウドアプリの統計セクションにあります。
これらの統計数値を表すグラフには共通の UI 機能があります。データは異なる形式で (例: csv) ダウンロードできます。データの範囲は、各グラフの下にあるスクロールバーとスライダーで変更可能です。グラフ内の各行は、凡例のアイテムをクリックすることでオンとオフが切り替えられます。
1.3.7.1. アプリのエンドポイント
アプリのエンドポイント統計値はすべてのアプリで追加設定なしで使用できます。main.js で定義されているエンドポイントは、エンドポイントが呼び出されると統計値の生成を開始します。「すべてのエンドポイント」の結合グラフも統計値が生成されると利用可能になります。
統計値を生成している各エンドポイントでは、以下のサマリー情報が利用可能となります。
- 1 分あたりのリクエスト数 - 直近 1 分間のリクエスト数 (短い間隔を基に計算された値)
- 平均リクエスト時間 - 直近の間隔でのリクエストあたりの平均時間
- 平均同時リクエスト - 直近の間隔で処理された同時リクエストの平均数 (間隔あたりのリクエスト数と間隔あたりの平均リクエスト時間を基に計算)
デフォルトのグラフビューでは以下のデータが表示されます。
- 1 秒あたりのリクエスト数 - アプリが 1 秒間に処理したリクエスト数 (直近の間隔を基に計算)
- 平均同時リクエスト - 直近の間隔で処理された同時リクエストの平均数 (間隔あたりのリクエスト数と間隔あたりの平均リクエスト時間を基に計算)
- 平均リクエスト時間 (90 パーセンタイル) - 直近の間隔でのリクエストの平均時間。外れ値は無視する。
グラフ上部の凡例にある名前をクリックすると、最長リクエスト時間や最短リクエスト時間といった他のグラフアイテムも表示できます。その下のグラフでは、それらの統計値を含めたものが表示され、1 秒あたりのリクエスト数と平均同時リクエスト数の選択は解除されます。
1.3.7.2. カスタム統計値
カスタム統計値は、$fh.stats API を使って開発者が定義します。
1.3.7.2.1. カウンター
カウンターは線グラフ上で見ることができ、各間隔のカウンター値が表示されます。
カウンターは各間隔ごとにリセットされます。
1.3.7.2.2. タイマー
タイマーも線グラフ上で見ることができます。各タイマーの値は、該当間隔におけるそのタイマーの平均値 (90 パーセンタイル) になります。各間隔における上限値と下限値も別の線でグラフ化されます。これらの値により、平均時間においてタイマーがどのように変化したかについての概要が分かります。
1.3.8. 通知およびイベント
アプリでは、アプリに対して特定のアクションが発生すると、イベントが生成されます。これらのイベントはプラットフォームが記録し、App Studio と FHC が開発者に提示します。例えば、開発者がアプリをデプロイすると、プラットフォームはデプロイの発生時間とデプロイ実行者、およびその結果を記録します。
イベントにはカテゴリー、重大度、および名前があります。現在プラットフォームが生成するイベントは以下の通りです。
| イベント名 | イベントカテゴリ | イベント重大度 | 説明 |
|---|---|---|---|
|
CREATE_REQUESTED |
APP_STATE |
INFO |
アプリ作成がリクエストされます。 |
|
CREATED |
APP_STATE |
INFO |
アプリが作成されます。 |
|
CREATE_FAILED |
APP_STATE |
ERROR |
アプリの作成に失敗しました。 |
|
DEPLOY_REQUESTED |
APP_STATE |
INFO |
アプリのデプロイがリクエストされます。 |
|
DEPLOYED |
APP_STATE |
INFO |
アプリがデプロイされます。 |
|
DEPLOY_FAILED |
APP_STATE |
ERROR |
アプリのデプロイが失敗しました。 |
|
START_REQUESTED |
APP_STATE |
INFO |
アプリの起動がリクエストされます。 |
|
START_SUCCESSFUL |
APP_STATE |
INFO |
アプリが起動しました。 |
|
START_FAILED |
APP_STATE |
ERROR |
アプリの起動が失敗しました。 |
|
SUSPEND_SUCCESSFUL |
APP_STATE |
INFO |
クラウドアプリへの HTTP コールが一定期間 (通常は 1 週間) ないというアクティビティーがない状態になると、クラウドアプリが停止されます。クラウドアプリへの次回の HTTP コールで自動的にアプリが再起動します。 |
|
STOP_REQUESTED |
APP_STATE |
INFO |
アプリの停止がリクエストされます。 |
|
STOP_SUCCESSFUL |
APP_STATE |
INFO |
アプリが停止されます。 |
|
STOP_FAILED |
APP_STATE |
ERROR |
アプリの停止が失敗しました。 |
|
CRASHED |
APP_STATE |
ERROR |
不明な例外がアプリから送られ、停止されました。システム監視プロセスにより自動的に再起動されます。 |
|
KILLED_RESTARTED |
APP_STATE |
ERROR |
アプリが停止し、再起動します。 |
|
TERMINATED |
APP_STATE |
FATAL |
短時間に再起動が過剰に実行されたため (現在は 20 秒間に 10 回の再起動) アプリがシステムにより終了されました。システム監視プロセスが再起動することはありません。 |
|
DELETE_REQUESTED |
APP_STATE |
INFO |
アプリの削除がリクエストされます。 |
|
DELETED |
APP_STATE |
INFO |
アプリが削除されました。 |
|
DELETE_FAILED |
APP_STATE |
ERROR |
アプリの削除に失敗しました。 |
|
CHANGE_REQUESTED |
APP_ENVIRONMENT |
INFO |
環境変数の変更がリクエストされます。 |
|
CHANGE_SUCCESSFUL |
APP_ENVIRONMENT |
INFO |
環境変数が変更されました。 |
|
CHANGE_FAILED |
APP_ENVIRONMENT |
ERROR |
環境変数の変更に失敗しました。 |
1.3.8.1. システムイベントビュー
プラットフォームで生成したイベントはすべて、Studio のクラウドアプリビューにある通知セクションで確認することができます。また、フィルターを使ってイベントを検索することもできます。イベントエントリーをクリックすると、イベントの詳細情報を見ることができます。
1.3.8.2. 警告 & 通知メール
特定のクラウドイベントが発生した際に開発者に通知メールを送信することができます。これは警告で実行されます。警告では、通知メールが実行される条件と使用する E メールアドレスを定義します。
1.3.8.2.1. 警告ビュー
警告ビューには、2 つの表があります。1 つ目では、該当アプリで作成された全イベントが一覧表示されます。2 つ目では、選択された警告設定に合致するクラウドイベントすべてが表示されます。1 つ目の表のエントリーをクリックすると、警告の詳細情報が示されます。
1.3.8.2.2. 警告の作成
「警告を作成」ボタンをクリックすると、警告作成ビューが表示されます。このビューでは、警告名、警告が監視するイベント、および警告の送信先となる E メールアドレスを指定します。
イベントを指定する際には、イベントカテゴリー、重大度、イベント名のいずれかまたはその組み合わせを使用します。すべてのフィールドで値を設定する必要はありません。警告が作成され、基準に合致するイベントが発生したら、警告で指定されたアドレスに通知メールが送信されます。
1.3.8.2.3. 通知ビュー
プラットフォームでは送信された通知メールすべての記録を維持し、これは Studio で見ることができます。表内のエントリーをクリックすると、通知の詳細が表示されます。
1.3.9. ログ
ユーザーは、各アプリ環境で作成された現行およびアーカイブ済みのアプリログにアクセスできます。
1.3.10. エンドポイントセキュリティー
エンドポイントセキュリティーの機能を使用すると、アプリのエンドポイントに適用するセキュリティーレベルを決定できます。
1.3.10.1. エンドポイントセキュリティーの管理
エンドポイントセキュリティーのオプションは、クラウドインスタンスの左側メニューにあります。セキュリティーの設定には、以下の 2 つの方法があります。
1.3.10.1.1. アプリのセキュリティー
アプリのセキュリティーでは、すべてのエンドポイントにわたって適用されるデフォルトのセキュリティーレベルを定義します。デフォルトは HTTPS です。アプリ API キーオプションを適用すると、HTTPS は使用されますが、エンドポイントにアクセスするためには、アプリ API キーを送信し、アプリで作成したキーと一致する必要があります。このキーは、アプリの詳細メニューオプションにあります。デフォルトでは、このキーは RHMAP SDK から送信されます。このオプションを有効にすると、エンドポイントは正しい App API キーが送信された場合にのみ、アクセス可能になります。正しいキーがない場合は、401 (Not Authorised) が返され、エンドポイントは呼び出されません。
1.3.10.1.2. 個別のエンドポイントセキュリティー
アプリのエンドポイントに適用するセキュリティーは、個別レベルで変更することが可能です。一覧を更新すると、クラウドインスタンスが再起動します。
アプリが実行中でしばらくステージしていない場合は、最新バージョンのソフトウェアを取得するためにアプリを再度ステージする必要があります。
1.3.10.2. 監査ログ
アプリへの変更を透過的に見られるようにするために、セキュリティー設定が変更されると監査ログにエントリーが作成されます。このログは、エンドポイントセキュリティー画面の上部にある監査ログをクリックすると表示されます。監査ログでは、使用中のアプリのセキュリティー設定で実行されたことのログが表示されます。フィルターを使って監査ログを絞り込むこともできます。
1.3.10.3. CORS サポート
CORS (クロスオリジンリソース共有) は、web ページ上の JavaScript がその JavaScript の元になっているドメインではなく、別のドメインに XMLHttpRequests を作成できるようにするメカニズムです。CORS についての詳細は、CORS on Wikipedia を参照してください。RHMAP では、全クラウドリクエストで自動的に CORS を有効にします。
選択したドメインへのアクセスは、以下のように制限できます。
- Studio のクラウド管理セクションで「環境変数」をクリックします。
-
CORS_WHITELISTという名前の環境変数を追加します。 - その値を、アクセスを制限するドメインに設定します。
- 「環境変数をプッシュ」ボタンをクリックして変更を選択した環境に適用します。
1.4. MBaaS サービス
1.4.1. 概要
サービスとは、Oracle 統合サービスのようなバックエンドシステムと統合するためにプロジェクトが使用する稼働中のクラウドアプリです。サービスは 1 つ以上のプロジェクトに追加して、そのプロジェクトのアプリで利用可能とします。
要件
クラウドサービスのプロビジョニングを可能とするには、サービス管理者 ロールをアカウントに割り当てる必要があります。
クラウドサービスのインスタンス作成を可能とするには、ユーザーのアカウントに 開発者管理 ロールか 開発者 が割り当てられ、プロジェクトの作成および管理が可能となっている必要があります。プロジェクトにアプリやクラウドインスタンスを追加した方法でサービスを追加することができます。
1.4.2. MBaaS サービスのプロビジョニング
サービス管理者は、開発者による様々なバックエンドシステムへのアクセスを可能とする新規 MBaaS マイクロサービスのプロビジョニングを実行できます。サービスがプロビジョニングされたら、プラットフォーム上のプロジェクト内で使用可能になります。デフォルトでは、サービスが作成されるとプライベートとマークされます。ドメイン上の全プロジェクトでサービスを利用可能とするには、「グローバルサービス」オプションを有効にする必要があります。これでこのサービスが公開で利用可能であることが宣言されます。
1.4.3. 詳細
以下は特定のサービスに関連する概要情報になります。
1.4.3.1. サービスの詳細
サービスの詳細セクションでは、概要情報が提供されます。
- サービス ID: 特定サービスの一意の識別子です。これは、FHC から特定サービスを参照する際に使用されます。
- サービス API キー: これをアプリ ID と合わせて使用することで、アプリがクラウドと通信できるようになります。
- Git URL: リポジトリーをクローンする URL です。
1.4.3.2. サービス設定
サービス設定のセクションでは、サービスに関連する詳細が編集できます。
- 名前: サービスの名前です。
- プロジェクト: このサービスにアクセスがあるプロジェクト一覧です。
- グローバルサービス: このオプションを選択すると、ドメイン上の全プロジェクトでサービスがグローバルに利用可能となります。この設定が有効であれば、開発者はこのサービスを自身のプロジェクト内で利用できます。
- サービスの削除: サービスを削除します。
1.4.4. Docs
Docs セクションには API ドキュメンテーションビューワが含まれており、以下のような各エンドポイント向けのサービス API の重要な要素が明確に表示されます。
- 期待されるリクエストヘッダーおよびリクエストボディの例。
- サンプルリクエストの応答例。
-
特定サービス上のメソッドを起動する
$fh.serviceコールの完全なスニペット。 - ドキュメンテーションビューワから直接サービスを起動するフォーム。
API Blueprint 仕様に準ずる README.md ファイルがサービスの root ディレクトリーに含まれている場合、これらはすべて自動的に生成されます。仕様に関する詳細情報は API Blueprint Tutorial または Language Specification を参照してください。
1.4.5. エディター
ビルトインのエディターを使うことで、サービスインスタンスに関連したクラウドコードが編集できます。構文ハイライト表示の機能が組み込まれているため、構文要素を区別しやすくなっています。ユーザーはファイルやフォルダーを新規作成し、保存された変更は自動的に対応する Git リポジトリーにプッシュバックされます。
変更がなされたらプレビューが自動的にリフレッシュされるため、変更の反映がすぐに確認できます。'git pull' を実行すると、Git リポジトリーから変更がプルされます。
エディターのアプリプレビューでは、多くの選択可能なデバイスで現行アプリがどのように表示されるかを確認できます。
1.4.6. 環境変数
Studio を使用する環境変数は定義が可能で、これらの変数はクラウドコードでアクセスできます。Studio では、各クラウド環境における現在定義済みの環境変数とデプロイ済みの環境変数の一覧を表示します。また、システムが定義する環境変数一覧も見ることができます。
1.4.6.1. アプリの環境変数
このセクションでは、ユーザーが定義した変数が一覧表示されます。これらの変数はクラウドにプッシュされていないことがあるので、値は現在アクティブなものとは異なる場合があります。定義済みの値とデプロイ済みの値で不整合がある場合は、赤字で表示されます。値のフィールドをクリックすると、これを更新することができます。
1.4.6.2. デプロイ済みユーザーの環境変数
このセクションでは、ユーザーが作成したデプロイ済みの環境変数が一覧表示されます。上記と同様に、不整合は赤字で表示されます。ただし、これらの値は直接は更新できません。
1.4.6.3. デプロイ済みのシステム環境変数
このセクションでは、プラットフォームが作成したデプロイ済みの環境変数が一覧表示されます。これらの値はリファレンス目的のみとなり、これら変数の値は変更しないでください。
1.4.6.4. 環境変数の作成
新規の環境変数は、「変数を追加」ボタンをクリックすると作成できます。環境変数の名前は以下のルールにしたがってください。
-
FH_またはMONIT_で始めない。 以下のいずれも使用しない。
-
PATH -
HOME -
PWD -
USER -
NODE_PATH -
LD_LIBRARY_PATH
-
1.4.6.5. 環境変数の設定解除/削除
既存の環境変数一覧で変数にチェックを入れると、変数を設定解除または削除するオプションがあります。
- 設定解除 選択された環境から変数が削除されます。
- 削除 すべての環境から変数が削除されます。
同時に複数の変数を設定解除または削除することが可能です。
1.4.6.6. 環境変数をプッシュ
変数の値の更新が完了したら、「環境変数をプッシュ」のボタンをクリックして変数をクラウドにプッシュする必要があります。これを実行すると、アプリの再起動も実行されます。
1.4.7. データブラウザー
App Studio データブラウザーセクションでは、開発者は以下のことができます。
- アプリに関連するデータを視覚的かつ対話的に表示する。
- コレクションを表示、作成、削除、インポート、エクスポートする。
- コレクション内のデータを修正する。
詳細情報は データブラウザーガイド を参照してください。
1.4.7.1. データブラウザーを有効にする
App Studio でデータブラウザータブを選択すると、以下のいずれかの画面が表示されます。
- データブラウザーを有効にしている場合は、データブラウザーが表示されます。
- データブラウザーを有効にすることを要求する画面。
- データを移行してデータブラウザーを有効にすることを要求する画面。
有効ボタンをクリックすると、以下のステップが実行されます。
- アプリが停止されます。
- アプリ用に特別に新規データベースが作成されます。
- mongodb への生接続文字列を含む環境変数がアプリ用に設定されます。
アプリのデータを移行する必要がある場合は、移行ボタンが表示されます。このボタンを押すと、以下が実行されます。
- アプリが停止されます。これで移行中に新たなデータが書き込まれなくなります。
- アプリ用に特別に新規データベースが作成されます。
- 既存のデータが古いデータベースから新しいデータベースに移行されます。
- データが新しいデータベースで検証されます。
- mongodb への生接続文字列を含む環境変数がアプリ用に設定されます。
- すべてが成功すると、古いデータが削除されます。
cloud/application.js および cloud/package.json のコンテンツの更新が必要な場合もあります。必要な場合は移行画面でその旨が知らされます。
データ移行の全ステップが完了したら、アプリの再ステージが要求されます。
1.4.7.2. データブラウザーの使用
1.4.7.2.1. コレクションの表示/追加
Studio のクラウド管理セクションにあるデータブラウザータブを選択すると、アプリに関連付けられているコレクションが表示されます。
この画面には、コレクション一覧上部に以下の 2 つのボタンがあります。
- コレクションの追加
- コレクション一覧のリフレッシュ
コレクション追加のボタンをクリックすると、コレクション名の入力を求められます。作成ボタンをクリックしてコレクションを作成します。
1.4.7.2.2. コレクション内のデータ表示
コレクション内に保存されているデータを表示するには、データブラウザーにあるコレクションのいずれかをクリックします。このビューではこのコレクションに関連付けられたデータが表示されます。画面上部には以下のメインの一覧機能があります。
- コレクションの切り替え。このオプションを選択すると、アプリ用のコレクション一覧が表示されます。表示したいコレクションをクリックしてデータを一覧表示します。
- コレクションにエントリーを追加します。
1.4.7.2.2.1. データの並び替え
特定のフィールドでデータを並び替えるには、一覧上部のフィールド名をクリックします。並び替えは昇順と降順で切り替わります。
1.4.7.2.2.2. データのフィルタリング
表示されたデータをフィルターにかけるには、データブラウザー画面上部にある「フィルター」ボタンを選択します。このボタンをクリックすると、フィルタリングオプションが表示されます。これらのオプションを使用すると、1 つ以上のフィールドで表示されたデータにフィルターをかけることができます。
1.4.7.2.3. データの編集
データブラウザーでは、インラインまたは高度なエディターを使用してデータを編集できます。
- インラインエディターを使用すると、コレクション内の簡単なデータの編集に使用します (例: 単一フィールド内でのテキスト変更)。
- 複雑なデータタイプの編集には高度なエディターが使用されます。これは、対話型の動的エディターや Raw JSON エディターを使用して行われます。
1.4.7.2.3.1. インラインエディターを使用した編集
インラインエディターを使用してエントリーを編集するには、データエントリー右側の編集オプションを選択してから Edit Inline を選択します。オプションが緑色のチェックマークと黒矢印のアイコンに変わります。インラインエディターでの編集が複雑すぎるフィールドの場合、「Advanced Editor Only」のテキストが表示されます。このフィールドは、高度なエディターでのみ編集可能となっています。
エントリーの更新が終わったら、緑色のチェックを選択して変更をデータにコミットするか、黒矢印を選択して変更をキャンセルします。
1.4.7.2.3.2. 高度なエディターを使用した編集
複雑なデータタイプの編集には高度なエディターが使用されます (例: フィールドが複数の入れ子フィールドで構成されている場合など)。
高度なエディターを開くには、データエントリー右側の編集オプションを選択し、Advanced Editor を選びます。高度なエディターには以下の 2 つのモードがあります。
- フィールドを対話型で追加、編集する動的エディター。
- JSON 形式でデータを直接編集する Raw JSON エディター。
1.4.7.2.3.3. 動的エディターを使用した編集
動的エディターは、JSON データ用の対話型エディターです。各フィールドの構造化ビューを表示し、複雑なデータタイプの編集、追加ができます。アクションメニューでは、エントリーの複雑なフィールドの管理に必要となる全機能が提供されます。
- Type: このオプションでは、フィールドのデータタイプをアレイ、JSON オブジェクト、または文字列に変更します。またフィールドを自動に設定することも可能で、その場合、データタイプは入力されたデータから自動的に選択されます。
- Sort: このオプションは、複雑なタイプのサブフィールドを昇順または降順で並び替えます。
- Append: このオプションは、選択したオブジェクトの後にフィールドを追加します。
- Insert: このオプションは、選択したオブジェクトの前にフィールドを追加します。
- Duplicate: このオプションは、選択したオブジェクトをコピーし、それをオブジェクトの最後に追加します。
- Remove: エントリーからフィールドを削除します。
1.4.7.2.3.4. Raw JSON エディターを使用した編集
Raw Editor を使用すると、JSON 構文のデータを編集できます。入力されるデータが有効な JSON フォーマットであることを確認してください。JSON データは、フォーマット化されたフォームまたはコンパクトなフォームのいずれかで表示できます。
1.4.8. デプロイ
デプロイセクションでは、ユーザーは現行 mBaaS コードのデプロイメントを管理できます。デプロイメントターゲットを作成または選択し、デプロイをライブまたは開発環境にステージすることが可能です。クラウドインスタンスのデプロイの際には、デプロイメントログが表示され、ユーザーはデプロイの詳細を細かく調査することができます。
1.4.9. 統計
Studio では、アプリのエンドポイント統計値とカスタム統計値という 2 種類の統計があります。これらは、クラウドインスタンスの統計セクションにあります。
これらの統計数値を表すグラフには共通の UI 機能があります。データは異なる形式で (例: csv) ダウンロードできます。データの範囲は、各グラフの下にあるスクロールバーとスライダーで変更可能です。グラフ内の各行は、凡例のアイテムをクリックすることでオンとオフが切り替えられます。
1.4.9.1. アプリのエンドポイント
アプリのエンドポイント統計値はすべてのアプリで追加設定なしで使用できます。main.js で定義されているエンドポイントは、エンドポイントが呼び出されると統計値の生成を開始します。「すべてのエンドポイント」の結合グラフも統計値が生成されると利用可能になります。
統計値を生成している各エンドポイントでは、以下のサマリー情報が利用可能となります。
- 1 分あたりのリクエスト数 - 直近 1 分間のリクエスト数 (短い間隔を基に計算された値)
- 平均リクエスト時間 - 直近の間隔でのリクエストあたりの平均時間
- 平均同時リクエスト - 直近の間隔で処理された同時リクエストの平均数 (間隔あたりのリクエスト数と間隔あたりの平均リクエスト時間を基に計算)
デフォルトのグラフビューでは以下のデータが表示されます。
- 1 秒あたりのリクエスト数 - アプリが 1 秒間に処理したリクエスト数 (直近の間隔を基に計算)
- 平均同時リクエスト - 直近の間隔で処理された同時リクエストの平均数 (間隔あたりのリクエスト数と間隔あたりの平均リクエスト時間を基に計算)
- 平均リクエスト時間 (90 パーセンタイル) - 直近の間隔でのリクエストの平均時間。外れ値は無視する。
グラフ上部の凡例にある名前をクリックすると、最長リクエスト時間や最短リクエスト時間といった他のグラフアイテムも表示できます。その下のグラフでは、それらの統計値を含めたものが表示され、1 秒あたりのリクエスト数と平均同時リクエスト数の選択は解除されます。
1.4.9.2. カスタム統計値
カスタム統計値は、$fh.stats API を使って開発者が定義します。
1.4.9.2.1. カウンター
カウンターは線グラフ上で見ることができ、各間隔のカウンター値が表示されます。
カウンターは各間隔ごとにリセットされます。
1.4.9.2.2. タイマー
タイマーも線グラフ上で見ることができます。各タイマーの値は、該当間隔におけるそのタイマーの平均値 (90 パーセンタイル) になります。各間隔における上限値と下限値も別の線でグラフ化されます。これらの値により、平均時間においてタイマーがどのように変化したかについての概要が分かります。
1.4.10. 通知およびイベント
アプリでは、アプリに対して特定のアクションが発生すると、イベントが生成されます。これらのイベントはプラットフォームが記録し、App Studio と FHC が開発者に提示します。例えば、開発者がアプリをデプロイすると、プラットフォームはデプロイの発生時間とデプロイ実行者、およびその結果を記録します。
イベントにはカテゴリー、重大度、および名前があります。現在プラットフォームが生成するイベントは以下の通りです。
| イベント名 | イベントカテゴリ | イベント重大度 | 説明 |
|---|---|---|---|
|
CREATE_REQUESTED |
APP_STATE |
INFO |
アプリ作成がリクエストされます。 |
|
CREATED |
APP_STATE |
INFO |
アプリが作成されます。 |
|
CREATE_FAILED |
APP_STATE |
ERROR |
アプリの作成に失敗しました。 |
|
DEPLOY_REQUESTED |
APP_STATE |
INFO |
アプリのデプロイがリクエストされます。 |
|
DEPLOYED |
APP_STATE |
INFO |
アプリがデプロイされます。 |
|
DEPLOY_FAILED |
APP_STATE |
ERROR |
アプリのデプロイが失敗しました。 |
|
START_REQUESTED |
APP_STATE |
INFO |
アプリの起動がリクエストされます。 |
|
START_SUCCESSFUL |
APP_STATE |
INFO |
アプリが起動しました。 |
|
START_FAILED |
APP_STATE |
ERROR |
アプリの起動が失敗しました。 |
|
SUSPEND_SUCCESSFUL |
APP_STATE |
INFO |
クラウドアプリへの HTTP コールが一定期間 (通常は 1 週間) ないというアクティビティーがない状態になると、クラウドアプリが停止されます。クラウドアプリへの次回の HTTP コールで自動的にアプリが再起動します。 |
|
STOP_REQUESTED |
APP_STATE |
INFO |
アプリの停止がリクエストされます。 |
|
STOP_SUCCESSFUL |
APP_STATE |
INFO |
アプリが停止されます。 |
|
STOP_FAILED |
APP_STATE |
ERROR |
アプリの停止が失敗しました。 |
|
CRASHED |
APP_STATE |
ERROR |
不明な例外がアプリから送られ、停止されました。システム監視プロセスにより自動的に再起動されます。 |
|
KILLED_RESTARTED |
APP_STATE |
ERROR |
アプリが停止し、再起動します。 |
|
TERMINATED |
APP_STATE |
FATAL |
短時間に再起動が過剰に実行されたため (現在は 20 秒間に 10 回の再起動) アプリがシステムにより終了されました。システム監視プロセスが再起動することはありません。 |
|
DELETE_REQUESTED |
APP_STATE |
INFO |
アプリの削除がリクエストされます。 |
|
DELETED |
APP_STATE |
INFO |
アプリが削除されました。 |
|
DELETE_FAILED |
APP_STATE |
ERROR |
アプリの削除に失敗しました。 |
|
CHANGE_REQUESTED |
APP_ENVIRONMENT |
INFO |
環境変数の変更がリクエストされます。 |
|
CHANGE_SUCCESSFUL |
APP_ENVIRONMENT |
INFO |
環境変数が変更されました。 |
|
CHANGE_FAILED |
APP_ENVIRONMENT |
ERROR |
環境変数の変更に失敗しました。 |
1.4.10.1. システムイベントビュー
プラットフォームで生成したイベントはすべて、Studio のクラウドアプリビューにある通知セクションで確認することができます。また、フィルターを使ってイベントを検索することもできます。イベントエントリーをクリックすると、イベントの詳細情報を見ることができます。
1.4.10.2. 警告 & 通知メール
特定のクラウドイベントが発生した際に開発者に通知メールを送信することができます。これは警告で実行されます。警告では、通知メールが実行される条件と使用する E メールアドレスを定義します。
1.4.10.2.1. 警告ビュー
警告ビューには、2 つの表があります。1 つ目では、該当アプリで作成された全イベントが一覧表示されます。2 つ目では、選択された警告設定に合致するクラウドイベントすべてが表示されます。1 つ目の表のエントリーをクリックすると、警告の詳細情報が示されます。
1.4.10.2.2. 警告の作成
「警告を作成」ボタンをクリックすると、警告作成ビューが表示されます。このビューでは、警告名、警告が監視するイベント、および警告の送信先となる E メールアドレスを指定します。
イベントを指定する際には、イベントカテゴリー、重大度、イベント名のいずれかまたはその組み合わせを使用します。すべてのフィールドで値を設定する必要はありません。警告が作成され、基準に合致するイベントが発生したら、警告で指定されたアドレスに通知メールが送信されます。
1.4.10.2.3. 通知ビュー
プラットフォームでは送信された通知メールすべての記録を維持し、これは Studio で見ることができます。表内のエントリーをクリックすると、通知の詳細が表示されます。
1.4.11. ログ
ユーザーは、各アプリ環境で作成された現行およびアーカイブ済みのサービスログにアクセスできます。
1.4.12. エンドポイントセキュリティー
エンドポイントセキュリティーの機能を使用すると、アプリのエンドポイントに適用するセキュリティーレベルを決定できます。
1.4.12.1. エンドポイントセキュリティーの管理
エンドポイントセキュリティーのオプションは、クラウドインスタンスの左側メニューにあります。セキュリティーの設定には、以下の 2 つの方法があります。
1.4.12.1.1. アプリのセキュリティー
アプリのセキュリティーでは、すべてのエンドポイントにわたって適用されるデフォルトのセキュリティーレベルを定義します。デフォルトは HTTPS です。アプリ API キーオプションを適用すると、HTTPS は使用されますが、エンドポイントにアクセスするためには、アプリ API キーを送信し、アプリで作成したキーと一致する必要があります。このキーは、アプリの詳細メニューオプションにあります。デフォルトでは、このキーは RHMAP SDK から送信されます。このオプションを有効にすると、エンドポイントは正しい App API キーが送信された場合にのみ、アクセス可能になります。正しいキーがない場合は、401 (Not Authorised) が返され、エンドポイントは呼び出されません。
1.4.12.1.2. 個別のエンドポイントセキュリティー
アプリのエンドポイントに適用するセキュリティーは、個別レベルで変更することが可能です。一覧を更新すると、クラウドインスタンスが再起動します。
アプリが実行中でしばらくステージしていない場合は、最新バージョンのソフトウェアを取得するためにアプリを再度ステージする必要があります。
1.4.12.2. 監査ログ
アプリへの変更を透過的に見られるようにするために、セキュリティー設定が変更されると監査ログにエントリーが作成されます。このログは、エンドポイントセキュリティー画面の上部にある監査ログをクリックすると表示されます。監査ログでは、使用中のアプリのセキュリティー設定で実行されたことのログが表示されます。フィルターを使って監査ログを絞り込むこともできます。
1.4.12.3. CORS サポート
CORS (クロスオリジンリソース共有) は、web ページ上の JavaScript がその JavaScript の元になっているドメインではなく、別のドメインに XMLHttpRequests を作成できるようにするメカニズムです。CORS についての詳細は、CORS on Wikipedia を参照してください。RHMAP では、全クラウドリクエストで自動的に CORS を有効にします。
選択したドメインへのアクセスは、以下のように制限できます。
- Studio のクラウド管理セクションで「環境変数」をクリックします。
-
CORS_WHITELISTという名前の環境変数を追加します。 - その値を、アクセスを制限するドメインに設定します。
- 「環境変数をプッシュ」ボタンをクリックして変更を適用します。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.