Criação de config

Nesta página, explicamos como registrar, editar, listar e visualizar detalhes de um config do Game Servers em uma implantação. Esta configuração define a especificação da frota Agones, que inclui informações sobre a contagem do servidor de jogo, o buffer e a versão do servidor do jogo. Esta configuração também define a configuração de escalonamento, que especifica como a frota é escalonada automaticamente para atender à demanda.

Antes de começar

Antes de começar, recomendamos que você se familiarize com os principais conceitos na Visão geral do Game Servers. Verifique se você também realizou as seguintes tarefas:

  • Verifique se você ativou a API Game Services.
  • Ativar a API Game Services
  • Escolha um shell com a CLI gcloud instalada ou use um cliente de API:
  • Cloud Shell

    Para iniciar o Cloud Shell, execute os seguintes passos:

    1. Acesse o Console do Google Cloud.

      Console do Google Cloud

    2. No canto superior direito do console, clique no botão Ativar Cloud Shell:

    Uma sessão do Cloud Shell é aberta dentro de um quadro inferior no console. Use esse shell para executar comandos gcloud.

    Shell local

    Instale a CLI gcloud.

    Verifique se você definiu o projeto padrão desejado para a Google Cloud CLI. Caso contrário, será necessário especificar a sinalização --project explicitamente para cada comando mais tarde:

    gcloud config list project
    

    Caso contrário, execute o seguinte comando para definir um projeto padrão, substituindo PROJECT_ID pelo ID do projeto que você quer:

    gcloud config set project PROJECT_ID
    

    Execute o seguinte comando para verificar a versão da Google Cloud CLI. O Game Servers requer a versão 306.0.0 ou mais recente da CLI gcloud.

    gcloud version
    

    Para atualizar a instalação, execute o seguinte comando:

    gcloud components update
    

    curl / PowerShell

    Para usar a API REST com curl ou o Windows PowerShell, faça o seguinte:

    1. Crie uma conta de serviço.
    2. Faça o download de uma chave privada como um arquivo JSON.
    3. Defina a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS como o caminho do arquivo JSON que contém suas credenciais. Essa variável só se aplica à sessão de shell atual. Assim, se você abrir uma nova sessão, precisará definir a variável novamente.

    Biblioteca de cliente

    O Game Servers do Google Cloud pode ser controlado de maneira programática usando uma biblioteca de cliente. Consulte Visão geral das bibliotecas de cliente para instruções sobre como usar a biblioteca e fazer a autenticação.

Como criar uma configuração

Verifique se você criou uma implantação do Game Servers.

Console

  1. No console do Google Cloud, acesse a página Implantações do servidor de jogos.

    Acessar o Game Servers

  2. Encontre uma implantação na tabela. Na última coluna da tabela, clique nas reticências e selecione Configurações da lista. É possível ver as configurações ativas e inativas da implantação nessa página.

  3. Para criar uma nova configuração para a implantação, clique em Criar configuração.

  4. Na caixa Nome da configuração, digite um identificador exclusivo para essa configuração.

  5. (Opcional) Na caixa Descrição, insira uma descrição para essa configuração.

  6. Na caixa Nome da configuração da frota, insira um identificador exclusivo para a configuração da frota.

  7. Na caixa Especificação da frota, insira a especificação da frota.

  8. (Opcional) Em Configuração de escalonamento, é possível especificar uma ou mais configurações que escalonam automaticamente a frota para cima ou para baixo. Clique em Adicionar para incluir uma configuração de escalonamento.

    1. Na caixa Como escalonar o nome da configuração, insira um identificador exclusivo para essa configuração de escalonamento.
    2. (Opcional) Nas caixas Hora de início e Hora de término, programe o período em que essa configuração de escalonamento ficará ativa. Consulte Como criar programações de escalonamento para mais informações.
    3. Na caixa Especificação do escalonamento automático, insira a especificação de escalonamento.

gcloud

É possível criar uma configuração do Game Servers em uma implantação usando a Google Cloud CLI.

Para criar uma configuração de servidor de jogo:

  1. Copie esta especificação de frota em um arquivo.

    - 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. Execute o seguinte comando e substitua os valores do marcador, como deploymentID e configID, pelos valores apropriados:

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

    Os marcadores das variáveis correspondem às seguintes descrições:

  • configID é um identificador exclusivo que pode ser especificado para essa configuração.
  • deploymentID é o identificador exclusivo da implantação.
  • fleetSpecFile é o caminho do arquivo com a especificação da frota do Agones.

REST

Antes de usar os dados da solicitação, faça as substituições a seguir:

  • PROJECT_ID: o ID do projeto do Google Cloud listado nas Configurações do IAM
  • DEPLOYMENT_ID: o identificador definido pelo usuário para a implantação
  • CONFIG_ID: um identificador definido pelo usuário para a configuração

Solicitar corpo JSON:

{
  "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 a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

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

Como editar configs

Não é possível editar uma configuração do Game Servers porque as configurações são imutáveis. Se você quiser editar uma configuração, copie-a (ver detalhes da configuração), edite-a localmente e use a versão atualizada para criar uma nova configuração.

Como listar configurações

Console

  1. No console do Google Cloud, acesse a página Implantações do servidor de jogos.

    Acessar o Game Servers

  2. Encontre uma implantação na tabela. Na última coluna da tabela, clique nas reticências e selecione Configurações da lista. É possível ver as configurações ativas e inativas da implantação nessa página.

gcloud

É possível listar configs usando a Google Cloud CLI.

Para listar todas as configurações, execute o seguinte comando:

gcloud game servers configs list

Para listar todos as configurações em uma implantação, execute o seguinte comando e substitua deploymentID pela implantação pai em que você quer listar as configurações:

gcloud game servers configs list --deployment=deploymentID

REST

Antes de usar os dados da solicitação, faça as substituições a seguir:

  • PROJECT_ID: o ID do projeto do Google Cloud listado nas Configurações do IAM
  • DEPLOYMENT_ID: o identificador definido pelo usuário para a implantação

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "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"
    },
  ]
}

Como visualizar detalhes de uma configuração

Console

  1. No console do Google Cloud, acesse a página Implantações do servidor de jogos.

    Acessar o Game Servers

  2. Encontre uma implantação na tabela. Na última coluna da tabela, clique nas reticências e selecione Configurações da lista. É possível ver as configurações ativas e inativas da implantação nessa página.

  3. Encontre uma configuração na tabela. Na última coluna da tabela, clique nas reticências e selecione Visualizar configuração.

gcloud

É possível encontrar detalhes sobre uma configuração, como o horário de criação, usando a Google Cloud CLI:

Para visualizar os detalhes de uma configuração, execute o seguinte comando e substitua os valores do marcador, como deploymentID e configID, pelos valores apropriados:

gcloud game servers configs describe configID --deployment deploymentID

A saída mostra os detalhes da configuração.

Os marcadores das variáveis correspondem às seguintes descrições:

  • configID é o identificador exclusivo que você especificou para essa configuração do servidor de jogo.
  • deploymentID é um identificador exclusivo da implantação pai.

REST

Antes de usar os dados da solicitação, faça as substituições a seguir:

  • PROJECT_ID: o ID do projeto do Google Cloud listado nas Configurações do IAM
  • DEPLOYMENT_ID: o identificador definido pelo usuário para a implantação
  • CONFIG_ID: o identificador definido pelo usuário para o realm

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

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

A seguir