Definiciones de recursos - Guía del usuario de Lumberyard

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.

Definiciones de recursos

Las definiciones de recursos para su proyecto de juego son AWS CloudFormation de plantillas de correo electrónico que determinan el recursos (por ejemplo, DynamoDB bases de datos, Lambda y la información de control de acceso) que se creará en AWS para el juego. El código del juego utiliza AWS recursos y esperar que Los recursos de que existen y que se configuran de una forma específica. Las definiciones de recursos determine esta arquitectura y configuración.

Recurso de juego Definiciones

Una descripción de los recursos necesarios para el juego se almacena en archivos bajo el dev\{game}\AWS directorio, donde dev es el Lumberyard instalación \dev del subdirectorio y {game} es el directorio identificado por el sys_game_folder propiedad en el \dev\bootstrap.cfg del archivo. Por ejemplo, si el juego es el proyecto de ejemplos, la ruta de definición de recursos podría ser C:\lumberyard_version\dev\SamplesProject\AWS. Estos archivos se deben guardar en el sistema de control de código fuente del proyecto junto con su otro código de juego y datos.

El valor predeterminado {game}\AWS directorio de contenido se crean mediante el lmbr_aws proyecto crear del comando.

Además, algunos datos de configuración específicos del usuario se conservan en la pestaña dev\Cache\{game}\{OS}\user\AWS del directorio. El contenido de este directorio no debe guardarse en el archivo del proyecto del sistema de control de origen.

A continuación se muestra el contenido de estos AWS de los directorios de.

dev\{game}\AWS\ resource-group\ {resource-group-name}\ lambda-function-code\ (Lambda function Code) resource-template.json local-project-settings.json dev\Cache\{game}\{OS}\user\AWS\ user-settings.json

El .json Los archivos se describen en las secciones siguientes.

grupo-de-recursos\{resource-group} Directorio

El AWS Los recursos de utilizados por el juego se organizan en grupos de recursos independientes. El resource-group El directorio contiene estos en {resource-group} de los subdirectorios. Cada {resource-group} el subdirectorio es que suele denominarse en función del proyecto de juego y puede contener un lambda-function-code y un directorio resource-template.json del archivo.

El directorio-código-función-lambda

El lambda-function-code del subdirectorio está presente cuando un la plantilla de recursos define Lambda función Los recursos de. Este directorio puede contener archivos de origen que implementen estos funciones. Lumberyard carga el código desde este directorio cuando se utiliza la plantilla para actualizar el AWS CloudFormation Pila de.

nota

Uso de la lambda-function-code el directorio es obsoleta. Para obtener más información, consulte Lambda Código Directorios.

recurso-plantilla.json

La resource-template.json es un archivo AWS CloudFormation plantilla que define los recursos de AWS asociados a cada grupo de recursos. Puede especificar cualquier AWS tipo de recurso admitido por AWS CloudFormation en su resource-template.json del archivo. Para obtener una lista de las los tipos de recursos disponibles, consulte la AWS CloudFormation Tipos de recursos de AWS Referencia.

Para determinar las pilas de grupos de recursos que se van a incluir en una implementación, Lumberyard lecturas el resource-template.json archivos en AWS\resource-group y en los subdirectorios AWS Los subdirectorios de gemas en la nube habilitadas. A continuación son dos ejemplos.

\dev\CloudGemSamples\AWS\resource-group\CloudGemAWSBehavior\resource-template.json \dev\Gems\CloudGemMessageOfTheDay\AWS\resource-template.json

local-setting-de-proyectos.json

El dev\<project name>\AWS\local-project-settings.json el archivo contiene una ProjectStackId que apunta a AWS, la gema en la nube el número de versión del marco de trabajo y una lista de los grupos de recursos que se han deshabilitado para el proyecto. El siguiente ejemplo muestra el formato de la local-project-settings.json para la gema en la nube Proyecto de muestras:

{ "ProjectStackId": "arn:aws:cloudformation:{aws-region}:{aws-access-id}:stack/CloudGemSamples/{uuid}", "DisabledResourceGroups": [], "FrameworkVersion": "1.1.1" }
nota

Antes de Lumberyard 1.11, el local-project-settings.json del archivo se guarda una lista de activado recurso grupos de. De forma predeterminada, todos los grupos de recursos de una gema en la nube están habilitados cuando la gema en la nube está habilitada. El listado de solo los grupos de recursos deshabilitados lo hace más fácil de identificar para depurar. [EMPTY] deshabilitar grupo de recursos.

nota

A partir de Lumberyard 1,8, project-settings.json el archivo es almacenado en el proyecto Bucket de configuración. El bucket es definido por el proyecto AWS CloudFormation de la plantilla de pila de.

Propiedad ProjectStackId

El ProjectStackId La propiedad identifica el AWS CloudFormation pila para el proyecto. Esta pila contiene los recursos utilizados por Cloud Canvas para gestionar su Lumberyard del proyecto. En un principio, el ProjectStackId la propiedad no está presente en el local-project-settings.json del archivo. Después del paso se crea la pila del proyecto, el ProjectStackId propiedad se escribe en el archivo y es el AWS CloudFormation ID de pila de.

El ProjectStackId la propiedad se establece mediante el proyecto crear del comando. Si por alguna razón desea asociar el proyecto con un proyecto existente , puedes utilizar la Consola de administración de AWS para buscar el ARN de la pila y pegarlo en el local-project-settings.json (navegue hasta AWS CloudFormation, seleccione la pila, seleccione Descripción generaly, a continuación, copie el valor de la Stack Id de la propiedad).

usuario-configuración.json

El user-settings.json El archivo contiene datos específicos del usuario datos de configuración de. El archivo se crea en la primera ejecución del Cloud Canvas Recurso o la primera vez que lmbr_aws se ejecuta en un proyecto.

Ubicación del archivo

El user-settings.json el archivo se encuentra en dev\Cache\{game}\{OS}\user\AWS\user-settings.json. No está en el dev\{game}\AWS junto con los otros archivos descritos en esta sección porque no se debe guardar en el sistema de control de origen del proyecto.

Valor predeterminado AWS Perfil

El DefaultProfile de la sección user-settings.json contiene el archivo AWS perfil de que el lmbr_aws El comando utiliza para el proyecto. Para establecer la para un perfil de Cloud Canvas proyecto, utilice el siguiente comando:

lmbr_aws profile default --set profile_name

Para obtener más información, consulte perfil por defecto.

Archivos de plantilla de proyecto

Cloud Canvas los archivos de plantilla de proyecto son AWS CloudFormation plantillas que definen recursos, pilas y permisos de implementación para un proyecto. A continuación se muestran los archivos de plantilla del proyecto:

  • project-template.json

  • deployment-template.json

  • deployment-access-template.json

El contenido de cada uno de estos archivos de plantilla se puede complementar con un archivo de plantilla *-extensions.json del archivo. Empezando en Lumberyard 1.10, estos archivos son ubicado en el \Gems\CloudGemFramework\vN\ResourceManager\resource_manager\templates , donde N representa una versión de Cloud Gem Framework número.

proyecto-plantilla.json

El project-template.json es un archivo AWS CloudFormation plantilla que define recursos de todo el proyecto que respaldan el Cloud Canvas del sistema de administración de recursos de. Para información sobre Cloud Canvas para el administrador de recursos, consulte Comprensión Cloud Canvas Responsable de recursos. Para información relacionada con la seguridad, ver Descripción del sistema de seguridad del administrador de recursos.

mplificación-plantilla.json

En versiones de Lumberyard anterior a 1.10, la copia del proyecto de la deployment-template.json archivo contiene definiciones de pila para cada uno de los grupos de recursos del proyecto. Estos recursos ahora se insertan en el campo plantilla base antes de pasarla a AWS CloudFormation. Para determinar las pilas de grupos de recursos que incluir, Lumberyard lee el resource-template.json archivos en AWS\resource-group y en los subdirectorios AWS de subdirectorios de gemas habilitadas.

de implementación-acceso-plantilla.json

El deployment-access-template.json es un archivo AWS CloudFormation Plantilla que define la Los recursos de utilizados para proteger una implementación. Para obtener información sobre Cloud Canvas Recurso del gerente, consulte Comprensión Cloud Canvas Responsable de recursos. Para información relacionada con la seguridad, ver Descripción del sistema de seguridad del administrador de recursos.

Parameters

La pila de acceso a la implementación define parámetros que identifican la implementación y otros recursos necesarios para configurar la seguridad de la implementación. A para cada uno de estos parámetros es proporcionado por Cloud Canvas cuando una implementación es creado.

Resources

En esta sección se describen algunos de los recursos clave que se definen en la ejemplo deployment-access-template.json del archivo.

Player

El Player El recurso de describe la IAM función que determina el de acceso concedido al jugador. Por ejemplo, para que el juego invoque un Lambda , el reproductor debe tener la función lambda:InvokeFunction en el paso Lambda Recurso de función de.

Las políticas del rol están determinadas por el PlayerAccess elementos de metadatos encontrados en recursos en las plantillas de recursos del proyecto (consulte la sección recurso-plantilla.json). Las políticas del rol son actualizados por el PlayerAccess recursos personalizados que aparecen en el de implementación-acceso-plantilla.json y en el paso recurso-plantilla.json de los archivos. El PlayerAccessIdentityPool Amazon Cognito grupo de identidades El recurso de permite a los jugadores asumir este rol.

Para obtener más información, consulte PlayerAccessIdentityPool y Control del acceso a Recursos.

PlayerLoginRole

El PlayerLoginRole describe el IAM función que es temporalmente asumido por el jugador como parte del proceso de inicio de sesión.

Para obtener más información, consulte Control del acceso a Recursos.

PlayerLoginIdentityPool

El PlayerLoginIdentityPool El recurso de describe la Amazon Cognito grupo de identidades de que proporciona al reproductor una identidad temporal durante el inicio de sesión del proceso.

Para obtener más información, consulte Control del acceso a Recursos.

PlayerAccessIdentityPool

El PlayerAccessIdentityPool El recurso de describe la Amazon Cognito grupo de identidades de que proporciona al reproductor una identidad temporal durante el inicio de sesión del proceso.

Para obtener más información, consulte Control del acceso a Recursos.

Extensión de plantilla Archivos

Empezando en Lumberyard 1.10, puede utilizar los siguientes archivos de extensión para añadir recursos a las plantillas del proyecto:

  • deployment-access-template-extensions.json

  • deployment-template-extensions.json

  • project-template-extensions.json

Puede utilizar los archivos de extensión para definir nuevas salidas, metadatos y recursos de. No se admite la adición de parámetros de plantilla.

Para crear archivos de extensión, puede utilizar la lmbr_aws crear-plantilla-extensión-proyecto del comando. Para crear un archivo de plantilla de un tipo determinado, utilice el argumento, como los siguientes ejemplos muestran.

  • Para crear un project-template-extensions.json el archivo, escriba:

    lmbr-aws project create-extension-template --project
  • Para crear un deployment-template-extensions.json el archivo, escriba:

    lmbr-aws project create-extension-template --deployment
  • Para crear un deployment-access-template-extensions.json el archivo, escriba:

    lmbr-aws project create-extension-template --deployment-access

En los archivos de plantilla base (sin extensión), la Custom::AccessControl recurso DependsOn La propiedad incluye todos los recursos definidos en el los archivos de extensión si el DependsOn la propiedad no especifica AccessControl.

Directorios de código

La ubicación y el nombre de los directorios de código ha cambiado en Lumberyard 1.10. Para más información información, consulte Administrador de recursos y Cloud Gem Framework Control de versiones.

Lambda Código Directorios

Empezando en Lumberyard 1.10, le recomendamos que coloque su Lambda código en AWS\lambda-code\<lambda-name> (por ejemplo, dev\Gems\CloudGemPlayerAccount\AWS\lambda-code) y su el código compartido en un common-code (por ejemplo, dev\Gems\CloudGemPlayerAccount\AWS\common-code).

En versiones de Lumberyard anterior a 1.10, el código de un grupo de recursos de Lambda se han mantenido en un AWS\lambda-function-code del directorio. A partir de Lumberyard 1.10, el uso de AWS\lambda-function-code y AWS\<lambda-name>-lambda-code ya no se recomienda. El soporte para ellos se eliminará en el futuro versión. En su lugar, le recomendamos que coloque su Lambda código en AWS\lambda-code\<lambda-name> de los directorios de.

Además, el uso del shared-lambda-code el directorio es ya no se recomienda. La compatibilidad con también se eliminará en una versión futura. En su lugar, utilice la más flexible common-code del directorio. Para más información información, consulte Uso del código compartido. Para obtener información sobre la actualización sus proyectos y gemas en la nube a la versión 1.0.0 del marco de Cloud Gem, consulte Actualización de proyectos y gemas en la nube a la versión 1.0.0 de la nube de Marco de gemas.

El código de proyecto Directorio

El dev\Gems\CloudGemFramework\vN\AWS\project-code El subdirectorio contiene el código fuente del AWS CloudFormation Recurso personalizado que se utiliza en el controlador del proyecto AWS CloudFormation de plantillas de. Para obtener más información acerca de los recursos, consulte Recursos personalizados.

También contiene el código que implementa el paso de intercambio de tokens del jugador de inicio de sesión. Para obtener más información, consulte Control del acceso a Recursos.