Konfiguration erstellen

Auf dieser Seite wird erläutert, wie Sie eine Game Servers-Konfiguration in einer Bereitstellung registrieren, bearbeiten, auflisten und Details dazu aufrufen. Diese Konfiguration definiert die Agones Fleet-Spezifikation, die Informationen zur Anzahl der Gameserver, zum Puffer und zur Gameserver-Version enthält. Diese Konfiguration definiert auch die Skalierungskonfiguration, die angibt, wie die Flotte automatisch und nach Bedarf skaliert wird.

Hinweis

Bevor Sie beginnen, sollten Sie sich mit den wichtigsten Konzepten in der Übersicht über Game Servers vertraut machen. Führen Sie außerdem die folgenden Aufgaben aus:

  • Prüfen Sie, ob die Game Services API aktiviert ist.
  • Game Services API aktivieren
  • Wählen Sie entweder eine Shell mit installierter gcloud-CLI aus oder verwenden Sie einen API-Client:
  • Cloud Shell

    So starten Sie Cloud Shell:

    1. Rufen Sie die Google Cloud Console auf.

      Google Cloud Console

    2. Klicken Sie in der oberen rechten Ecke der Console auf die Schaltfläche Cloud Shell aktivieren:

    In einem Frame im unteren Teil der Console wird eine Cloud Shell-Sitzung geöffnet. Mit dieser Shell führen Sie gcloud-Befehle aus.

    Lokale Shell

    Installieren Sie die gcloud CLI.

    Prüfen Sie, ob Sie das gewünschte Standardprojekt für die Google Cloud CLI festgelegt haben. Andernfalls müssen Sie das Flag --project später für jeden Befehl explizit angeben:

    gcloud config list project
    

    Wenn Sie den folgenden Befehl nicht ausführen können, um ein Standardprojekt festzulegen, ersetzen Sie PROJECT_ID durch Ihre gewünschte Projekt-ID:

    gcloud config set project PROJECT_ID
    

    Führen Sie den folgenden Befehl aus, um Ihre Version der Google Cloud CLI zu prüfen. Für Game Servers ist mindestens die Version 306.0.0 der gcloud CLI erforderlich.

    gcloud version
    

    Aktualisieren Sie Ihre Installation mit dem folgenden Befehl:

    gcloud components update
    

    curl / PowerShell

    So verwenden Sie die REST API mit curl oder Windows PowerShell:

    1. Erstellen Sie ein Dienstkonto:
    2. Laden Sie einen privaten Schlüssel als JSON-Datei herunter.
    3. Legen Sie die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS auf den Pfad der JSON-Datei fest, die Ihre Anmeldedaten enthält. Diese Variable gilt nur für Ihre aktuelle Shell-Sitzung. Wenn Sie eine neue Sitzung öffnen, müssen Sie die Variable neu festlegen.

    Clientbibliothek

    Google Cloud Game Servers können mithilfe einer Clientbibliothek programmatisch gesteuert werden. Wie Sie die Bibliothek und die Authentifizierung verwenden, erfahren Sie in der Übersicht zu Clientbibliotheken.

Konfiguration erstellen

Sie müssen ein Game Servers Deployment erstellt haben.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Bereitstellungen von Game Server auf.

    Zu Game Servers

  2. Suchen Sie ein Deployment in der Tabelle. Klicken Sie in der letzten Tabellenspalte auf die drei Punkte und wählen Sie Konfigurationen auflisten aus. Auf dieser Seite können Sie die aktiven und inaktiven Konfigurationen für das Deployment aufrufen.

  3. Klicken Sie auf Konfiguration erstellen, um eine neue Konfiguration für das Deployment zu erstellen.

  4. Geben Sie im Feld Name der Konfiguration eine eindeutige ID für diese Konfiguration ein.

  5. (Optional) Geben Sie im Feld Beschreibung eine Beschreibung für diese Konfiguration ein.

  6. Geben Sie im Feld Name der Flex-Konfiguration eine eindeutige ID für diese Flotte-Konfiguration ein.

  7. Geben Sie im Feld Fleet specification die Flotten-Spezifikation ein.

  8. (Optional) Unter Skalierungskonfiguration können Sie eine oder mehrere Konfigurationen angeben, die den Gerätepool automatisch nach oben oder unten skalieren. Klicken Sie auf Hinzufügen, um eine Skalierungskonfiguration hinzuzufügen.

    1. Geben Sie im Feld Skalierungsname eine eindeutige ID für diese Skalierungskonfiguration ein.
    2. Optional: Legen Sie in den Feldern Startzeit und Endzeit den Zeitraum fest, in dem diese Skalierungskonfiguration aktiviert werden soll. Weitere Informationen finden Sie unter Skalierungspläne erstellen.
    3. Geben Sie im Feld Autoscaper-Spezifikation die Skalierungsspezifikation ein.

gcloud

Sie können eine Game Servers-Konfiguration in einer Bereitstellung mit der Google Cloud CLI erstellen.

So erstellen Sie eine Game Servers-Konfiguration:

  1. Kopieren Sie diese Fleet-Spezifikation in eine Datei.

    - 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. Führen Sie den folgenden Befehl aus und ersetzen Sie die Platzhalterwerte wie deploymentID und configID durch die entsprechenden Werte:

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

    Die Variablenplatzhalter entsprechen den folgenden Beschreibungen:

  • configID ist eine eindeutige Kennung, die Sie für diese Konfiguration angeben können.
  • deploymentID ist die eindeutige Kennung für die Bereitstellung.
  • fleetSpecFile ist der Pfad zur Datei mit der Agones Fleet-Spezifikation.

REST UND BEFEHLSZEILE

Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID, die unter IAM-Einstellungen aufgeführt ist
  • DEPLOYMENT_ID: die benutzerdefinierte Kennung für das Deployment
  • CONFIG_ID: eine benutzerdefinierte Kennung für die Konfiguration

JSON-Text der Anfrage:

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

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten in etwa folgende JSON-Antwort erhalten:

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

Konfigurationen bearbeiten

Sie können eine Game Servers-Konfiguration nicht bearbeiten, da Konfigurationen unveränderlich sind. Wenn Sie eine Konfiguration bearbeiten möchten, kopieren Sie die Konfiguration (Konfigurationsdetails anzeigen), bearbeiten Sie sie lokal und verwenden Sie die aktualisierte Version, um eine neue Konfiguration zu erstellen.

Konfigurationen auflisten

Console

  1. Rufen Sie in der Google Cloud Console die Seite Bereitstellungen von Game Server auf.

    Zu Game Servers

  2. Suchen Sie ein Deployment in der Tabelle. Klicken Sie in der letzten Tabellenspalte auf die drei Punkte und wählen Sie Konfigurationen auflisten aus. Auf dieser Seite können Sie die aktiven und inaktiven Konfigurationen für das Deployment aufrufen.

gcloud

Sie können Konfigurationen über die Google Cloud CLI auflisten.

Führen Sie den folgenden Befehl aus, um alle Konfigurationen aufzulisten:

gcloud game servers configs list

Um alle Konfigurationen in einem Deployment aufzulisten, führen Sie den folgenden Befehl aus und ersetzen Sie deploymentID durch das übergeordnete Deployment, für das Sie die Konfigurationen auflisten möchten:

gcloud game servers configs list --deployment=deploymentID

REST UND BEFEHLSZEILE

Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID, die unter IAM-Einstellungen aufgeführt ist
  • DEPLOYMENT_ID: die benutzerdefinierte Kennung für das Deployment

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten in etwa folgende JSON-Antwort erhalten:

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

Konfigurationsdetails ansehen

Console

  1. Rufen Sie in der Google Cloud Console die Seite Bereitstellungen von Game Server auf.

    Zu Game Servers

  2. Suchen Sie ein Deployment in der Tabelle. Klicken Sie in der letzten Tabellenspalte auf die drei Punkte und wählen Sie Konfigurationen auflisten aus. Auf dieser Seite können Sie die aktiven und inaktiven Konfigurationen für das Deployment aufrufen.

  3. Suchen Sie in der Tabelle nach einer Konfiguration. Klicken Sie in der letzten Tabellenspalte auf die drei Punkte und wählen Sie Konfiguration anzeigen aus.

gcloud

Details zu einer Konfiguration, z. B. den Erstellungszeitpunkt, finden Sie über die Google Cloud CLI:

Führen Sie den folgenden Befehl aus, um die Details einer Konfiguration aufzurufen, und ersetzen Sie die Platzhalterwerte wie deploymentID und configID durch die entsprechenden Werte:

gcloud game servers configs describe configID --deployment deploymentID

Die Ausgabe enthält die Details der Konfiguration.

Die Variablenplatzhalter entsprechen den folgenden Beschreibungen:

  • configID ist die eindeutige Kennung, die Sie für diese Gameserver-Konfiguration angegeben haben.
  • deploymentID ist eine eindeutige Kennung für die übergeordnete Bereitstellung.

REST UND BEFEHLSZEILE

Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID, die unter IAM-Einstellungen aufgeführt ist
  • DEPLOYMENT_ID: die benutzerdefinierte Kennung für das Deployment
  • CONFIG_ID: die benutzerdefinierte Kennung für die Konfiguration

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten in etwa folgende JSON-Antwort erhalten:

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

Weitere Informationen