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

# Administración de un alias de compilación y asignación con él

> Use alias de compilación de PlayFab para distribuir la asignación de servidores multijugador entre compilaciones ponderadas para un lanzamiento seguro, compatibilidad con versiones anteriores y modos de juego.

Un alias de compilación es una capa de administración sobre las compilaciones, que permite distribuir las llamadas a `RequestMultiplayerServer` entre varias compilaciones de forma controlada. Esto puede mejorar la simplicidad y la confiabilidad de las actualizaciones de una compilación a otra y de otros escenarios que se enumeran a continuación. Los alias lo consiguen especificando una lista de identificadores de compilación junto con el peso de cada una. El peso de una compilación establece la probabilidad de que esa compilación se intente primero en cada solicitud de asignación. Por ejemplo, si la Compilación 1 tiene un peso de 8 y la Compilación 2 tiene un peso de 2, la Compilación 1 se intenta primero en aproximadamente el 80 % de las solicitudes, por lo que atiende aproximadamente el 80 % de ellas mientras tenga servidores StandingBy. Si la Compilación 1 se queda sin servidores StandingBy en una región, esas solicitudes pasan a la Compilación 2, por lo que la Compilación 2 puede atender más del 20 % de las solicitudes en esa región. Sin embargo, las regiones de cada solicitud tienen prioridad, y los pesos solo deciden qué compilación atiende una solicitud dentro de una región. Para obtener más información, consulte [Reserva ante errores en otras compilaciones y regiones](#fallback-to-other-builds-and-regions).

### Implementación segura compatible con versiones anteriores

Este es el escenario más común para una actualización de una compilación a otra, en el que se actualiza el servidor de juegos y los clientes comerciales son compatibles con ambos servidores.

Los clientes harán referencia al Alias 1, que tendría la siguiente configuración:

* Compilación 1: Peso = 1

Una vez creada la Compilación 2, el Alias 1 se cambiará para ser:

* Compilación 1: Peso = 8
* Compilación 2: Peso = 2

Puede cambiar gradualmente los pesos hasta que todas las solicitudes de servidor nuevas sean atendidas por la Compilación 2. En ese momento, el peso de la Compilación 1 es 0 y puede quitarse del alias.

Un caso de uso típico de un alias es asociarlo a una versión de compatibilidad del cliente y a un modo de juego. Por ejemplo, "DeathMatch client 2.2 RETAIL". Los alias le permiten administrar esta abstracción de nivel superior mientras actualiza continuamente las compilaciones que sustentan esta experiencia. Los alias también facilitan la reversión de compilaciones si es necesario.

### Implementación no compatible con versiones anteriores

En este caso, quiere actualizar el servidor de juegos al mismo tiempo que actualiza los clientes del juego, ya que los clientes actuales del juego no son compatibles con la compilación de servidor antigua. La transición de una compilación a otra se haría de la siguiente manera:

Los clientes antiguos harán referencia al Alias 1, que tendría lo siguiente:

* Compilación 1: Peso = 1

Una vez creada la Compilación 2, los clientes nuevos harán referencia al Alias 2, que tendría lo siguiente:

* Compilación 2: Peso = 1

En este escenario, los alias se usan de forma similar a las compilaciones y no se usa su funcionalidad de multiplexación.

### Implementación inmediata compatible con versiones anteriores

Esto es similar al escenario de actualización de una compilación a otra compatible con versiones anteriores, pero con un cambio más repentino en el comportamiento de la demanda. La transición de una compilación a otra se haría de la siguiente manera:

Los clientes harán referencia al Alias 1, que tendría lo siguiente:

* Compilación 1: Peso = 1

Una vez creada la Compilación 2, el Alias 1 se cambiará para ser:

* Compilación 1: Peso = 0
* Compilación 2: Peso = 1

### Prueba de una implementación compatible con versiones anteriores

Cuando quiere actualizar el servidor de juegos, y la versión del cliente es compatible con ambos servidores, pero quiere probar la segunda versión antes de implementarla a escala para todos los jugadores. Las pruebas y la transición de una compilación a otra podrían hacerse de la siguiente manera:

Los clientes harán referencia al Alias 1, que tendría lo siguiente:

* Compilación 1: Peso = 1

Una vez creada la Compilación 2, los clientes de prueba harían referencia al Alias 2, que tendría lo siguiente:

* Compilación 2: Peso = 1

Una vez verificada la Compilación 2, el Alias 1 se cambiará para ser:

* Compilación 1: Peso = 8
* Compilación 2: Peso = 2

Gradualmente, la compilación 2 recibiría más peso y absorbería todo el tráfico.

## Reserva ante errores en otras compilaciones y regiones

Los alias pueden hacer que sus implementaciones de servidores multijugador sean más resilientes, al permitir la reserva entre varias compilaciones. Cuando solicite un servidor a un alias, enumere en `PreferredRegions` todas las regiones que ofrecen a sus jugadores una experiencia aceptable, por orden de preferencia. PlayFab Multiplayer Servers (MPS) gestiona cada solicitud de la siguiente manera:

1. MPS usa los pesos de las compilaciones para ordenar las compilaciones del alias para la solicitud. Es más probable que una compilación con un peso mayor quede en primer lugar.
2. MPS recorre sus regiones en el orden en que las enumeró. En cada región, intenta todas las compilaciones en ese orden. Omite las compilaciones que no están implementadas en la región.
3. MPS asigna un servidor de la primera compilación que tenga un servidor StandingBy. Si ninguna compilación tiene uno en la región, MPS pasa a la siguiente región. Si ninguna región tiene uno, la solicitud falla con el error `MultiplayerServerTooManyRequests`.

El orden de las regiones siempre tiene prioridad sobre los pesos de las compilaciones. Los jugadores obtienen un servidor en la región preferida que tenga capacidad, y los pesos solo deciden qué compilación los atiende en esa región. Use los pesos para expresar sus preferencias de costo y rendimiento entre compilaciones, por ejemplo, entre tamaños de máquina virtual (VM). Agregar a un alias compilaciones que cubren más regiones solo puede agregar capacidad.

Una compilación con un peso de 0 nunca se usa para asignaciones, ni siquiera como reserva. Para mantener una compilación como reserva, asígnele en su lugar un peso pequeño distinto de cero, por ejemplo, 1 frente a 999 para su compilación principal.

Si ninguna de las compilaciones del alias está implementada en ninguna de las regiones solicitadas, la solicitud falla con el error `MultiplayerServerNotFound`. Para conocer formas de evitar ambos errores, consulte [Procedimientos recomendados y lista de comprobación de lanzamiento](https://docs.xbox.com/es/services/playfab/multiplayer/servers/best-practices.md).

Por ejemplo, supongamos que una solicitud de asignación dirigida a un alias de compilación clasifica EastUS como región n.º 1 y West US como región n.º 2. Este alias de compilación asigna pesos similares a dos compilaciones, la Compilación 1 y la Compilación 2.

Supongamos que la Compilación 1 queda en primer lugar en el orden para una asignación determinada.

1. Se intenta la asignación en East US para la Compilación 1.
2. Si el paso 1 falla, se intenta la asignación en East US para la Compilación 2.
3. Si el paso 2 falla, se intenta la asignación en WestUS para la Compilación 1.
4. Si el paso 3 falla, se intenta la asignación en WestUs para la Compilación 2.

Especialmente a medida que actualiza gradualmente de una compilación a otra, este comportamiento de reserva está optimizado para que los jugadores obtengan el servidor de menor latencia incluso si una de las compilaciones tiene problemas.

## Administrar un alias de compilación con las API REST de PlayFab

> [!NOTE]
>
> Ahora puede administrar los alias de compilación en Game Manager. Para empezar, consulte la [página de información general de compilaciones](https://docs.xbox.com/es/services/playfab/multiplayer/servers/build-overview.md)

1. Cree un alias de compilación mediante la API.

   API:

   ```http theme={null}
   POST https://titleId.playfabapi.com/MultiplayerServer/CreateBuildAlias
   ```

   Cuerpo de ejemplo:

   ```json theme={null}
   {
       "AliasName":"TestingAlias",
       "BuildSelectionCriteria":
       [{
           "BuildWeightDistribution":{"9a8a4584-c81a-479c-9ef9-16d3743f7ca7":"1"}
       }]
   }
   ```

   Respuesta de ejemplo:

   ```json theme={null}
   {
       "AliasId":"97d2b0a5-7c04-4593-8451-66bbb97f94b6",
       "AliasName":"TestingAlias",
       "BuildSelectionCriteria":
       [{
           "BuildWeightDistribution":{"9a8a4584-c81a-479c-9ef9-16d3743f7ca7":"1"}
       }]
   }
   ```

   **El identificador del alias de compilación se proporciona como parte de la respuesta.**

2. Actualice cualquier parámetro del alias de compilación.

   API:

   ```http theme={null}
   POST https://titleId.playfabapi.com/MultiplayerServer/UpdateBuildAlias
   ```

   Cuerpo de ejemplo:

   ```json theme={null}
   {
       "AliasId":"97d2b0a5-7c04-4593-8451-66bbb97f94b6",
       "AliasName":"TestingAliasRenamed",
       "BuildSelectionCriteria":
       [{
           "BuildWeightDistribution":{"9a8a4584-c81a-479c-9ef9-16d3743f7ca7":"1",
           "7ac7f347-3d61-9fe9-c974-a18c4854a8a9":"1"}
       }]
   }
   ```

   Respuesta de ejemplo:

   ```json theme={null}
   {
       "AliasId":"97d2b0a5-7c04-4593-8451-66bbb97f94b6",
       "AliasName":"TestingAliasRenamed",
       "BuildSelectionCriteria":
       [{
           "BuildWeightDistribution":{"9a8a4584-c81a-479c-9ef9-16d3743f7ca7":"1",
           "7ac7f347-3d61-9fe9-c974-a18c4854a8a9":"1"}
       }]
   }
   ```

3. Elimine un alias de compilación.

   API:

   ```http theme={null}
   POST https://titleId.playfabapi.com/MultiplayerServer/DeleteBuildAlias
   ```

   Cuerpo de ejemplo:

   ```json theme={null}
   {
       "AliasId":"97d2b0a5-7c04-4593-8451-66bbb97f94b6"
   }
   ```

4. Enumere los alias de compilación.

   API:

   ```http theme={null}
   GET https://titleId.playfabapi.com/MultiplayerServer/ListBuildAliases
   ```

   Respuesta de ejemplo:

   ```json theme={null}
   [{
       "AliasId":"97d2b0a5-7c04-4593-8451-66bbb97f94b6",
       "AliasName":"TestingAliasRenamed",
       "BuildSelectionCriteria":
       [{
           "BuildWeightDistribution":{"9a8a4584-c81a-479c-9ef9-16d3743f7ca7":"1",
           "7ac7f347-3d61-9fe9-c974-a18c4854a8a9":"1"}
       }]
   }]
   ```

## Asignar mediante un alias de compilación

Para asignar mediante un alias de compilación, especifique el identificador del alias de compilación en la llamada a `RequestMultiplayerServer`.

API:

```http theme={null}
POST https://titleId.playfabapi.com/MultiplayerServer/RequestMultiplayerServer
```

Cuerpo de ejemplo:

```json theme={null}
{
    "SessionId":"6a07440c-7bcc-4e23-8b81-4934543ff966",
    "PreferredRegions":["SouthCentralUs"],
    "BuildAliasParams":
        {"AliasId":"97d2b0a5-7c04-4593-8451-66bbb97f94b6"}
}
```


## Related topics

- [Integración con PlayFab Multiplayer Servers](https://docs.xbox.com/es/services/playfab/multiplayer/matchmaking/multiplayer-servers.md)
- [Procedimientos recomendados y lista de comprobación de lanzamiento](https://docs.xbox.com/es/services/playfab/multiplayer/servers/best-practices.md)
- [Administración del resumen](https://docs.xbox.com/es/services/playfab/multiplayer/servers/quota-summary.md)
- [Asignar servidores de juegos y conectar el depurador de Visual Studio](https://docs.xbox.com/es/services/playfab/multiplayer/servers/allocating-game-servers-and-configuring-vs-debugging-tools.md)
- [Administración de memoria en el SDK unificado de PlayFab](https://docs.xbox.com/es/services/playfab/sdks/unified-sdk/memory-management.md)
