> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ビルド エイリアスの管理と割り当て

> PlayFab ビルド エイリアスを使用して、安全な展開、後方互換性、ゲーム モードのために、複数の重み付けされたビルドにわたってマルチプレイヤー サーバーの割り当てを分散します。

ビルド エイリアスは、ビルドの上位にある管理レイヤーで、`RequestMultiplayerServer` の呼び出しを複数のビルドに制御された方法で分散させることができます。これにより、ビルド間のアップグレードや以下に示すいくつかのシナリオが、よりシンプルかつ信頼できるものになります。エイリアスは、各ビルドの ID とその重みのリストを指定することでこれを実現します。重みは、対応するビルドに転送される割り当て呼び出しの比率を表します。

### 後方互換性のある安全な展開

これは、ビルド間のアップグレードで最も一般的なシナリオで、ゲーム サーバーを更新し、リテール クライアントが両方のサーバーと互換性がある場合です。

クライアントは、次の構成を持つ Alias 1 を参照します:

* Build 1: Weight = 1

Build 2 が作成されると、Alias 1 は次のように変更されます:

* Build 1: Weight = 8
* Build 2: Weight = 2

すべての新しいサーバー要求が Build 2 によって満たされるようになるまで、重みを徐々に変更していくことができます。この時点で Build 1 の重みは 0 になり、エイリアスから削除できます。

エイリアスの典型的な使用例は、クライアントの互換バージョンとゲーム モードに関連付けることです。たとえば "DeathMatch client 2.2 RETAIL" のようになります。エイリアスを使用すると、この体験を支えるビルドを継続的に更新しつつ、この高レベルの抽象化を管理できます。エイリアスは、必要に応じてビルドをロールバックすることも容易にします。

### 後方互換性のない展開

このケースでは、現在のゲーム クライアントが古いサーバー ビルドと互換性がないため、ゲーム クライアントの更新と同時にゲーム サーバーを更新したいと考えています。あるビルドから別のビルドへの移行は、次のように行います:

古いクライアントは Alias 1 を参照し、次の構成となります:

* Build 1: Weight = 1

Build 2 が作成されると、新しいクライアントは Alias 2 を参照し、次の構成となります:

* Build 2: Weight = 1

このシナリオでは、エイリアスはビルドと同様に使用され、その多重化機能は使用されません。

### 後方互換性のある一括展開

これは、後方互換性のあるビルド間のアップグレード シナリオに似ていますが、需要の変化がより急激です。あるビルドから別のビルドへの移行は、次のように行います:

クライアントは Alias 1 を参照し、次の構成となります:

* Build 1: Weight = 1

Build 2 が作成されると、Alias 1 は次のように変更されます:

* Build 1: Weight = 0
* Build 2: Weight = 1

### 後方互換性のある展開のテスト

ゲーム サーバーを更新したい場合で、クライアント バージョンが両方のサーバーと互換性がありますが、すべてのプレイヤー向けに大規模に展開する前に 2 番目のバージョンをテストしたい場合。あるビルドから別のビルドへのテストと移行は、次のように行うことができます:

クライアントは Alias 1 を参照し、次の構成となります:

* Build 1: Weight = 1

Build 2 が作成されると、テスト クライアントは Alias 2 を参照し、次の構成となります:

* Build 2: Weight = 1

Build 2 が検証されると、Alias 1 は次のように変更されます:

* Build 1: Weight = 8
* Build 2: Weight = 2

徐々に Build 2 の重みが増え、すべてのトラフィックを吸収するようになります。

## 他のビルドやリージョンへのフォールバック

エイリアスは、複数のビルド間でフォールバックを可能にすることで、マルチプレイヤー サーバー展開をより堅牢にします。たとえば、EastUS をリージョン #1、West US をリージョン #2 としてランク付けするビルド エイリアスをターゲットとする割り当てリクエストがあるとします。このビルド エイリアスは、Build 1 と Build 2 の 2 つのビルドに同様の重みを付けています。

ある割り当てで Build 1 が選択されたと仮定します。

1. East US での Build 1 の割り当てが試行されます。
2. \#1 が失敗した場合、East US での Build 2 の割り当てが試行されます。
3. \#2 が失敗した場合、WestUS での Build 1 の割り当てが試行されます。
4. \#3 が失敗した場合、WestUs での Build 2 の割り当てが試行されます。

特に、あるビルドから別のビルドへ徐々にアップグレードする場合、このフォールバック動作は、いずれかのビルドに問題があってもプレイヤーが最低レイテンシーのサーバーを取得できるように最適化されています。

## PlayFab REST API を使用したビルド エイリアスの管理

<Note>
  Game Manager でビルド エイリアスを管理できるようになりました。開始するには、「[Builds overview page](/services/playfab/multiplayer/servers/build-overview)」を参照してください。
</Note>

1. 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"}
       }]
   }
   ```

   **Build Alias Id はレスポンスの一部として提供されます。**

2. ビルド エイリアスの任意のパラメーターを更新します。

   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"}
       }]
   }
   ```

3. ビルド エイリアスを削除します。

   API:

   ```
   POST https://titleId.playfabapi.com/MultiplayerServer/DeleteBuildAlias
   ```

   サンプル ボディ:

   ```
   {
       "AliasId":"97d2b0a5-7c04-4593-8451-66bbb97f94b6"
   }
   ```

4. ビルド エイリアスを一覧表示します。

   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"}
}
```


## Related topics

- [ビルド概要ページ](/ja-jp/services/playfab/multiplayer/servers/build-overview.md)
- [Integrating with PlayFab Multiplayer Servers](/ja-jp/services/playfab/multiplayer/matchmaking/multiplayer-servers.md)
- [BuildAliasCreatedEventPayload](/ja-jp/services/playfab/api-references/events/data-types/buildaliascreatedeventpayload.md)
- [BuildAliasUpdatedEventPayload](/ja-jp/services/playfab/api-references/events/data-types/buildaliasupdatedeventpayload.md)
- [PFMultiplayerServerBuildAliasDetailsResponse](/ja-jp/services/playfab/api-references/c/pfmultiplayerservertypes/structs/pfmultiplayerserverbuildaliasdetailsresponse.md)
