Crea una configuración

En esta página, se explica cómo registrar, editar, enumerar y ver detalles de una configuración de Game Servers en una implementación. Esta configuración define la especificación de la flota de Agones, que incluye información sobre el recuento de servidores de juegos, el búfer y la versión del servidor de juegos. En este archivo de configuración también se define la configuración de escalamiento, que especifica cómo el escalamiento automático de la flota aumenta y disminuye de forma automática para satisfacer la demanda.

Antes de comenzar

Antes de comenzar, te recomendamos que te familiarices con los conceptos clave en la Descripción general de servidores para juegos. Asegúrate de haber realizado las siguientes tareas:

  • Asegúrate de haber habilitado la API de los servicios de juego.
  • Habilitar la API de servicios de juego
  • Elige una shell que tenga gcloud CLI instalada o usa un cliente de API:
  • Cloud Shell

    Para iniciar Cloud Shell, sigue estos pasos:

    1. Ve a la consola de Google Cloud.

      Consola de Google Cloud

    2. Desde la esquina superior derecha de la consola, haz clic en el botón Activar Cloud Shell: .

    Se abrirá una sesión de Cloud Shell dentro de un marco en la parte inferior en la consola. Usa esta shell para ejecutar los comandos de gcloud.

    Shell local

    Instala la CLI de gcloud

    Verifica que hayas configurado el proyecto predeterminado que deseas para Google Cloud CLI (de lo contrario, debes especificar la marca --project de forma explícita para cada comando más adelante):

    gcloud config list project
    

    Si no puedes ejecutar el siguiente comando para configurar un proyecto predeterminado, reemplaza PROJECT_ID por el ID del proyecto deseado:

    gcloud config set project PROJECT_ID
    

    Ejecuta el siguiente comando para verificar tu versión de Google Cloud CLI. Game Servers requiere la versión 306.0.0 o una posterior de gcloud CLI.

    gcloud version
    

    Para actualizar la instalación, ejecuta el siguiente comando:

    gcloud components update
    

    curl / PowerShell

    Para usar la API de REST con curl o Windows PowerShell, haz lo siguiente:

    1. Crea una cuenta de servicio.
    2. Descarga una clave privada como un archivo JSON.
    3. Configura la variable de entorno GOOGLE_APPLICATION_CREDENTIALS en la ruta del archivo JSON que contiene tus credenciales. Esta variable solo se aplica a la sesión actual de Cloud Shell. Por lo tanto, si abres una sesión nueva, deberás volver a configurar la variable.

    Biblioteca cliente

    Google Cloud Game Servers se puede controlar de manera programática mediante una biblioteca cliente. Consulta Descripción general de bibliotecas cliente a fin de obtener instrucciones para usar la biblioteca y la autenticación.

Crea una configuración

Asegúrate de haber creado una implementación de Game Servers.

Consola

  1. En la consola de Google Cloud, ve a la página Implementaciones de servidor de juegos.

    Ir a Game Servers

  2. Busca una implementación en la tabla. En la última columna de la tabla, haz clic en la elipsis y selecciona List configs. Puedes ver los archivos de configuración activos e inactivos para la implementación desde esta página.

  3. A fin de crear una configuración nueva para la implementación, haz clic en Create Config.

  4. En el cuadro Config name, ingresa un identificador único para esta configuración.

  5. En el cuadro Description, ingresa una descripción para esta configuración (opcional).

  6. En el cuadro Fleet config name, ingresa un identificador único para esta configuración de flota.

  7. En el cuadro Fleet spec, ingresa la especificación de la flota.

  8. En Scaling config, puedes especificar una o más configuraciones que aumentan o reducen de forma automática la flota (opcional). Haz clic en Add para agregar una configuración de escalamiento.

    1. En el cuadro Scaling Config Name, ingresa un identificador único para esta configuración de escalamiento.
    2. De forma opcional, en los cuadros Start Time y End Time, programa el período para el que estará activa esta configuración de escalamiento. Consulta Crea programas de escalamiento para obtener más información.
    3. En el cuadro Autoscaper spec, ingresa la especificación de escalamiento.

gcloud

Puedes crear una configuración de Game Servers en una implementación mediante Google Cloud CLI.

Sigue estos pasos a fin de crear una configuración de servidor para videojuegos:

  1. Copia esta especificación de flota en un archivo.

    - name: fleet-spec-1
      fleetSpec:
       replicas: 10
       scheduling: Packed
       strategy:
         type: RollingUpdate
         rollingUpdate:
           maxSurge: 25%
           maxUnavailable: 25%
       template:
         metadata:
           labels:
             gameName: udp-server
         spec:
           ports:
           - name: default
             portPolicy: Dynamic
             containerPort: 7654
             protocol: UDP
           health:
             initialDelaySeconds: 30
             periodSeconds: 60
           sdkServer:
             logLevel: Info
             grpcPort: 9357
             httpPort: 9358
           template:
             spec:
               containers:
               - name: dedicated
                 image: gcr.io/agones-images/udp-server:0.21
                 imagePullPolicy: Always
                 resources:
                   requests:
                     memory: 200Mi
                     cpu: 500m
                   limits:
                     memory: 200Mi
                     cpu: 500m
    
  2. Ejecuta el siguiente comando y reemplaza los valores del marcador de posición, como deploymentID y configID, por los valores apropiados:

    gcloud game servers configs create configID --deployment deploymentID --fleet-configs-file fleetSpecFile
    

    Los marcadores de posición de variables corresponden a las siguientes descripciones:

  • configID es un identificador único que puedes especificar para esta configuración.
  • deploymentID es el identificador único de la implementación.
  • fleetSpecFile es la ruta al archivo con la especificación de la flota de Agones.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es tu ID de tu proyecto de Google Cloud que aparece en Configuración de IAM.
  • DEPLOYMENT_ID: Es el identificador definido por el usuario para la implementación.
  • CONFIG_ID: Es un identificador definido por el usuario para la configuración.

Cuerpo JSON de la solicitud:

{
  "fleetConfigs": [
    {
      "name": "fleet-spec-1",
      "fleetSpec": "{
        \"replicas\": 10,
        \"scheduling\": \"Packed\",
        \"template\": {
          \"metadata\": {
            \"labels\": {
              \"gameName\": \"udp-server\"
            }
          },
          \"spec\": {
            \"ports\": [
              {
                \"name\": \"default\",
                \"portPolicy\": \"Dynamic\",
                \"containerPort\": 7654,
                \"protocol\": \"UDP\"
              }
            ],
            \"health\": {
              \"periodSeconds\": 60,
              \"initialDelaySeconds\": 30
            },
            \"sdkServer\": {
              \"logLevel\": \"Info\",
              \"grpcPort\": 9357,
              \"httpPort\": 9358
            },
            \"template\": {
              \"spec\": {
                \"containers\": [
                  {
                    \"name\": \"dedicated\",
                    \"image\": \"gcr.io/agones-images/udp-server:0.21\",
                    \"imagePullPolicy\": \"Always\",
                    \"resources\": {
                      \"requests\": {
                        \"memory\": \"200Mi\",
                        \"cpu\": \"500m\"
                      },
                      \"limits\": {
                        \"memory\": \"200Mi\",
                        \"cpu\": \"500m\"
                      }
                    }
                  }
                ]
              }
            }
          }
        }
      }"
    }
  ]
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.gaming.v1.OperationMetadata",
    "createTime": CREATE_TIME,
    "target": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID/configs/CONFIG_ID",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Edita las opciones de configuración

No puedes editar una configuración de Game Servers porque las opciones de configuración son inmutables. Si deseas editar una configuración, cópiala (consulta los detalles de la configuración), edítala de forma local y usa la versión actualizada para crear una configuración nueva.

Enumera las opciones de configuración

Consola

  1. En la consola de Google Cloud, ve a la página Implementaciones de servidor de juegos.

    Ir a Game Servers

  2. Busca una implementación en la tabla. En la última columna de la tabla, haz clic en la elipsis y selecciona List configs. Puedes ver los archivos de configuración activos e inactivos para la implementación desde esta página.

gcloud

Puedes enumerar los parámetros de configuración con Google Cloud CLI.

Para enumerar todas las opciones de configuración, ejecuta el siguiente comando:

gcloud game servers configs list

Para enumerar todas las opciones de configuración en una implementación, ejecuta el siguiente comando y reemplaza deploymentID por la implementación superior en la que deseas enumerar las configuraciones:

gcloud game servers configs list --deployment=deploymentID

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es tu ID de tu proyecto de Google Cloud que aparece en Configuración de IAM.
  • DEPLOYMENT_ID: Es el identificador definido por el usuario para la implementación.

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "gameServerConfigs": [
    {
      "name": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID/configs/MY-CONFIG-1",
      "createTime": CREATE_TIME,
      "updateTime": UPDATE_TIME,
      "fleetConfigs": [
        {
          "fleetSpec": ...
          "name": "MY-CONFIG-1"
        }
      ],
      "description": "Config 1"
    },
    {
      "name": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID/configs/MY-CONFIG-2",
      "createTime": CREATE_TIME,
      "updateTime": UPDATE_TIME,
      "fleetConfigs": [
        {
          "fleetSpec": ...
          "name": "MY-CONFIG-2"
        }
      ],
      "description": "Config 2"
    },
  ]
}

Visualiza detalles sobre una configuración

Consola

  1. En la consola de Google Cloud, ve a la página Implementaciones de servidor de juegos.

    Ir a Game Servers

  2. Busca una implementación en la tabla. En la última columna de la tabla, haz clic en la elipsis y selecciona List configs. Puedes ver los archivos de configuración activos e inactivos para la implementación desde esta página.

  3. Busca una configuración en la tabla. En la última columna de la tabla, haz clic en la elipsis y selecciona View config.

gcloud

Puedes encontrar detalles sobre un archivo de configuración, como la hora de creación, con Google Cloud CLI:

Para ver los detalles de una configuración, ejecuta el siguiente comando y reemplaza los valores del marcador de posición, como deploymentID y configID, con los valores apropiados:

gcloud game servers configs describe configID --deployment deploymentID

El resultado te brinda los detalles de la configuración.

Los marcadores de posición de variables corresponden a las siguientes descripciones:

  • configID es el identificador único que especificaste para esta configuración de servidor para videojuegos.
  • deploymentID es un identificador único para la implementación superior.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es tu ID de tu proyecto de Google Cloud que aparece en Configuración de IAM.
  • DEPLOYMENT_ID: Es el identificador definido por el usuario para la implementación.
  • CONFIG_ID: Es el identificador definido por el usuario para la configuración.

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID/configs/CONFIG_ID",
  "createTime": CREATE_TIME,
  "updateTime": UPDATE_TIME,
  "fleetConfigs": [
    {
      "fleetSpec": ...
      "name": "CONFIG_ID"
    }
  ],
  "description": "My config"
}

¿Qué sigue?