구성 만들기

이 페이지에서는 배포에서 Game Servers 구성의 세부정보를 등록, 수정, 나열, 확인하는 방법을 설명합니다. 이 구성은 게임 서버 수, 버퍼, 게임 서버 버전에 대한 정보가 포함된 Agones Fleet 사양을 정의합니다. 이 구성은 수요에 따라 Fleet이 자동으로 확장 및 축소되는 방식을 지정하는 확장 구성도 정의합니다.

시작하기 전에

시작하기 전에 Game Servers 개요의 주요 개념을 숙지하는 것이 좋습니다. 또한 다음 태스크를 수행했는지 확인합니다.

  • Game Services API가 사용 설정되어 있는지 확인합니다.
  • Game Services API 사용 설정
  • Cloud SDK가 설치된 셸을 선택하거나 API 클라이언트를 사용하세요.
  • Cloud Shell

    Cloud Shell을 시작하려면 다음 단계를 수행하세요.

    1. Google Cloud Console로 이동합니다.

      Google Cloud Console

    2. Console의 오른쪽 상단에서 Cloud Shell 활성화 버튼을 클릭합니다.

    Console 하단의 프레임에서 Cloud Shell 세션이 열립니다. 이 셸을 사용하여 gcloud 명령어를 실행합니다.

    로컬 셸

    gcloud를 설치하려면 gcloud 명령줄 도구가 포함된 Cloud SDK를 설치합니다.

    gcloud 명령줄 도구에 대해 원하는 기본 프로젝트를 설정했는지 확인합니다. 그렇지 않으면 나중에 각 명령어에 대해 명시적으로 --project 플래그를 지정해야 합니다.

    gcloud config list project
    

    사용할 수 없는 경우 다음 명령어를 실행하여 기본 프로젝트를 설정하고 PROJECT_ID를 원하는 프로젝트 ID로 바꾸세요.

    gcloud config set project PROJECT_ID
    

    다음 명령어를 실행하여 Google Cloud SDK의 버전을 확인합니다. Game Servers에는 306.0.0 이상의 SDK 버전이 필요합니다.

    gcloud version
    

    설치를 업데이트하려면 다음 명령어를 실행합니다.

    gcloud components update
    

    curl / PowerShell

    curl 또는 Windows PowerShell에서 REST API를 사용하려면 다음을 수행합니다.

    1. 서비스 계정 만들기.
    2. 비공개 키를 JSON 파일로 다운로드합니다.
    3. GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 서비스 계정 키가 포함된 JSON 파일의 경로로 설정합니다. 이 변수는 현재 셸 세션에만 적용되므로, 새 세션을 열 경우, 변수를 다시 설정합니다.

    클라이언트 라이브러리

    클라이언트 라이브러리를 사용하여 Google Cloud Game Servers를 프로그래매틱 방식으로 제어할 수 있습니다. 라이브러리 사용 및 인증에 대한 안내는 클라이언트 라이브러리 개요를 참조하세요.

구성 만들기

Game Servers 배포를 생성했는지 확인합니다.

Console

  1. Cloud Console에서 Game Server 배포 페이지로 이동합니다.

    Game Servers로 이동

  2. 테이블에서 배포를 찾습니다. 마지막 테이블 열에서 줄임표 를 클릭하고 구성 나열을 선택합니다. 이 페이지에서 배포의 활성 및 비활성 구성을 볼 수 있습니다.

  3. 배포를 위한 새 구성을 만들려면 구성 만들기를 클릭합니다.

  4. 구성 이름 상자에 이 구성의 고유한 식별자를 입력합니다.

  5. (선택사항) 설명 상자에 이 구성의 설명을 입력합니다.

  6. 플릿 구성 이름 상자에 이 플릿 구성의 고유 식별자를 입력합니다.

  7. 플릿 사양 상자에 플릿 사양을 입력합니다.

  8. (선택사항) 확장 구성에서 플릿을 자동으로 확장 또는 축소하는 구성을 하나 이상 지정할 수 있습니다. 추가를 클릭하여 확장 구성을 추가합니다.

    1. 확장 구성 이름 상자에 이 확장 구성의 고유 식별자를 입력합니다.
    2. (선택사항) 시작 시간종료 시간 상자에서 이 확장 구성이 활성화되는 기간을 예약합니다. 자세한 내용은 확장 일정 만들기를 참조하세요.
    3. 자동 확장 사양 상자에 확장 사양을 입력합니다.

gcloud

gcloud 명령줄 도구를 사용하여 배포에서 Game Servers 구성을 만들 수 있습니다.

게임 서버 구성을 만들려면 다음 안내를 따르세요.

  1. 이 플릿 사양을 파일에 복사합니다.

    - 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. 다음 명령어를 실행하고 deploymentIDconfigID 같은 자리표시자 값을 적절한 값으로 바꿉니다.

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

    변수 자리표시자는 다음 설명에 해당됩니다.

  • configID는 이 구성에 지정할 수 있는 고유 식별자입니다.
  • deploymentID는 배포의 고유 식별자입니다.
  • fleetSpecFile은 Agones 플릿 사양이 포함된 파일 경로입니다.

REST 및 명령줄

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: IAM 설정에 나열된 Google Cloud 프로젝트 ID입니다.
  • DEPLOYMENT_ID: 배포의 사용자 정의 식별자입니다.
  • CONFIG_ID: 구성의 사용자 정의 식별자입니다.

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

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

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

Go

Game Servers용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Game Servers 클라이언트 라이브러리를 참조하세요.


import (
	"context"
	"fmt"
	"io"

	gaming "cloud.google.com/go/gaming/apiv1"
	gamingpb "google.golang.org/genproto/googleapis/cloud/gaming/v1"
)

// fleet is the spec portion of an agones Fleet.  It must be in JSON format.
// See https://agones.dev/site/docs/reference/fleet/ for more on fleets.
const fleet = `
{
   "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": 2156,
               "protocol": "TCP"
            }
         ],
         "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.17",
                     "imagePullPolicy": "Always",
                     "resources": {
                        "requests": {
                           "memory": "200Mi",
                           "cpu": "500m"
                        },
                        "limits": {
                           "memory": "200Mi",
                           "cpu": "500m"
                        }
                     }
                  }
               ]
            }
         }
      }
   }
}
`

// createGameServerConfig creates a game server config.
func createGameServerConfig(w io.Writer, projectID, deploymentID, configID string) error {
	// projectID := "my-project"
	// deploymentID := "mydeployment"
	// configID := "mydeployment"
	ctx := context.Background()
	client, err := gaming.NewGameServerConfigsClient(ctx)
	if err != nil {
		return fmt.Errorf("NewGameServerConfigsClient: %v", err)
	}
	defer client.Close()

	req := &gamingpb.CreateGameServerConfigRequest{
		Parent:   fmt.Sprintf("projects/%s/locations/global/gameServerDeployments/%s", projectID, deploymentID),
		ConfigId: configID,
		GameServerConfig: &gamingpb.GameServerConfig{
			FleetConfigs: []*gamingpb.FleetConfig{
				&gamingpb.FleetConfig{
					Name:      "fleet-spec-1",
					FleetSpec: fleet,
				},
			},
			Description: "My Game Server Config",
		},
	}

	op, err := client.CreateGameServerConfig(ctx, req)
	if err != nil {
		return fmt.Errorf("CreateGameServerConfig: %v", err)
	}
	resp, err := op.Wait(ctx)
	if err != nil {
		return fmt.Errorf("Wait: %v", err)
	}

	fmt.Fprintf(w, "Config created: %v", resp.Name)
	return nil
}

Node.js

Game Servers용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Game Servers 클라이언트 라이브러리를 참조하세요.

  const {
    GameServerConfigsServiceClient,
  } = require('@google-cloud/game-servers');

  const client = new GameServerConfigsServiceClient();

  async function createGameServerConfig() {
    /**
     * TODO(developer): Uncomment these variables before running the sample.
     */
    // const projectId = 'Your Google Cloud Project ID';
    // const deploymentId = 'A unique ID for the Game Server Deployment';
    // const configId = 'A unique ID for the Game Server Config';
    // const fleetName = 'The fleet name to be stored in Agones';
    // fleet is the spec portion of an agones Fleet.  It must be in JSON format.
    // See https://agones.dev/site/docs/reference/fleet/ for more on fleets.
    const fleet = `
{
   "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": 2156,
               "protocol": "TCP"
            }
         ],
         "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.17",
                     "imagePullPolicy": "Always",
                     "resources": {
                        "requests": {
                           "memory": "200Mi",
                           "cpu": "500m"
                        },
                        "limits": {
                           "memory": "200Mi",
                           "cpu": "500m"
                        }
                     }
                  }
               ]
            }
         }
      }
   }
}
`;
    const request = {
      parent: client.gameServerDeploymentPath(
        projectId,
        'global',
        deploymentId
      ),
      configId: configId,
      gameServerConfig: {
        fleetConfigs: [
          {
            name: fleetName,
            fleetSpec: fleet,
          },
        ],
        description: 'nodejs test config',
      },
    };

    const [operation] = await client.createGameServerConfig(request);
    const [result] = await operation.promise();

    console.log('Game Server Config created:');
    console.log(`\t Config name: ${result.name}`);
    console.log(`\t Config description: ${result.description}`);
  }

  createGameServerConfig();

Python

Game Servers용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Game Servers 클라이언트 라이브러리를 참조하세요.


# FLEET_SPEC is the spec portion of an agones Fleet.  It must be in JSON format.
# See https://agones.dev/site/docs/reference/fleet/ for more on fleets.
FLEET_SPEC = """
{
   "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": 2156,
               "protocol": "TCP"
            }
         ],
         "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.17",
                     "imagePullPolicy": "Always",
                     "resources": {
                        "requests": {
                           "memory": "200Mi",
                           "cpu": "500m"
                        },
                        "limits": {
                           "memory": "200Mi",
                           "cpu": "500m"
                        }
                     }
                  }
               ]
            }
         }
      }
   }
}
"""

def create_config(project_id, deployment_id, config_id):
    """Creates a game server config."""

    client = gaming.GameServerConfigsServiceClient()

    fleet_config = game_server_configs.FleetConfig(
        name="my-fleet-spec", fleet_spec=FLEET_SPEC,
    )

    # Location is hard coded as global, as game server configs can
    # only be created in global.  This is done for all operations on
    # game server configs.
    request = game_server_configs.CreateGameServerConfigRequest(
        parent=f"projects/{project_id}/locations/global/gameServerDeployments/{deployment_id}",
        config_id=config_id,
        game_server_config=game_server_configs.GameServerConfig(
            description="My Game Server Config", fleet_configs=[fleet_config],
        ),
    )

    operation = client.create_game_server_config(request)
    print(f"Create config operation: {operation.operation.name}")
    operation.result(timeout=120)

구성 수정

구성은 변경할 수 없으므로 Game Servers 구성을 수정할 수 없습니다. 구성을 수정하려면 구성을 복사하고(구성 세부정보 보기) 로컬에서 수정한 다음 업데이트된 버전을 사용하여 새 구성을 만듭니다.

구성 나열

Console

  1. Cloud Console에서 Game Server 배포 페이지로 이동합니다.

    Game Servers로 이동

  2. 테이블에서 배포를 찾습니다. 마지막 테이블 열에서 줄임표 를 클릭하고 구성 나열을 선택합니다. 이 페이지에서 배포의 활성 및 비활성 구성을 볼 수 있습니다.

gcloud

gcloud 명령줄 도구를 사용하여 구성을 나열할 수 있습니다.

모든 구성을 나열하려면 다음 명령어를 실행합니다.

gcloud game servers configs list

배포의 모든 구성을 나열하려면 다음 명령어를 실행하고 deploymentID를 구성을 나열할 상위 배포로 바꿉니다.

gcloud game servers configs list --deployment=deploymentID

REST 및 명령줄

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: IAM 설정에 나열된 Google Cloud 프로젝트 ID입니다.
  • DEPLOYMENT_ID: 배포의 사용자 정의 식별자입니다.

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

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

Go

Game Servers용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Game Servers 클라이언트 라이브러리를 참조하세요.


import (
	"context"
	"fmt"
	"io"

	gaming "cloud.google.com/go/gaming/apiv1"
	"google.golang.org/api/iterator"
	gamingpb "google.golang.org/genproto/googleapis/cloud/gaming/v1"
)

// listGameServerConfigs lists the game server configs.
func listGameServerConfigs(w io.Writer, projectID, deploymentID string) error {
	// projectID := "my-project"
	// deploymentID := "mydeployment"
	ctx := context.Background()
	client, err := gaming.NewGameServerConfigsClient(ctx)
	if err != nil {
		return fmt.Errorf("NewGameServerConfigsClient: %v", err)
	}
	defer client.Close()

	req := &gamingpb.ListGameServerConfigsRequest{
		Parent: fmt.Sprintf("projects/%s/locations/global/gameServerDeployments/%s", projectID, deploymentID),
	}

	it := client.ListGameServerConfigs(ctx, req)
	for {
		resp, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			return fmt.Errorf("Next: %v", err)
		}

		fmt.Fprintf(w, "Config listed: %v\n", resp.Name)
	}

	return nil
}

Node.js

Game Servers용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Game Servers 클라이언트 라이브러리를 참조하세요.

const {
  GameServerConfigsServiceClient,
} = require('@google-cloud/game-servers');

const client = new GameServerConfigsServiceClient();

async function listGameServerConfigs() {
  /**
   * TODO(developer): Uncomment these variables before running the sample.
   */
  // const projectId = 'Your Google Cloud Project ID';
  // const deploymentId = 'A unique ID for the Game Server Deployment';
  const request = {
    parent: client.gameServerDeploymentPath(
      projectId,
      'global',
      deploymentId
    ),
  };

  const [results] = await client.listGameServerConfigs(request);
  for (const config of results) {
    console.log(`Config name: ${config.name}`);
    console.log(`Config description: ${config.description}`);

    const createTime = config.createTime;
    const createDate = new Date(createTime.seconds * 1000);
    console.log(`Config created on: ${createDate.toLocaleDateString()}\n`);
  }
}

listGameServerConfigs();

Python

Game Servers용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Game Servers 클라이언트 라이브러리를 참조하세요.

def list_configs(project_id, deployment_id):
    """Lists the existing game server deployments."""

    client = gaming.GameServerConfigsServiceClient()

    # Location is hard coded as global, as game server configs can
    # only be created in global.  This is done for all operations on
    # game server configs.
    response = client.list_game_server_configs(
        parent=f"projects/{project_id}/locations/global/gameServerDeployments/{deployment_id}"
    )

    for config in response.game_server_configs:
        print(f"Name: {config.name}")

    return response.game_server_configs

구성 세부정보 보기

Console

  1. Cloud Console에서 Game Server 배포 페이지로 이동합니다.

    Game Servers로 이동

  2. 테이블에서 배포를 찾습니다. 마지막 테이블 열에서 줄임표 를 클릭하고 구성 나열을 선택합니다. 이 페이지에서 배포의 활성 및 비활성 구성을 볼 수 있습니다.

  3. 테이블에서 구성을 찾습니다. 마지막 테이블 열에서 줄임표 를 클릭하고 구성 보기를 선택합니다.

gcloud

gcloud 명령줄 도구를 사용하여 생성 시간 등 구성에 대한 세부정보를 찾을 수 있습니다.

구성 세부정보를 보려면 다음 명령어를 실행하고 자리표시자 값(예: deploymentIDconfigID)을 적절한 값으로 바꿉니다.

gcloud game servers configs describe configID --deployment deploymentID

출력에는 구성 세부정보가 표시됩니다.

변수 자리표시자는 다음 설명에 해당됩니다.

  • configID는 이 게임 서버 구성에 지정한 고유 식별자입니다.
  • deploymentID는 상위 배포의 고유 식별자입니다.

REST 및 명령줄

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: IAM 설정에 나열된 Google Cloud 프로젝트 ID입니다.
  • DEPLOYMENT_ID: 배포의 사용자 정의 식별자입니다.
  • CONFIG_ID: 구성의 사용자 정의 식별자입니다.

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

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

Go

Game Servers용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Game Servers 클라이언트 라이브러리를 참조하세요.


import (
	"context"
	"fmt"
	"io"

	gaming "cloud.google.com/go/gaming/apiv1"
	gamingpb "google.golang.org/genproto/googleapis/cloud/gaming/v1"
)

// getGameServerConfig retrieves info on a game server config.
func getGameServerConfig(w io.Writer, projectID, deploymentID, configID string) error {
	// projectID := "my-project"
	// deploymentID := "mydeployment"
	// configID := "myconfig"
	ctx := context.Background()
	client, err := gaming.NewGameServerConfigsClient(ctx)
	if err != nil {
		return fmt.Errorf("NewGameServerConfigsClient: %v", err)
	}
	defer client.Close()

	req := &gamingpb.GetGameServerConfigRequest{
		Name: fmt.Sprintf("projects/%s/locations/global/gameServerDeployments/%s/configs/%s", projectID, deploymentID, configID),
	}

	resp, err := client.GetGameServerConfig(ctx, req)
	if err != nil {
		return fmt.Errorf("GetGameServerConfig: %v", err)
	}

	fmt.Fprintf(w, "Config retrieved: %v", resp.Name)
	return nil
}

Node.js

Game Servers용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Game Servers 클라이언트 라이브러리를 참조하세요.

const {
  GameServerConfigsServiceClient,
} = require('@google-cloud/game-servers');

const client = new GameServerConfigsServiceClient();

async function getGameServerConfig() {
  /**
   * TODO(developer): Uncomment these variables before running the sample.
   */
  // const projectId = 'Your Google Cloud Project ID';
  // const deploymentId = 'A unique ID for the Game Server Deployment';
  // const configId = 'A unique ID for the Game Server Config';
  const request = {
    // The full resource name
    name: client.gameServerConfigPath(
      projectId,
      'global',
      deploymentId,
      configId
    ),
  };

  const [config] = await client.getGameServerConfig(request);
  console.log(`Config name: ${config.name}`);
  console.log(`Config description: ${config.description}`);

  const createTime = config.createTime;
  const createDate = new Date(createTime.seconds * 1000);
  console.log(`Config created on: ${createDate.toLocaleDateString()}\n`);
}

getGameServerConfig();

Python

Game Servers용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Game Servers 클라이언트 라이브러리를 참조하세요.

def get_config(project_id, deployment_id, config_id):
    """Gets a game server config."""

    client = gaming.GameServerConfigsServiceClient()

    # Location is hard coded as global, as game server configs can
    # only be created in global.  This is done for all operations on
    # game server configs.
    request = game_server_configs.GetGameServerConfigRequest(
        name=f"projects/{project_id}/locations/global/gameServerDeployments/{deployment_id}/configs/{config_id}",
    )

    response = client.get_game_server_config(request)
    print(f"Get config response:\n{response}")
    return response

다음 단계