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 de su proyecto de juego sonAWS CloudFormationarchivos de plantillas que determinan los recursos (por ejemplo, bases de datos DynamoDB, funciones de Lambda e información de control de acceso de) que se crearán enAWSpara el juego. El código del juego utiliza recursos de AWS y espera que dichos recursos existan y estén configurados de manera específica. Las definiciones de los recursos determinan esta arquitectura y configuración.

Definiciones de recursos de juegos

Una descripción de los recursos requeridos por el juego se almacena en los archivos de ladev\{game}\AWSdirectorio, dondedeves la instalación de Lumberyard\devsubdirectory y{juego}es el directorio identificado por elsys_game_folderen la propiedad\dev\bootstrap.cfgfile. Por ejemplo, si el juego es Samples Project, la ruta de la definición de los recursos será C:\lumberyard_version\dev\SamplesProject\AWS. Estos archivos deberían protegerse en el sistema de control de código fuente del proyecto junto con otros datos y código del juego.

El contenido del directorio predeterminado {game}\AWS lo crea el comando lmbr_aws project create.

Además, algunos datos de configuración específicos del usuario se mantienen en el directorio dev\Cache\{game}\{OS}\user\AWS. El contenido de este directorio no debe protegerse en el sistema de control de código fuente del proyecto.

En el siguiente ejemplo se muestra el contenido de estos directorios AWS.

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

Los archivos .json se describen en las siguientes secciones.

Directorio resource-group\{resource-group}

Los recursos de AWS que usa el juego se organizan en grupos de recursos independientes. El directorio resource-group los contiene en subdirectorios {resource-group} individuales. Cada subdirectorio {resource-group} suele llamarse igual que el proyecto de juego y puede contener un directorio lambda-function-code y un archivo resource-template.json.

Directorio lambda-function-code

Lalambda-function-codeEl subdirectorio está presente cuando una plantilla de recurso defineFunción de Lambdade AWS. Este directorio puede contener archivos de código que implementan dichas funciones. Lumberyard carga el código de este directorio cuando se usa la plantilla para actualizar elAWS CloudFormationpila.

nota

El directorio lambda-function-code está obsoleto. Para obtener más información, consulte Directorios de código Lambda.

resource-template.json

Un archivo resource-template.json es una plantilla de AWS CloudFormation que define los recursos de AWS asociados a cada grupo de recursos. Puede especificar cualquier tipo de recurso de AWS compatible con AWS CloudFormation en el archivo resource-template.json. Para obtener una lista de los tipos de recursos disponibles, consulte la referencia de AWS CloudFormation Referencia de tipos de recursos de AWS.

Para determinar las pilas del grupo de recursos que se incluye en una implementación, Lumberyard lee laresource-template.jsonarchivos enAWS\resource-groupsubdirectorios y en elAWSsubdirectorios de gemas en la nube habilitadas. A continuación se muestran dos ejemplos.

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

local-project-settings.json

El archivo dev\<project name>\AWS\local-project-settings.json contiene un identificador ProjectStackId que apunta a AWS, el número de versión de Cloud Gem Framework y a una lista de los grupos de recursos que se han deshabilitado para el proyecto. En el siguiente ejemplo se muestra el formato del archivo local-project-settings.json para el proyecto Cloud Gem Samples:

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

Antes de Lumberyard 1.11, ellocal-project-settings.jsonarchivo guardó una lista deenabledgrupos de recursos. De forma predeterminada, todos los grupos de recursos de una gema en la nube se habilitan cuando se habilita la gema en la nube. Publicar solo los grupos de recursos deshabilitados facilita su identificación para la depuración. Consulte resource-group disable.

nota

A partir de Lumberyard 1.8, laproject-settings.jsonEl archivo se almacena enBucket de configuración. La plantilla de pila de AWS CloudFormation del proyecto define el bucket.

Propiedad ProjectStackId

La propiedad ProjectStackId identifica la pila de AWS CloudFormation para el proyecto. Esta pila contiene los recursos que usa Cloud Canvas para administrar el proyecto de Lumberyard. Inicialmente, la propiedad ProjectStackId no está presente en el archivo local-project-settings.json. Después de crear la pila del proyecto, la propiedad ProjectStackId se escribe en el archivo y es el ID de la pila de AWS CloudFormation del proyecto.

La propiedad ProjectStackId la establece el comando project create. Si por alguna razón desea asociar el proyecto con una pila de proyecto ya existente, puede utilizar la AWS Management Console para buscar el ARN de la pila y pegarlo en el archivo local-project-settings.json (vaya a AWS CloudFormation, seleccione la pila, seleccione Overview (Información general) y, a continuación, copie el valor de la propiedad Stack Id).

user-settings.json

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

Ubicación del archivo

El archivo user-settings.json se encuentra en dev\Cache\{game}\{OS}\user\AWS\user-settings.json. No está en el directorio dev\{game}\AWS junto con los demás archivos que se describen en esta sección porque no debe protegerse en el sistema de control de código fuente del proyecto.

Perfil de AWS predeterminado

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

lmbr_aws profile default --set profile_name

Para obtener más información, consulte profile default.

Archivos de plantilla de proyecto

Los archivos de plantilla de proyecto de Cloud CanvasAWS CloudFormationPlantillas deque definen los recursos, las pilas y los permisos de implementación de un proyecto. A continuación se muestran los archivos de plantilla de proyecto:

  • project-template.json

  • deployment-template.json

  • deployment-access-template.json

El contenido de cada uno de estos archivos se puede complementar con un archivo *-extensions.json correspondiente. A partir de Lumberyard 1.10, estos archivos se encuentran en la\Gems\CloudGemFramework\vN\ResourceManager\resource_manager\templatesdirectorio, dondeNrepresenta un número de versión de Cloud Gem framework.

project-template.json

Laproject-template.jsonarchivo es unAWS CloudFormationplantillaque define los recursos de todo el proyecto compatibles con el sistema de administración de recursos de Cloud Canvas. Para obtener más información sobre Cloud Canvas Resource Manager, consulteDescripción del administrador de recursos de Cloud Canvas. Para obtener información relacionada con la seguridad, consulte Descripción del sistema de seguridad del administrador de recursos.

deployment-template.json

En versiones de Lumberyard anteriores a la 1.10, la copia del proyectodeployment-template.jsonEl archivo contenía las definiciones de pila de cada uno de los grupos de recursos del proyecto. Ahora, estos recursos se insertan en la plantilla base antes de pasarla a AWS CloudFormation. Para determinar las pilas de grupos de recursos que incluir, Lumberyard lee laresource-template.jsonarchivos enAWS\resource-groupsubdirectorios y en elAWSsubdirectorios de gemas habilitadas.

deployment-access-template.json

El archivo deployment-access-template.json es una plantilla de AWS CloudFormation que define los recursos utilizados para asegurar una implementación. Para obtener más información sobre Cloud Canvas Resource Manager, consulteDescripción del administrador de recursos de Cloud Canvas. Para obtener información relacionada con la seguridad, consulte Descripción del sistema de seguridad del administrador de recursos.

Parameters

La pila de acceso de la implementación define los parámetros que identifican la implementación y otros recursos necesarios para configurar la seguridad de la implementación. Cloud Canvas proporciona un valor para cada uno de estos parámetros cuando se crea una implementación.

Resources

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

Player

LaPlayerrecurso describe elRol de IAMque determina el acceso concedido al jugador. Por ejemplo, para que el juego llame a una función de Lambda, se debe permitir al jugador lalambda:InvokeFunctionacción en el recurso de función Lambda.

Las políticas del rol las determinan los elementos de metadatos de PlayerAccess que se encuentran en las plantillas de recursos del proyecto (consulte resource-template.json). Las políticas del rol las actualizan los recursos PlayerAccess personalizados que aparecen en los archivos deployment-access-template.json resource-template.json. LaPlayerAccessIdentityPool Grupo de identidades en Amazon Cognitopermite a los jugadores asumir este rol.

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

PlayerLoginRole

Los recursos PlayerLoginRole describen el rol de IAM que asume temporalmente el jugador como parte del proceso de inicio de sesión.

Para obtener más información, consulte Control del acceso a los recursos de .

PlayerLoginIdentityPool

LaPlayerLoginIdentityPoolrecurso describe elGrupo de identidades en Amazon Cognitoque proporciona una identidad temporal al jugador durante el proceso de inicio de sesión.

Para obtener más información, consulte Control del acceso a los recursos de .

PlayerAccessIdentityPool

LaPlayerAccessIdentityPoolrecurso describe elGrupo de identidades en Amazon Cognitoque proporciona una identidad temporal al jugador durante el proceso de inicio de sesión.

Para obtener más información, consulte Control del acceso a los recursos de .

Archivos de extensión de plantilla

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

  • deployment-access-template-extensions.json

  • deployment-template-extensions.json

  • project-template-extensions.json

Puede utilizar los archivos de extensión para definir nuevos resultados, metadatos y recursos. No se admite la incorporación de parámetros de plantillas.

Para crear archivos de extensión, puede utilizar el comando lmbr_aws project create-extension-template. Para crear un archivo de plantilla de un determinado tipo, utilice el argumento correspondiente, como se muestra en los siguientes ejemplos.

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

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

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

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

En los archivos base de plantilla (sinextensión), la propiedad Custom::AccessControl del recurso DependsOn incluye todos los recursos definidos en los archivos de extensión en caso de que la propiedad DependsOn no especifique AccessControl.

Directorios de código

La ubicación y nomenclatura de los directorios de código ha cambiado en Lumberyard 1.10. Para obtener más información, consulte Cloud Gem Framework y control de versiones del administrador de recursos.

Directorios de código Lambda

A partir de Lumberyard 1.10, recomendamos que ponga el código Lambda enAWS\lambda-code\<lambda-name>directorios (por ejemplo,dev\Gems\CloudGemPlayerAccount\AWS\lambda-code) y el código compartido en uncommon-codedirectorio (por ejemplo,dev\Gems\CloudGemPlayerAccount\AWS\common-code).

En versiones de Lumberyard anteriores a 1.10, el código de las funciones Lambda de un grupo de recursos estaba en unAWS\lambda-function-codedirectory. A partir del Lumberyard 1.10, el uso deAWS\lambda-function-codeyAWS\<lambda-name>-lambda-codeYa no se recomiendan los directorios. La compatibilidad se eliminará en una próxima versión. En lugar de ello, recomendamos que ponga el código Lambda enAWS\lambda-code\<lambda-name>directorios.

Además, el uso del directorio shared-lambda-code ya no está recomendado. La compatibilidad también se eliminará en una próxima versión. En su lugar, utilice el directorio common-code más flexible. Para obtener más información, consulte Uso de código compartido. Para obtener información para actualizar los proyectos y gemas en la nube a la versión 1.0.0 del Cloud Gem Framework, consulte Actualización de proyectos y Cloud Gems a la versión 1.0.0 de Cloud Gem Framework.

Directorio proyect-code

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

También contiene el código que implementa el paso de intercambio de token del proceso de inicio de sesión de los jugadores. Para obtener más información, consulte Control del acceso a los recursos de .