ビルド エイリアスの管理と割り当て
ビルド エイリアスは、ビルド上の管理レイヤーであり、 RequestMultiplayerServer
への呼び出しを制御された方法で複数のビルドに分散できます。 これにより、アップグレードをビルドするためのビルドのシンプルさと信頼性が向上し、以下に示すその他のシナリオが改善されます。 エイリアスは、ビルド ID の一覧と各 ID の重みを指定することによってこれを実現します。 重みは、対応するビルドに転送する必要がある割り当て呼び出しの比率を表します。
下位互換性のある安全な展開
これは、ビルドのアップグレードの最も一般的なシナリオであり、ゲーム サーバーを更新することができ、リテール クライアントは両方のサーバーと互換性があります。
クライアントはエイリアス 1 を参照します。エイリアス 1 の構成は次のようになります。
- ビルド 1: 重み = 1
ビルド 2 が作成されると、エイリアス 1 は次の名前に変更されます。
- ビルド 1: 重み = 8
- ビルド 2: 重み = 2
ビルド 2 によってすべての新しいサーバー要求が満たされるまで、重みを徐々に変更できます。 この時点で、ビルド 1 の重みは 0 であり、エイリアスから削除できます。
エイリアスの一般的な使用例は、クライアント互換性バージョンとゲーム モードにアフィニティを設定することです。 例: "DeathMatch client 2.2 RETAIL"。エイリアスを使用すると、このエクスペリエンスを強化するビルドを継続的に更新しながら、この上位レベルの抽象化を管理できます。 また、エイリアスを使用すると、必要に応じてビルドを簡単にロールバックできます。
下位互換性のないデプロイ
この場合、現在のゲーム クライアントは古いサーバー ビルドと互換性がないため、ゲーム クライアントを更新すると同時にゲーム サーバーを更新する必要があります。 あるビルドから別のビルドへの移行は、次のように行われます。
古いクライアントはエイリアス 1 を参照します。エイリアス 1 は次のようになります。
- ビルド 1: 重み = 1
ビルド 2 が作成されると、新しいクライアントはエイリアス 2 を参照します。エイリアス 2 は次のようになります。
- ビルド 2: 重み = 1
このシナリオでは、エイリアスはビルドと同様に使用され、それらの多重化機能は使用されません。
下位互換性のある爆発デプロイ
これは、アップグレード シナリオを構築するための下位互換性のあるビルドに似ていますが、需要の動作がより突然切り替わります。 あるビルドから別のビルドへの移行は、次のように行われます。
クライアントはエイリアス 1 を参照します。エイリアス 1 は次のようになります。
- ビルド 1: 重み = 1
ビルド 2 が作成されると、エイリアス 1 は次の名前に変更されます。
- ビルド 1: 重み = 0
- ビルド 2: 重み = 1
下位互換性のあるデプロイのテスト
ゲーム サーバーを更新し、クライアント バージョンが両方のサーバーと互換性があるが、すべてのプレイヤーに対して大規模に展開する前に 2 番目のバージョンをテストする場合。 1 つのビルドから別のビルドへのテストと移行は、次のように行うことができます。
クライアントはエイリアス 1 を参照します。エイリアス 1 は次のようになります。
- ビルド 1: 重み = 1
ビルド 2 が作成されたら。 テスト クライアントはエイリアス 2 を参照します。エイリアス 2 は次のようになります。
- ビルド 2: 重み = 1
ビルド 2 が検証されたら。 エイリアス 1 は次に変更されます。
- ビルド 1: 重み = 8
- ビルド 2: 重み = 2
徐々にビルド 2 が重み付けされ、すべてのトラフィックが吸収されます。
他のビルドとリージョンへのフォールバック
エイリアスを使用すると、複数のビルド間でのフォールバックを可能にすることで、マルチプレイヤー サーバーのデプロイの回復性を高めることができます。 たとえば、ビルド エイリアスをターゲットとする割り当て要求が EastUS をリージョン #1としてランク付けし、米国西部をリージョン #2としてランク付けするとします。 このビルド エイリアスは、ビルド 1 とビルド 2 の 2 つのビルドと同様の重みを提供します。
特定の割り当てに対してビルド 1 が選択されているとします。
- ビルド 1 の米国東部での割り当てが試行されます。
- #1 失敗した場合、ビルド 2 の米国東部での割り当てが試行されます。
- #2 失敗した場合、ビルド 1 の WestUS での割り当てが試行されます。
- #3 失敗した場合、ビルド 2 の WestUs での割り当てが試行されます。
特に、あるビルドから別のビルドに段階的にアップグレードする場合、このフォールバック動作は最適化され、いずれかのビルドで問題が発生した場合でも、プレイヤーは待機時間が最も短いサーバーを取得できます。
PlayFab REST API を使用してビルド エイリアスを管理する
注意
ゲーム マネージャーでビルド エイリアスを管理できるようになりました。 作業を開始するには、[ビルドの概要] のページ を参照してください。
API を使用してビルド エイリアスを作成します。
(API)
POST https://titleId.playfabapi.com/MultiplayerServer/CreateBuildAlias
サンプル本文:
{ "AliasName":"TestingAlias", "BuildSelectionCriteria": [{ "BuildWeightDistribution":{"9a8a4584-c81a-479c-9ef9-16d3743f7ca7":"1"} }] }
サンプル応答
{ "AliasId":"97d2b0a5-7c04-4593-8451-66bbb97f94b6", "AliasName":"TestingAlias", "BuildSelectionCriteria": [{ "BuildWeightDistribution":{"9a8a4584-c81a-479c-9ef9-16d3743f7ca7":"1"} }] }
ビルド エイリアス ID は、応答の一部として提供されます。
ビルド エイリアスのパラメーターを更新します。
(API)
POST https://titleId.playfabapi.com/MultiplayerServer/UpdateBuildAlias
サンプル本文:
{ "AliasId":"97d2b0a5-7c04-4593-8451-66bbb97f94b6", "AliasName":"TestingAliasRenamed", "BuildSelectionCriteria": [{ "BuildWeightDistribution":{"9a8a4584-c81a-479c-9ef9-16d3743f7ca7":"1", "7ac7f347-3d61-9fe9-c974-a18c4854a8a9":"1"} }] }
サンプル応答
{ "AliasId":"97d2b0a5-7c04-4593-8451-66bbb97f94b6", "AliasName":"TestingAliasRenamed", "BuildSelectionCriteria": [{ "BuildWeightDistribution":{"9a8a4584-c81a-479c-9ef9-16d3743f7ca7":"1", "7ac7f347-3d61-9fe9-c974-a18c4854a8a9":"1"} }] }
ビルド エイリアスを削除します。
(API)
POST https://titleId.playfabapi.com/MultiplayerServer/DeleteBuildAlias
サンプル本文:
{ "AliasId":"97d2b0a5-7c04-4593-8451-66bbb97f94b6" }
ビルドエイリアスを一覧表示します。
(API)
GET https://titleId.playfabapi.com/MultiplayerServer/ListBuildAliases
サンプル応答
[{ "AliasId":"97d2b0a5-7c04-4593-8451-66bbb97f94b6", "AliasName":"TestingAliasRenamed", "BuildSelectionCriteria": [{ "BuildWeightDistribution":{"9a8a4584-c81a-479c-9ef9-16d3743f7ca7":"1", "7ac7f347-3d61-9fe9-c974-a18c4854a8a9":"1"} }] }]
ビルド エイリアスを使用して割り当てる
ビルド エイリアスを使用して割り当てるには、 RequestMultiplayerServer
呼び出しでビルド エイリアス ID を指定する必要があります。
(API)
POST https://titleId.playfabapi.com/MultiplayerServer/RequestMultiplayerServer
サンプル本文:
{
"SessionId":"6a07440c-7bcc-4e23-8b81-4934543ff966",
"PreferredRegions":["SouthCentralUs"],
"BuildAliasParams":
{"AliasId":"97d2b0a5-7c04-4593-8451-66bbb97f94b6"}
}