Recursos personalizados - 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.

Recursos personalizados

Open 3D Engine (O3DE), el sucesor de Lumberyard, ya está disponible en Developer Preview. Descargar O3DEo visite elBlog de AWS Game Techpara obtener más información.

Cloud Canvas proporciona una serie deAWS CloudFormationrecursos personalizadosque se puede utilizar en elAWS CloudFormationarchivos de plantilla para proyectos, implementaciones y grupos de recursos. Estos recursos personalizados los implementa partir del código de la función Lambda que se encuentra en ladev\{game}\AWS\project-codey elProjectResourceHandlerrecurso definido en eldev\{game}\AWS\project-template.jsonfile. Estos recursos, en lugar de actuar como entidades estáticas, actúan más bien como funciones de biblioteca. Todos los recursos personalizados tienen propiedades de entrada y salida.

A continuación presentamos una lista resumida de recursos personalizados.

  • CognitoIdentityPool: administra los recursos del grupo de identidades de Amazon Cognito.

  • CognitoUserPool: administra los recursos del grupo de usuarios de Amazon Cognito.

  • EmptyDeployment— Utilizado en eldeployment-template.jsoncuando no se han definido grupos de recursos.

  • ResourceGroupConfiguration— proporciona datos de configuración para un grupo de recursosAWS CloudFormationrecurso de pila.

  • LambdaConfiguration: proporciona datos de configuración para recursos de funciones Lambday mantiene el rol de ejecución de la función Lambda.

  • Helper: proporciona funciones útiles para usarlas en plantillas.

  • API de servicio de Cloud Gem Framework: ofrece acceso mediante programación a funcionalidades de gema en la nube que puede utilizar para implementar características conectadas a la nube en su juego.

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

CognitoIdentityPool

LaCustom::CognitoIdentityPoolrecurso se utiliza en eldeployment-access-template.jsonpara crear y configurar recursos del grupo de identidades de Amazon Cognito.

Propiedades de Input

  • ConfigurationBucket

    Obligatorio. Nombre del bucket de Amazon S3 que contiene los datos de configuración.

  • ConfigurationKey

    Obligatorio. El key prefix de objeto de Amazon S3 en el que se encuentran los datos de configuración del proyecto en el bucket de configuración. Esta propiedad hace que AWS CloudFormation ejecute el controlador de recursos personalizados en cada operación.

  • IdentityPoolName

    Obligatorio. Nombre del grupo de identidades.

  • UseAuthSettingsObject

    Obligatorio. Debe ser true o false. Determina si el grupo de identidades de Amazon Cognito está configurado para utilizar los proveedores de autenticación que se crearon con eladd-login-providercomando.

  • AllowUnauthenticatedIdentities

    Obligatorio. Debe ser true o false. Determina si el grupo de identidades de Amazon Cognito está configurado para permitir identidades no autenticadas. ConsulteGrupos de identidades dePara obtener más información acerca de la compatibilidad de Amazon Cognito para identidades autenticadas y no autenticadas.

  • Roles

    Opcional. Determina la función de IAM que asumen los usuarios autenticados y no autenticados. Consulte SetIdentityPoolRoles para ver una descripción de esta propiedad.

Propiedades de salida

  • IdentityPoolName

    El nombre del grupo de identidades (igual que la propiedad de entrada IdentityPoolName).

  • IdentityPoolId

    Nombre del recurso físico del grupo de identidades.

CognitoUserPool

LaCustom::CognitoUserPoolrecurso se utiliza en elPlayer Account Cloud Gem resource-template.jsonpara crear y configurar recursos del grupo de usuarios de Amazon Cognito. Puede utilizar este recurso para agregar grupos de usuarios de Amazon Cognito y vincularlos a un grupo de identidades de Amazon Cognito.

Propiedades de Input

  • PoolName

    Obligatorio. El nombre del grupo de usuarios.

  • ConfigurationKey

    Obligatorio. El key prefix de objeto de Amazon S3 en el que se encuentran los datos de configuración del proyecto en el bucket de configuración. Esta propiedad hace que AWS CloudFormation ejecute el controlador de recursos personalizados en cada operación.

  • ServiceToken

    Obligatorio. Controlador para este tipo de recurso personalizado.

  • ClientApps

    Obligatorio. Lista de aplicaciones cliente que se ha de crear para el grupo de usuarios. Al menos debe proporcionarse una.

  • LambdaConfig

    Opcional. Mapeado de un nombre de disparador Lambda a un ARN de función Lambda. Este mapa se pasa a Amazon CognitoCreateUserPoolAPI de cuando se crea un grupo de usuarios y para Amazon CognitoUpdateUserPoolAPI cuando se actualiza un grupo de usuarios.

Metadatos de: Vinculación de un grupo de usuarios con un grupo de identidades

Para vincular un Custom::CognitoUserPool a un Custom::CognitoIdentityPool, agregue una sección Identities a la sección Metadata CloudCanvas, como en el siguiente ejemplo.

"Metadata": { "CloudCanvas": { "Identities": [ { "IdentityPoolName": "PlayerAccess", "ClientApp": "DefaultClientApp" } ] } }

El controlador de Custom::CognitoIdentityPool busca estos metadatos en recursos Custom::CognitoUserPool cuando configura el grupo de identidades. IdentityPoolName en los metadatos del grupo de usuarios debe coincidir con el elemento IdentityPoolName en las propiedades del grupo de identidades. ClientApp debe ser una de las aplicaciones que aparecen en la propiedad ClientApps del grupo de usuarios.

Propiedades de salida

  • UserPoolName

    El nombre del grupo de usuarios.

  • UserPoolId

    El ID del grupo de usuarios.

  • ClientApps

    Una lista que contiene el ClientId y el ClientName de cada una de las aplicaciones cliente del grupo de usuarios.

  • PhysicalResourceId

    ID del recurso físico del grupo de usuarios.

EmptyDeployment

El recurso Custom::EmptyDeployment se utiliza en el archivo deployment-template.json cuando no se han definido grupos de recursos. Esto es necesario para satisfacer el requisito de AWS CloudFormation de que una plantilla defina al menos un recurso.

Este recurso no tiene propiedades de entrada ni de salida.

ResourceGroupConfiguration

El recurso Custom::ResourceGroupConfiguration se utiliza en deployment-template.json para identificar la ubicación de la copia del archivo resource-template.json en el bucket de configuración que debe utilizarse para un grupo de recursos específico.

Propiedades de Input

  • ConfigurationBucket

    Obligatorio. Nombre del bucket de Amazon S3 que contiene los datos de configuración.

  • ConfigurationKey

    Obligatorio. El key prefix de objeto de Amazon S3 en el que se encuentran los datos de configuración de la implementación en el bucket de configuración.

  • ResourceGroup

    Obligatorio. El nombre del grupo de recursos que se va a configurar.

Propiedades de salida

  • ConfigurationBucket

    Nombre del bucket de Amazon S3 que contiene los datos de configuración. Siempre es igual que la propiedad de entrada ConfigurationBucket.

  • ConfigurationKey

    El key prefix de objeto de Amazon S3 en el que se encuentran los datos de configuración del grupo de recursos especificado en el bucket de configuración. Esta es la ConfigurationKey de entrada con la cadena ResourceGroup y el valor de ResourceGroup adjuntos.

  • TemplateURL

    La URL de Amazon S3 de la copia del grupo de recursos deresource-template.jsonen el bucket de configuración. Este valor debe utilizarse como el valor de la propiedad TemplateURL del grupo de recursos.

LambdaConfiguration

LaCustom::LambdaConfigurationrecurso se utiliza enresource-template.jsonpara proporcionar datos de configuración para recursos de función Lambda.

Propiedades de Input

  • ConfigurationBucket

    Obligatorio. Nombre del bucket de Amazon S3 que contiene los datos de configuración.

  • ConfigurationKey

    Obligatorio. El key prefix de objeto de Amazon S3 en el que se encuentran los datos de configuración del grupo de recursos en el bucket de configuración.

  • FunctionName

    Obligatorio. El nombre sencillo del recurso de función Lambda que se está configurado.

  • Settings

    Opcional. Los valores que están disponibles para el código de función Lambda.

  • Runtime

    Obligatorio. Identifica el tiempo de ejecución que se usa para la función Lambda.

Propiedades de salida

  • ConfigurationBucket

    Nombre del bucket de Amazon S3 que contiene los datos de configuración. Siempre es igual que la propiedad de entrada ConfigurationBucket.

  • ConfigurationKey

    El key prefix de objeto de Amazon S3 en el que se encuentra el código comprimido de la función especificada en el bucket de configuración.

  • Runtime

    El tiempo de ejecución de Lambda que usa la función. Siempre es igual que el valor de la propiedad de entrada Runtime.

  • Role

    El ID de la ejecución de la función Lambda creada para esta función.

Para obtener información sobre cómo se utiliza elLambdaConfigurationun recurso personalizado se usa para permitir que las funciones Lambdade realicen acciones especificadas en recursos de proyecto específicas, consulteControl del acceso a los recursos de .

Helper

El recurso Custom::Helper se utiliza en plantillas para llevar a cabo tareas sencillas similares a las que realizan las AWS CloudFormationfunciones intrínsecas de .

Propiedades de Input

  • Input

    Proporciona un objeto JSON que procesa el controlador de recursos personalizados.

Salida

La salida es la versión procesada del objeto JSON que facilita la propiedad Input.

Función Helper

El recurso Helper admite la siguiente función. La función se aplica al valor de la propiedad Input desde el controlador de recursos para producir el resultado.

HelperFn::LowerCase

Convierte una cadena de caracteres a minúsculas.

Sintaxis

{ "HelperFn::LowerCase" : "converted-string-value" }

Example

El siguiente ejemplo del archivo project-template.json utiliza HelperFn::LowerCase para convertir a minúsculas un nombre de pila.

{ ... "Resources": { ... "Helper": { "Type": "Custom::Helper", "Properties": { "Input": { "LowerCaseStackName": { "HelperFn::LowerCase": { "Ref": "AWS::StackName" } } }, "ServiceToken": ... } }, ... { "Fn::Join": [ "", [ "arn:aws:s3:::", { "Fn::GetAtt": [ "Helper", "LowerCaseStackName" ] }, "-*" ] ] } ... }