Creazione di una configurazione

Questa pagina spiega come registrare, modificare, elencare e visualizzare i dettagli di una configurazione di Game Servers in un deployment. Questa configurazione definisce la specifica del parco risorse Agones, che include informazioni sul numero di server di gioco, sul buffer e sulla versione del server di gioco. Questa configurazione definisce anche la configurazione di scalabilità, che specifica come viene eseguito lo scale up e lo scale down automatico del parco risorse per soddisfare la domanda.

Prima di iniziare

Prima di iniziare, ti consigliamo di acquisire familiarità con i concetti principali nella panoramica dei server di gioco. Assicurati di aver eseguito anche le seguenti attività:

  • Assicurati di aver attivato l'API Game Services.
  • Abilita l'API Game Services
  • Scegli una shell con gcloud CLI installata o utilizza un client API:
  • Cloud Shell

    Per avviare Cloud Shell, esegui questi passaggi:

    1. Vai alla console Google Cloud.

      Console Google Cloud

    2. Nell'angolo in alto a destra della console, fai clic sul pulsante Attiva Cloud Shell:

    Una sessione di Cloud Shell si apre all'interno di un frame più in basso nella console. Utilizza questa shell per eseguire i comandi gcloud.

    Shell locale

    Installare l'interfaccia a riga di comando gcloud.

    Verifica di aver impostato il progetto predefinito desiderato per Google Cloud CLI (in caso contrario dovrai specificare il flag --project in modo esplicito per ogni comando in un secondo momento):

    gcloud config list project
    

    In caso contrario, puoi eseguire il seguente comando per impostare un progetto predefinito, sostituendo PROJECT_ID con l'ID progetto desiderato :

    gcloud config set project PROJECT_ID
    

    Esegui il comando seguente per verificare la tua versione di Google Cloud CLI. Game Servers richiede la versione 306.0.0 o successiva dellgcloud CLI.

    gcloud version
    

    Per aggiornare l'installazione, esegui il comando seguente:

    gcloud components update
    

    curl / PowerShell

    Per utilizzare l'API REST con curl o Windows PowerShell, segui questi passaggi:

    1. Crea un account di servizio.
    2. Scarica una chiave privata come file JSON.
    3. Imposta la variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS sul percorso del file JSON che contiene le tue credenziali. Questa variabile si applica solo alla sessione di shell attuale. Pertanto, se apri una nuova sessione, imposta di nuovo la variabile.

    Libreria client

    I server di gioco Google Cloud possono essere controllati in modo programmatico utilizzando una libreria client. Per istruzioni sull'utilizzo della libreria e l'autenticazione, consulta la panoramica sulle librerie client.

Creazione di una configurazione

Assicurati di aver creato un deployment di Game Servers.

Console

  1. Nella console Google Cloud, vai alla pagina Deployment di server di giochi.

    Vai a Game Servers

  2. Individua un deployment nella tabella. Nell'ultima colonna della tabella, fai clic sui puntini di sospensione e seleziona Elenca configurazioni. In questa pagina puoi visualizzare le configurazioni attive e inattive per il deployment.

  3. Per creare una nuova configurazione per il deployment, fai clic su Create Config (Crea configurazione).

  4. Nella casella Nome configurazione, inserisci un identificatore univoco per questa configurazione.

  5. (Facoltativo) Nella casella Descrizione, inserisci una descrizione per questa configurazione.

  6. Nella casella Nome configurazione parco risorse, inserisci un identificatore univoco per questa configurazione del parco risorse.

  7. Nella casella Specifiche del parco risorse, inserisci la specifica del parco risorse.

  8. (Facoltativo) In Configurazione di scalabilità, puoi specificare una o più configurazioni che consentono di fare lo scale up o lo scale down automatico del parco risorse. Fai clic su Aggiungi per aggiungere una configurazione di scalabilità.

    1. Nella casella Nome configurazione di scalabilità, inserisci un identificatore univoco per questa configurazione di scalabilità.
    2. (Facoltativo) Nelle caselle Ora di inizio e Ora di fine, pianifica il periodo di tempo in cui la configurazione di scalabilità verrà attivata. Per ulteriori informazioni, consulta Creazione di pianificazioni di scalabilità.
    3. Nella casella Specifiche autoscaper, inserisci la specifica di scalabilità.

gcloud

Puoi creare una configurazione di Game Servers in un deployment utilizzando Google Cloud CLI.

Per creare una configurazione del server di gioco:

  1. Copia la specifica del parco risorse in un file.

    - 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. Esegui questo comando e sostituisci i valori segnaposto, ad esempio deploymentID e configID, con i valori appropriati:

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

    I segnaposto delle variabili corrispondono alle seguenti descrizioni:

  • configID è un identificatore univoco che puoi specificare per questa configurazione.
  • deploymentID è l'identificatore univoco del deployment.
  • fleetSpecFile è il percorso del file con la specifica del parco risorse Agones.

REST

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto Google Cloud elencato nelle impostazioni IAM
  • DEPLOYMENT_ID: l'identificatore definito dall'utente per il deployment
  • CONFIG_ID: un identificatore definito dall'utente per la configurazione

Corpo JSON richiesta:

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

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

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

Modifica delle configurazioni

Non è possibile modificare una configurazione di Game Servers in quanto le configurazioni sono immutabili. Se vuoi modificare una configurazione, copiala (visualizza i dettagli della configurazione), modificala localmente e utilizza la versione aggiornata per creare una nuova configurazione.

Configurazioni elenco

Console

  1. Nella console Google Cloud, vai alla pagina Deployment di server di giochi.

    Vai a Game Servers

  2. Individua un deployment nella tabella. Nell'ultima colonna della tabella, fai clic sui puntini di sospensione e seleziona Elenca configurazioni. In questa pagina puoi visualizzare le configurazioni attive e inattive per il deployment.

gcloud

Puoi elencare le configurazioni utilizzando Google Cloud CLI.

Per elencare tutte le configurazioni, esegui il comando seguente:

gcloud game servers configs list

Per elencare tutte le configurazioni di un deployment, esegui il comando seguente e sostituisci deploymentID con il deployment principale in cui vuoi elencare le configurazioni:

gcloud game servers configs list --deployment=deploymentID

REST

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto Google Cloud elencato nelle impostazioni IAM
  • DEPLOYMENT_ID: l'identificatore definito dall'utente per il deployment

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

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

Visualizzazione dei dettagli di una configurazione

Console

  1. Nella console Google Cloud, vai alla pagina Deployment di server di giochi.

    Vai a Game Servers

  2. Individua un deployment nella tabella. Nell'ultima colonna della tabella, fai clic sui puntini di sospensione e seleziona Elenca configurazioni. In questa pagina puoi visualizzare le configurazioni attive e inattive per il deployment.

  3. Trova una configurazione nella tabella. Nell'ultima colonna della tabella, fai clic sui puntini di sospensione e seleziona Visualizza configurazione.

gcloud

Puoi trovare dettagli su una configurazione, ad esempio l'ora di creazione, utilizzando Google Cloud CLI:

Per visualizzare i dettagli di una configurazione, esegui il comando seguente e sostituisci i valori segnaposto, ad esempio deploymentID e configID, con i valori appropriati:

gcloud game servers configs describe configID --deployment deploymentID

L'output fornisce i dettagli della configurazione.

I segnaposto delle variabili corrispondono alle seguenti descrizioni:

  • configID è l'identificatore univoco specificato per questa configurazione del server di gioco.
  • deploymentID è un identificatore univoco per il deployment padre.

REST

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto Google Cloud elencato nelle impostazioni IAM
  • DEPLOYMENT_ID: l'identificatore definito dall'utente per il deployment
  • CONFIG_ID: l'identificatore definito dall'utente per la configurazione

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

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

Passaggi successivi