Sube una compilación de servidor personalizada a AmazonGameLift - Amazon GameLift

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Sube una compilación de servidor personalizada a AmazonGameLift

Después de integrar tu servidor de juegos con AmazonGameLift, sube los archivos de compilación a AmazonGameLift. En este tema se explica cómo empaquetar los archivos de compilación del juego, crear un script de instalación de compilación opcional y, a continuación, cargar los archivos mediante el AWS Command Line Interface(AWS CLI) o unAWS SDK.

Empaquetado de los archivos de compilación del juego

Antes de subir el servidor de juegos configurado a AmazonGameLift, empaqueta los archivos de compilación del juego en un directorio de compilación. Este directorio debe incluir todos los componentes necesarios para ejecutar los servidores de juegos y las sesiones de juego alojadas, entre los que se incluyen los siguientes:

  • Binarios del servidor de juegos: los archivos binarios necesarios para ejecutar el servidor del juego. Una compilación puede incluir binarios para varios servidores de juegos diseñados para ejecutarse en la misma plataforma. Para obtener una lista de las plataformas compatibles con, consulteDescargar losGameLift SDK de Amazon.

  • Dependencias: cualquier archivo dependiente que los ejecutables del servidor de juegos requieran para ejecutarse. Por ejemplo, activos, archivos de configuración y bibliotecas dependientes.

  • Script de instalación (opcional): un archivo de script para gestionar las tareas de instalación de la compilación del juego en los servidores deGameLift alojamiento de Amazon. Este archivo se encuentra en la raíz del directorio de compilación. AmazonGameLift ejecuta el script de instalación como parte de la creación de la flota.

Puedes configurar cualquier aplicación de tu compilación, incluido el script de instalación, para acceder a tus recursos de forma segura en otrosAWS servicios. Para obtener información acerca de cómo hacerlo, consulteComunícate con otrosAWS recursos de tus flotas.

Después de empaquetar los archivos de compilación, asegúrate de que el servidor del juego pueda ejecutarse con una instalación limpia del sistema operativo de destino. Esto comprueba que incluye todas las dependencias necesarias en el paquete y que el script de instalación es correcto.

Crea unaGameLift compilación de Amazon

Al crear una compilación y cargar sus archivos, tiene dos opciones:

Con ambos métodos, AmazonGameLift crea un nuevo recurso de compilación con un identificador de compilación único y otros metadatos. La compilación comienza en el estado Inicializado. Cuando AmazonGameLift adquiere los archivos del servidor del juego, la compilación pasa al estado Listo.

Cuando la construcción esté lista, podrás implementarla en una nuevaGameLift flota de Amazon. Para obtener más información, consulteCrea una flotaGameLift gestionada por Amazon .Cuando AmazonGameLift configura la nueva flota, descarga los archivos de compilación en cada instancia de la flota e instala los archivos de compilación.

Crear una compilación a partir de un directorio de archivos

Para crear una compilación de juego almacenada en cualquier ubicación, incluido un directorio local, usa el create-buildAWS CLIcomando. Este comando crea un nuevo registro de compilación en AmazonGameLift y carga los archivos desde la ubicación que especifiques.

Envíe una solicitud de carga. En una ventana de línea de comandos, introduzca elcreate-build comando y los parámetros siguientes.

aws gamelift create-build \ --name user-defined name of build \ --operating-system supported OS \ --server-sdk-version Amazon GameLift server SDK version \ --build-root build path \ --build-version user-defined build number \ --region region name
  • operating-system— El entorno de ejecución de la compilación del servidor del juego. Debe especificar un valor del sistema operativo. Este archivo no se puede actualizar después.

  • server-sdk-version— La versión del SDK paraGameLift servidores de Amazon que utilizaste para integrar tu servidor de juegos con AmazonGameLift. Si no proporciona un valor, AmazonGameLift utiliza el valor predeterminado4.0.2.

  • build-root— La ruta del directorio de los archivos de compilación.

  • name— Un nombre descriptivo para la nueva construcción.

  • build-version— Los detalles de la versión de los archivos de compilación.

  • region— LaAWS región en la que desea crear la compilación. Cree la compilación en la región donde tiene pensado desplegar flotas. Si vas a implementar el juego en varias regiones, crea una compilación en cada región.

    nota

    Vea su región predeterminada actual mediante el aws configure get region. Para cambiar la región predeterminada, utilice el aws configure set region region namecomando.

Ejemplos

aws gamelift create-build \ --operating-system AMAZON_LINUX \ --server-sdk-version "5.0.0" \ --build-root "~/mygame" \ --name "My Game Nightly Build" \ --build-version "build 255" \ --region us-west-2
aws gamelift create-build \ --operating-system WINDOWS_2016 \ --server-sdk-version "5.0.0" \ --build-root "C:\mygame" \ --name "My Game Nightly Build" \ --build-version "build 255" \ --region us-west-2

En respuesta a tu solicitud de carga, AmazonGameLift proporciona el progreso de la carga. Si la subida se realiza correctamente, AmazonGameLift devuelve el nuevo ID del registro de compilación. El tiempo de carga depende del tamaño de los archivos del juego y de la velocidad de conexión.

Creación de una compilación con archivos en Amazon S3

Puede almacenar sus archivos de compilación en Amazon S3 y subirlos a AmazonGameLift desde allí. Cuando creas tu compilación, especificas la ubicación del bucket de S3 y AmazonGameLift recupera los archivos de compilación directamente de Amazon S3.

Para crear un recurso de compilación
  1. Almacene los archivos de compilación en Amazon S3. Cree un archivo.zip que contenga los archivos de compilación empaquetados y cárguelo en un bucket de S3 de suCuenta de AWS. Toma nota de la etiqueta del bucket y del nombre del archivo, los necesitarás para crear unaGameLift compilación de Amazon.

  2. DaGameLift acceso a Amazon a tus archivos de compilación. Cree un rol de IAM siguiendo las instrucciones deAcceder a un archivo de compilación de un juego en Amazon S3. Una vez que haya creado el rol, tome nota del nombre de recurso de Amazon (ARN) del nuevo rol; lo necesitará al crear una compilación.

  3. Crea una construcción. Usa laGameLift consola de Amazon o laAWS CLI para crear un nuevo registro de compilación. Debe tener elPassRole permiso descrito enEjemplos de permisos de IAM para AmazonGameLift.

Console
  1. En la GameLiftconsola de Amazon, en el panel de navegación, selecciona Hosting, Builds.

  2. En la página Compilaciones, selecciona Crear compilación.

  3. En la página Crear compilación, en Configuración de compilación, haga lo siguiente:

    1. En Nombre, introduzca un nombre de script.

    2. En Versión, introduzca una versión. Como puedes actualizar el contenido de una compilación, los datos de la versión pueden ayudarte a realizar un seguimiento de las actualizaciones.

    3. Para el sistema operativo (OS), elige el sistema operativo de tu servidor de juegos. El sistema operativo de la compilación no se puede actualizar posteriormente.

    4. Para crear un servidor de juegos, introduce el URI de S3 del objeto de compilación que has subido a Amazon S3 y elige la versión del objeto. Si no recuerda el URI de Amazon S3 ni la versión del objeto, seleccione Examinar en S3 y busque el objeto de compilación.

    5. Para el rol de IAM, elige el rol que creaste y que daGameLift acceso a Amazon a tu bucket de S3 y al objeto de compilación.

  4. (Opcional) En Etiquetas, añada etiquetas a la compilación introduciendo pares de clave y valor.

  5. Seleccione Create (Crear).

AmazonGameLift asigna un identificador a la nueva compilación y carga el archivo.zip designado. Puedes ver la nueva compilación, incluido el estado, en la página Compilaciones.

AWS CLI

Para definir la nueva compilación y cargar los archivos de compilación del servidor, utilice el create-buildcomando.

  1. Abra una ventana de línea de comandos y cambie a un directorio donde pueda usarAWS CLI.

  2. Ingrese el siguientecreate-build comando::::::

    aws gamelift create-build \ --name user-defined name of build \ --server-sdk-version Amazon GameLift server SDK version \ --operating-system supported OS \ --build-version user-defined build number \ --storage-location "Bucket"=S3 bucket label,"Key"=Build .zip file name,"RoleArn"=Access role ARN} \ --region region name
    • name— Un nombre descriptivo para la nueva construcción.

    • server-sdk-version— La versión del SDK paraGameLift servidores de Amazon que utilizaste para integrar tu servidor de juegos con AmazonGameLift. Si no proporciona un valor, AmazonGameLift utiliza el valor predeterminado4.0.2.

    • operating-system— El sistema operativo de la versión del servidor del juego. Debe especificar un valor del sistema operativo. Este archivo no se puede actualizar después.

    • build-version— Los detalles de la versión de los archivos de compilación. Esta información puede resultar útil porque cada nueva versión de tu servidor de juegos requiere un nuevo recurso de compilación.

    • storage-location

      • Bucket— El nombre del bucket de S3 que contiene la compilación. Por ejemplo, «my_build_files».

      • Key— El nombre del archivo.zip que contiene los archivos de compilación. Por ejemplo, «my_game_build_7.0.1, 7.0.2".

      • RoleARN— El ARN asignado al rol de IAM que creó. Por ejemplo, «arn:aws:iam: :id-cuenta:role/GameLiftAccess». Para ver una política de ejemplo, consulte Acceder a un archivo de compilación de un juego en Amazon S3.

    • region— Crea la construcción en laAWS región en la que planeas desplegar las flotas. Si vas a implementar el juego en varias regiones, crea una compilación en cada región.

      nota

      Le recomendamos que compruebe su región predeterminada actual mediante el configure getcomando . Para cambiar la región predeterminada, utilice el configure setcomando.

    Ejemplo

    aws gamelift create-build \ --operating-system WINDOWS_2016 \ --storage-location "Bucket"="my_game_build_files","Key"="mygame_build_101.zip","RoleArn"="arn:aws:iam::111122223333:role/gamelift" \ --name "My Game Nightly Build" \ --build-version "build 101" \ --region us-west-2
  3. Para ver la nueva compilación, utilice el describe-buildcomando.

Actualiza tus archivos de compilación

Puedes actualizar los metadatos de un recurso de compilación mediante laGameLift consola de Amazon o el update-buildAWS CLIcomando.

Una vez que hayas creado unaGameLift compilación de Amazon, no podrás actualizar los archivos de compilación asociados a ella. Para cada nuevo conjunto de archivos, crea una nuevaGameLift compilación de Amazon. Mediante el upload-buildcomando, Amazon creaGameLift automáticamente un nuevo registro de compilación para cada solicitud. Si proporciona archivos de compilación mediante el create-buildcomando, cargue un nuevo archivo.zip de compilación con un nombre diferente en Amazon S3 y cree una compilación haciendo referencia al nuevo nombre de archivo.

Tenga en cuenta estos consejos a la hora de implementar compilaciones actualizadas:

  • Utilice colas e intercambie las flotas según sea necesario. Al configurar tu cliente de juegos con AmazonGameLift, especifica una cola en lugar de una flota. Con las colas, puedes añadir las flotas nuevas con la nueva versión a tu cola y eliminar las flotas antiguas. Para obtener más información, consulte Configuración de GameLift colas de Amazon para la colocación de las sesiones de juego.

  • Usa los alias para transferir a los jugadores a una nueva compilación del juego. Al integrar tu cliente de juego con AmazonGameLift, especifica un alias de flota en lugar de un identificador de flota. Para obtener más información, consulte Agregar una API GameLift sencilla.

  • Configura actualizaciones de compilación automatizadas. Para ver ejemplos de scripts e información sobre cómo incorporarGameLift las implementaciones de Amazon en tu sistema de compilación, consulta Automatizar las implementacionesGameLift en Amazon en el blog de tecnología delAWS juego.

Agregar un script de instalación de la compilación

Crea un script de instalación para el sistema operativo (SO) de la compilación del juego:

  • Windows: cree un archivo por lotes con el nombreinstall.bat.

  • Linux: cree un archivo de script de shell llamadoinstall.sh.

Al crear un script de instalación, tenga en cuenta lo siguiente:

  • El script no puede aceptar ninguna entrada del usuario.

  • AmazonGameLift instala la compilación y vuelve a crear los directorios de archivos del paquete de compilación en un servidor de alojamiento en las siguientes ubicaciones:

    • Flotas de Windows:C:\game

    • Flotas de Linux:/local/game

  • Durante el proceso de instalación, el usuario que realiza la ejecución tiene acceso limitado a la estructura de archivos de la instancia. Este usuario tiene todos los derechos sobre el directorio en el que están instalados los archivos de compilación. Si el script de instalación realiza acciones que requieren permisos de administrador, especifique el acceso de administrador (sudopara Linux,runas para Windows). Los errores de permisos relacionados con el script de instalación generan un mensaje de evento que indica un problema con el script.

  • En Linux, AmazonGameLift admite lenguajes de interpretación de shell comunes, como bash. Añada un shebang (como #!/bin/bash) al principio del script de instalación. Para comprobar la compatibilidad con los comandos de shell preferidos, acceda de forma remota a una instancia de Linux activa y abra un indicador de shell. Para obtener más información, consulte Acceda de forma remota a las instanciasGameLift de flota de Amazon.

  • El script de instalación no puede basarse en una interconexión de VPC. La conexión entre pares de VPC no estará disponible hasta que AmazonGameLift instale la compilación en las instancias de flota.

ejemplo Archivo bash de Windows

Esteinstall.bat archivo de ejemplo instala los componentes de ejecución de Visual C++ necesarios para el servidor del juego y escribe los resultados en un archivo de registro. El script incluye el archivo del componente en el paquete de compilación en la raíz.

vcredist_x64.exe /install /quiet /norestart /log c:\game\vcredist_2013_x64.log
ejemplo Secuencia de comandos de instalación de Linux

Esteinstall.sh archivo de ejemplo usa bash en el script de instalación y escribe los resultados en un archivo de registro.

#!/bin/bash echo 'Hello World' > install.log

Esteinstall.sh archivo de ejemplo muestra cómo puedes usar elCloudWatch agente de Amazon para recopilar métricas personalizadas y a nivel de sistema, y gestionar la rotación de registros. Dado que AmazonGameLift se ejecuta en una VPC de servicio, debes concederGameLift permisos a Amazon para que asuma una funciónAWS Identity and Access Management (IAM) en tu nombre. Para permitir que AmazonGameLift asuma una función, cree una función que incluya la políticaAWSCloudWatchAgentAdminPolicy gestionada y utilícela cuando cree una flota.

sudo yum install -y amazon-cloudwatch-agent sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm sudo yum install -y collectd cat <<'EOF' > /tmp/config.json { "agent": { "metrics_collection_interval": 60, "run_as_user": "root", "credentials": { "role_arn": "arn:aws:iam::account#:role/rolename" } }, "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/tmp/log", "log_group_name": "gllog", "log_stream_name": "{instance_id}" } ] } } }, "metrics": { "namespace": "GL_Metric", "append_dimensions": { "ImageId": "${aws:ImageId}", "InstanceId": "${aws:InstanceId}", "InstanceType": "${aws:InstanceType}" }, "metrics_collected": { // Configure metrics you want to collect. // For more information, see Manually create or edit the CloudWatch agent configuration file. } } } EOF sudo mv /tmp/config.json /opt/aws/amazon-cloudwatch-agent/bin/config.json sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json sudo systemctl enable amazon-cloudwatch-agent.service