第6章 FHC を使用したプラットフォームでの作業
6.1. FHC による API キーの管理
特定のFHC コマンド実行時には、ユーザー ID を使用してプラットフォームと通信する必要があります。これには、ユーザーが fhc login コマンドを使用してプラットフォームにログインする必要があります。ユーザー API キーは FHC の使用で別の方法を提供します。ユーザー API キーを FHC で設定していれば、ログインコマンドを実行する必要がなくなります。プラットフォームとの通信時に、FHC は API キーを使用して認証することが可能になります。
6.1.1. ユーザー API キーの設定
FHC での API キー管理に関連するコマンドは、fhc keys になります。引数なしでこのコマンドを実行すると、コマンドのヘルプが表示されます。
現行の FHC ターゲットにユーザー API キーを設定するには、以下のコマンドを入力します。
fhc keys user target eb8d9b9ea050b9b23fea59e50ba281c67f3715e5
これを実行するには、fhc target を使用して事前にターゲットを設定している必要があります。
現在 FHC に使用されている API キーを確認するには、以下のコマンドを実行します。
fhc keys user target
FHC で API キーを設定したら、他の FHC コマンドを通常通り実行できます。
例えば、FHC を使用してユーザー API キーの一覧表示、作成、更新、および取り消しができます。
6.1.2. ユーザー API キーの一覧表示
FHC を使用してログインしている、またはユーザー API キーを設定している場合は、以下のコマンドを実行すると現行ユーザーに関連するすべての API キーが表示されます。
fhc keys user list
FHC config で出力形式が json に設定されていれば、各キーオブジェクトは以下のようになります。
{
"key": "eb8d9b9ea050b9b23fea59e50ba281c67f3715e5",
"keyReference": "1j6qcwiziRkbYy6sUUHDooAY",
"keyType": "user",
"label": "test 1",
"revoked": "2012-04-20T15:18:17.258Z",
"revokedBy": "1j6qcwiziRkbYy6sUUHDooAY",
"revokedEmail": "dev@example.com"
}6.1.3. ユーザー API キーの作成
ユーザー API キーを作成するには、以下のコマンドを実行します。
fhc keys user create test2
以下のような応答が返されます。
{
"key": "22d0c0ac5990e8fd2c466c26db1a9eff8a171511",
"keyReference": "1j6qcwiziRkbYy6sUUHDooAY",
"keyType": "user",
"label": "test2",
"revoked": "",
"revokedBy": "",
"revokedEmail": ""
}6.1.4. ユーザー API キーの更新
FHC を使用してユーザー API キーを更新するには、以下のコマンドを実行します。
fhc keys user update 22d0c0ac5990e8fd2c466c26db1a9eff8a171511 test3
以下のような応答が返されます。
{
"key": "22d0c0ac5990e8fd2c466c26db1a9eff8a171511",
"keyReference": "1j6qcwiziRkbYy6sUUHDooAY",
"keyType": "user",
"label": "test3",
"revoked": "",
"revokedBy": "",
"revokedEmail": ""
}6.1.5. ユーザー API キーの取り消し
FHC を使用してユーザー API キーを取り消すには、以下のコマンドを実行します。
fhc keys user revoke 22d0c0ac5990e8fd2c466c26db1a9eff8a171511
取り消しアクションの確認が求められます。確認すると、以下のような応答が返されます。
{
"key": "22d0c0ac5990e8fd2c466c26db1a9eff8a171511",
"keyReference": "1j6qcwiziRkbYy6sUUHDooAY",
"keyType": "user",
"label": "test3",
"revoked": "2012-04-20T16:14:11.702Z",
"revokedBy": "1j6qcwiziRkbYy6sUUHDooAY",
"revokedEmail": "dev@example.com"
}6.2. FHC を使用したサービスの作成
概要
本チュートリアルでは、サービスの作成と、それをプロジェクトに関連付ける方法について説明します。サービスおよびその機能に関する情報については、Cloud Services のドキュメントを参照してください。
要件
ユーザーは、以下のパーミッションを持つ 1 つ以上のチームメンバーである必要があります。
- プロジェクト (表示 & 編集)
- サービス (表示 & 編集)
パーミッションについての詳細は、「チームおよびコラボレーション」を参照してください。
6.2.1. プラットフォームへのログイン
fhc login myUsername myPassword
6.2.2. プロジェクトの作成
プラットフォームにログインしたら、サービスを関連付けるプロジェクトを作成します。プロジェクトを作成するには、以下のコマンドを実行します。
fhc projects create serviceProject
プロジェクトが正常に作成されたことを確認するには、以下のコマンドを実行してドメイン上でプロジェクトを検索します。
fhc projects | grep 'serviceProject'
これで新規に作成されたプロジェクトが返されます。このプロジェクトには、クライアントアプリとクラウドアプリという 2 つのアプリがあることに留意してください。
6.2.3. サービスの作成
サービスをプロジェクトに追加すると、この追加なしではアクセスできなかったバックエンド機能にクライアントがアクセスできるようになります。サービスを作成する前に、利用可能なテンプレートを確認してみましょう。サービステンプレートを一覧表示するには、以下のコマンドを入力します。
fhc templates services
これで利用可能なサービステンプレートすべてが一覧表示されます。ここでは PayPal サービスをプロジェクトに追加します。これを実行するには、PayPal サービス の ID をコピーします。
サービスの作成時には、名前も指定する必要があります。以下のコマンドを実行します。
fhc services create paypalService paypal
これでプロジェクトに関連付けられる新規サービスが作成されました。
6.3. アプリバイナリーのビルド
概要
本チュートリアルでは、FHC を使用したモバイルアプリバイナリーのビルド方法について説明します。Red Hat Mobile Application Platform ホスト型 (RHMAP) でのアプリバイナリーのビルドには、クラウドでホストされている "Build Farm" を使用します。これは、ソースコードをモバイルアプリに変換します。(Xcode や ADT) といったローカルの開発ツールがインストールされていれば、ご自身でローカルにアプリバイナリーを構築できます。ただし、RHMAP Build Farm を使用すると、ビルドプロセスの自動化、これまでのビルド履歴の維持、および開発ツールがないプラットフォーム用のアプリのビルド (例えば、Linux OS から iOS バイナリーをビルドする) などができるようになります。
要件
本チュートリアルを開始する前に、以下のチュートリアルを完了してください。
6.3.1. fhc build コマンド
fhc を使用したビルドでは、多くのパラメーターを指定する必要があります。これはビルドのタイプや使用先となるプラットフォームによって異なります。プロジェクトおよびアプリに関する作業 のチュートリアルでは、プロジェクトの一部として cordova ハイブリッドアプリを作成しました。ここでは、このアプリを使用して Android 用のビルドを実行します。
fhc build コマンドは以下のパラメーターを取ります。
-
project=<project-id>— プロジェクトの guid。 -
app=<app-id>— アプリをビルドするクライアントアプリの guid。 -
cloud_app=<cloud-app-id>— クライアントアプリの通信先となるクラウドアプリの guid。 -
tag=<tag>— 本ビルドに使用する Semver タグ。詳細は、Connections を参照してください。 -
destination=<destination>— ビルドのタイプ—例、android、iOS、windowsphone。 -
version=<version>— ターゲットとなるビルドタイプの特定の OS バージョン。 -
config=<config>— 実行するビルドタイプ — 'debug' (デフォルト)、'distribution' または 'release'。 -
keypass=<private-key-password>— ビルドに使用される秘密キーのパスワード (release ビルドの場合のみ必要)。 -
certpass=<certificate-password>— ビルドに使用される証明書のパスワード (release ビルドの場合のみ必要)。 -
download=<true|false>— 生成されたバイナリーをダウンロードするかどうか。 -
provisioning=<path-to-provisioning-profile>— ビルドに使用するプロビジョニングプロファイルへのパス。 -
cordova_version=<cordova-version>— 使用する cordova のバージョン -
environment=<environment>— ターゲット環境の ID。例: dev。
すべてのビルドタイプにおいてこれらの全パラメーターが必要なわけではありません。詳細は、fhc build --help コマンドを実行してください。
アプリのビルド時には、アプリ ID に加えてアプリが格納されているプロジェクトを fhc に指定する必要があります。その後にクライアントアプリの通信先となるクラウドアプリの ID を入力します。クライアントアプリは、接続によりクラウドアプリに向けられます。クライアントは色々な接続によって異なるクラウドアプリと通信することが可能なため、ビルド実行時には使用する接続タグを指定する必要もあります。
fhc build project=XME5iUr2VoBV3DbXrVF7qApG app=XME5iNsoeRA2xvbmaDYMCdsi cloud_app=XME5iHzfwW9hcGw6_F7Eiwvf tag=0.0.3 destination=android config=debug keypass= certpass= download=true
ビルドが完了すると、以下のような確認の出力が表示されます。
Download URL: Download URL: https://ngui-demo.sandbox.feedhenry.com/digman/android-v3/dist/3e0837f2-76b6-4512-881c-bd3bf427929d/android~4.0~7~HelloWorldClient.apk?digger=diggers.digger206u
6.3.1.1. アーティファクト
ビルドが成功したら、そのアーティファクトがアーティファクト履歴に追加されます。アーティファクトを使用すると、ビルドを再実行せずにアプリを再度ダウンロードすることができます。
特定アプリの全アーティファクトを一覧表示するには、fhc artefacts <projectId> <appId> コマンドを使用します。
fhc artefacts XME5iUr2VoBV3DbXrVF7qApG XME5iNsoeRA2xvbmaDYMCdsi
これで指定されたアプリの全アーティファクトが表示されます。
6.3.2. 次のステップ
6.4. FHC を使用したアプリ統計の表示
FHC を使用すると、アプリの raw の JSON 統計情報データにアクセスできます。
特定アプリの統計情報 (タイマーおよびカウンター) にアクセスするには、以下のコマンドを使用します。
fhc stats <APP_ID> app <NUMBER_OF_RESULTS>
APP_ID は fhc apps コマンドで表示されるアプリの ID で、NUMBER_OF_RESULTS は表示する結果の最大数の数字で置き換えます。サンプルの統計情報は以下のようになります。
{
interval: 10000,
results: [
{
"ts": 1333107734000,
"numStats": 6,
"counters": [
{
"key": "DOMAIN_APPID_api_FUNCTIONNAME_active_requests",
"value": {
"value": 3,
"valuePerSecond": 0.3
}
},
{
"key": "DOMAIN_APPID_api_FUNCTIONNAME2_active_requests",
"value": {
"value": 27,
"valuePerSecond": 2.7
}
},
{
"key": "DOMAIN_APPID_api_FUNCTIONNAME3_active_requests",
"value": {
"value": 456,
"valuePerSecond": 45.6
}
}
],
"timers": [
{
"key": "DOMAIN_APPID_api_FUNCTIONNAME_request_times",
"value": {
"upper": 86,
"lower": 63,
"count": 17,
"pcts": [
{
"pct": "90",
"value": {
"mean": 76,
"upper": 86
}
}
]
}
},
{
"key": "DOMAIN_APPID_api_FUNCTIONNAME2_request_times",
"value": {
"upper": 99,
"lower": 82,
"count": 41,
"pcts": [
{
"pct": "90",
"value": {
"mean": 88.66666666666667,
"upper": 99
}
}
]
}
},
{
"key": "DOMAIN_APPID_api_FUNCTIONNAME3_request_times",
"value": {
"upper": 99,
"lower": 75,
"count": 2783,
"pcts": [
{
"pct": "90",
"value": {
"mean": 79.1254547827,
"upper": 99
}
}
]
}
}
]
}
]
}
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.