Enlaces del administrador de recursos de Cloud Gem Framework - 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.

Enlaces del administrador de recursos de Cloud Gem Framework

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.

El administrador de recursos de Cloud Canvas garantiza que elAWSLos recursos que el juego utiliza coinciden con las definiciones de esos recursos en el código fuente del juego. Sin embargo, es posible que necesite añadir funcionalidades a estos procesos. Por ejemplo, en el caso de la gema en la nube de contenido dinámico, debe cargar los paquetes predeterminados para el proyecto inmediatamente después de crear una nueva implementación.

El administrador de recursos proporciona algunos módulos de enlaces Python para las gemas en la nube. El código para estos módulos se encuentra en el directorio resource-manager-code, dentro del directorio de AWS de la gema en la nube (por ejemplo, \dev\Gems\CloudGemDynamicContent\AWS\resource-manager-code).

Se admiten los siguientes módulos:

  • update.py: contiene funciones a las que se llama antes y después de las operaciones de actualización de la pila. Para obtener más información, consulte Funciones de enlace de actualización.

  • command.py: contiene funciones que añaden nueva compatibilidad con la CLI y la GUI al administrador de recursos. Para obtener más información, consulte Funciones de enlace de comando.

Parámetros de la función de enlaces

Así se llama a todas las funciones de enlace:

  • Un parámetro que representa la función de enlace.

  • Algunos argumentos de palabras clave específicos para cada función de enlace.

El parámetro que representa la función de enlace es un objeto HookModule. La propiedad más importante proporcionada por el objeto HookModule es context, que es un Objeto Context. LaContextle da a su función de enlace acceso a los datos de configuración del administrador de recursos de Cloud Canvas para el proyecto.

Preparación de las funciones para el futuro

Al escribir una función de enlace, añada siempre la construcción de Python **kwargs como último argumento. De esta forma, la función puede aceptar con fluidez (e pasar por alto) argumentos que las futuras versiones del administrador de recursos pueda añadir después de que su función se haya escrito.

Por ejemplo, suponga que el administrador de recursos pasa los argumentos arg_a y arg_b a su función de enlace. La función de enlace se declara como se indica a continuación:

def a_hook(hook, arg_a, arg_b, **kwargs)

Posteriormente, cuando el administrador de recursos añada un argumento arg_c, su función de enlace ya no se dañará. Su función podrá aceptar arg_a y arg_b pero pasar por alto arg_c, ya que arg_c se pasó mediante el parámetro kwargs.

Objetos del administrador de recursos Cloud Canvas

El administrador de recursos de Cloud Canvas incluye objetos Python que puede utilizar para obtener acceso a los datos de configuración de los proyectos y realizar diversas operaciones relacionadas con los proyectos.

nota

El código fuente para estos objetos se encuentra en Lumberyarddev\Tools\lmbr_aws\AWSResourceManagerdirectory.

Objeto Context

El objeto Context tiene propiedades que proporcionan acceso a la configuración del proyecto y que realizan operaciones como agregar las definiciones de los recursos a una plantilla de grupo de recursos.

Puede obtener una instancia de objeto Context a partir de la propiedad context de la instancia de objeto HookModule transferida a las funciones de enlace.

Nombre Descripción
aws Un objeto AWSContext.
config Un objeto ConfigContext.
gem Un objeto GemContext.
hooks Un objeto HookContext.
resource_groups Un objeto ResourceGroupContext.
stack Un objeto StackContext.
view Un objeto ViewContext.

Las demás propiedades o funciones de este objeto son internas para el administrador de recursos y no deben utilizarse.

Objeto AWSContext

El objeto AWSContext tiene funciones y propiedades de ayudante relacionadas con los clientes y las credenciales de AWS.

Puede obtener una instancia de objeto AWSContext desde la propiedad aws de un objeto Context.

Name Descripción
assume_role(logical_role_id, deployment_name)

Asume un rol que utiliza las credenciales de AWS actuales. Los nuevos clientes que se crearon a partir de la función client utilizan las credenciales temporales que se crearon al asumir el rol. Estas credenciales tienen una vida útil de 3600 segundos (5 minutos).

El parámetro logical_role_id puede ser el nombre lógico de un recurso AWS::IAM::Role definido en los archivos project-template.json o deployment-access-template.json. En el caso de un tol definido en el archivo deployment-access-template.json, deployment_name identifica el rol real que se asumirá.

client(service_name, region=None, use_role=True)

Crea un cliente de API de AWS de Python (boto3) para el servicio de AWS especificado. Si use_role es True, el cliente utiliza las credenciales que se crearon cuando se llamó a assume_role.

El objeto devuelto es un encapsulador alrededor del objeto de cliente boto3 en sí. El encapsulador registra todas los intentos de llamada a la API y las respuestas cuando se pasa la opción --verbose a lmbr_aws. Esto ayuda en la depuración.

El encapsulador del cliente también realiza reintentos con retardo exponencial.

get_credentials_file_path() Devuelve la ruta completa al archivo .aws/credentials.
get_default_profile() Obtiene el nombre de perfil de las credenciales de AWS que se utiliza de forma predeterminada cuando se crean clientes.
get_temporary_credentials(logical_role_id, deployment_name, duration_seconds)

Crea credenciales temporales con las credenciales actuales para asumir un rol.

El parámetro logical_role_id puede ser el nombre lógico de un recurso AWS::IAM::Role definido en los archivos project-template.json o deployment-access-template.json. En el caso de un rol definido en el archivo deployment-access-template.json, deployment_name identifica el rol en sí que se asumirá.

El valor devuelto es un valor dict de Python con las siguientes propiedades:

AccessKeyId

SecretAccessKey

SessionToken

load_credentials() Devuelve un objeto AWSCredentials que contiene los datos leídos del archivo .aws/credentials.
profile_exists(profile_name) Determina si el perfil especificado existe en el archivo .aws/credentials.
save_credentials(credentials) Guarda un objeto AWSCredentials modificado en el archivo .aws/credentials.
session El objeto de sesión boto3 que utiliza client().
set_default_profile Establece el perfil de credenciales de AWS que se utiliza cuando se crean clientes. Esto restablece la propiedad session.

Las demás propiedades o funciones de este objeto son internas para el administrador de recursos y no deben utilizarse.

Objeto AWSCredentials

El objeto AWSCredentials contiene información sobre las credenciales de AWS que se leen en el archivo .aws/credentials. Se trata básicamente un encapsulador alrededor de un objeto ConfigParser de Python. El objeto AWSCredentials gestiona el uso del archivo de credenciales de AWS de la sección default, la cual entra en conflicto con la manera en la que ConfigParser gestiona la configuración predeterminada.

Para obtener una instancia de objeto AWSCredentials, utilice la función load_credentials en un objeto AWSContext.

Nombre Descripción
add_section(section_name) Añade una sección.
get(section_name, option_name) Obtiene el valor de una opción en una sección.
has_option(section_name, option_name) Determina si una opción existe en una sección.
has_section(section_name) Determina si una sección existe.
items(section_name) Devuelve una lista de pares de nombre-valor de las opciones en una sección.
options(section_name) Devuelve una lista de opciones en una sección.
read(path) Lee las credenciales desde un archivo con la ruta especificada.
remove_option(section_name, option_name) Elimina una opción de una sección.
remove_section(section_name) Elimina una sección.
sections() Devuelve una lista de nombres de sección. Cada perfil está representado por una sección.
set(section_name, option_name, value) Establece un valor de opción.
write(path) Escribe las credenciales en un archivo con la ruta especificada.

Las demás propiedades o funciones de este objeto son internas para el administrador de recursos y no deben utilizarse.

Objeto ConfigContext

El objeto ConfigContext tiene propiedades y funciones que proporcionan acceso a los datos de configuración de implementación y proyectos.

Puede obtener una instancia de objeto ConfigContext desde la propiedad config de un objeto Context.

Nombre Descripción
aws_directory_path La ruta completa al proyecto de juego habilitado actualmente (según determine el archivo bootstrap.cfg o las opciones transferidas a lmbr_aws).
base_resource_group_directory_path El directorio donde se encuentran los grupos de recursos definidos por el proyecto (en lugar de los definidos por gemas). Este suele ser el subdirectorio resource-group que se encuentra en el directorio que identifica aws_directory_path.
clear_user_default_deployment() Borra la opción de implementación predeterminada.
clear_user_default_profile() Borra el nombre del perfil de credenciales de AWS predeterminado. Esto no actualiza el archivo .aws/credentials. El nombre del perfil predeterminado se guarda en el archivo de configuración de usuario de Cloud Canvas Resource Manager.
configuration_bucket_name El nombre de laConfigurationBucket de Amazon S3

copy_default_lambda_function_content

(destination_path)

Copia el contenido de la función de Lambda predeterminada en la ubicación especificada.
copy_default_project_content(destination_path) Copia el contenido del directorio del proyecto de AWS predeterminado en la ubicación especificada.
copy_default_resource_group_content(destination_path) Copia el contenido del grupo de recursos predeterminado en la ubicación especificada.
copy_example_resource_group_content(destination_path) Copia el contenido del grupo de recursos de ejemplo en la ubicación especificada.
default_deployment El nombre de la implementación predeterminado para el usuario actual si se ha especificado un nombre predeterminado. Si se ha especificado un valor predeterminado, el valor es el de user_default_deployment; de lo contrario, es el de project_default_deployment.
deployment_access_template Un objeto de Python que incluye el contenido del archivo de la plantilla de acceso de implementación.
deployment_access_template_path La ruta completa al archivo del proyecto deployment-access-template.json.
deployment_names Una lista con los nombres de las implementaciones del proyecto.
deployment_stack_exists(deployment_name) Determina si existe una pila de implementación.
finalize_deployment_stack_ids(deployment_name) Confirma los ID de implementación pendiente y de pila de acceso de implementación como los ID de pila de la implementación. Consulte set_pending_deployment_stack_id y set_pending_deployment_access_stack_id.
game_directory_path La ruta completa al proyecto de juego habilitado actualmente (según determine el archivo bootstrap.cfg o las opciones transferidas a lmbr_aws).
gem_directory_path La ruta completa al directorio donde se definen las gemas. Este es el subdirectorio Gems del directorio que identifica root_directory_path.
get_default_deployment_stack_name(deployment_name) Obtiene el nombre de la pila predeterminada para una implementación con el nombre especificado.
get_deployment_access_stack_id(deployment_name, optional=False) Obtiene el ARN de una pila de acceso de implementación. Si la pila de implementación especificada no existe, emite un código HandledError o devuelve None si optional es True.
get_deployment_stack_id(deployment_name, optional=False) Obtiene el ARN de una pila de implementación. Si la pila de implementación especificada no existe, emite un código HandledError o devuelve None si optional es True.
get_game_directory_name() Obtiene el nombre del directorio del juego desde el archivo bootstrap.cfg.
get_project_stack_name() Obtiene el nombre de la pila del proyecto.
get_protected_depolyment_names() Devuelve una lista con los nombres de implementación protegidos. Para obtener más información, consulte protect_deployment y unprotected_deployment.
get_resource_group_stack_id(deployment_name, resource_group_name, optional=False) Obtiene el ARN de la pila de grupo de recursos. Si la pila del grupo de recursos especificada no existe, emite un código HandledError o devuelve None si optional es True.
local_project_settings_path Ruta completa al archivo que almacena la configuración del proyecto que se conserva en un archivo con control en origen (en lugar de la configuración del proyecto almacenada en AWS). Normalmente, este es el archivo local-project-settings.json en el directorio identificado por aws_directory_path.
no_prompt Cuando el valor es True, especifica que se ha pasado la opción --no-prompt a lmbr_aws. Esta opción se suele utilizar cuando se llama a lmbr_aws partir de scripts. Cuando se especifica esta opción, la función de enlace debería emitir un error en lugar de una solicitud al usuario.
project_code_path La ruta al directorio del proyecto project-code.
project_default_deployment El nombre de la implementación que se ha designado como predeterminada para el proyecto, si la hubiera. Consulte también user_default_deployment y default_deployment.
project_initialized True si el proyecto se ha inicializado y project_stack_id tiene un valor; de lo contrario, False.
project_resource_handler_id El ARN de laProjectResourceHandlerFunción Lambda. Las plantillas de recursos definidas por Cloud Canvas exigen que este valor se indique como laProjectResourceHandlervalor del parámetro.
project_settings Un objeto ProjectSettings que contiene la configuración del proyecto que se carga desde AWS (en lugar del contenido de local_project_settings).
project_stack_id El ID de pila del proyecto, si se ha creado la pila del proyecto.
project_template Un objeto de Python con el contenido del archivo de plantilla del proyecto.
project_template_path La ruta completa al archivo del proyecto project-template.json.
protect_deployment(deployment_name) Marca una implementación como protegida. Requiere confirmación especial antes de poder conectar compilaciones de depuración del juego con implementaciones protegidas. Consulte también unprotect_deployment y get_protected_deployment_names.
refresh_user_settings() Una función que vuelve a cargar el objeto user_settings desde el archivo de configuración del usuario.
release_deployment El nombre de la implementación que se ha designado como la implementación de lanzamiento del proyecto.
remove_deployment(deployment_name) Elimina una implementación de la configuración del proyecto.
root_directory_path La ruta completa al directorio raíz de Lumberyard (el\dev), que contiene los directorios específicos de un proyecto.
save_deployment_access_template() Guarda el objeto deployment_access_template actual en el archivo deployment-access-template.json del proyecto.
save_deployment_template() Guarda el objeto deployment_template actual en el archivo deployment-template.json del proyecto.
save_project_template() Una función que guarda el objeto project_template actual en el archivo project-template.json del proyecto.
set_pending_deployment_access_stack_id(deployment_name, deployment_access_stack_id) Establece el ID de la pila de acceso de la implementación que se está creando. Para obtener más información, consulte finalize_deployment_stack_ids y set_pending_deployment_stack_id.
set_pending_deployment_stack_id(deployment_name, deployment_stack_id) Establece el ID de la pila de la implementación que se está creando. Para obtener más información, consulte finalize_deployment_stack_ids y set_pending_deployment_access_stack_id.
set_project_default_deployment(deployment_name) Establece la implementación predeterminada para el proyecto. Si se especifica una implementación predeterminada del usuario, esta invalida a la predeterminada del proyecto.
set_release_deployment(deployment_name) Establece la implementación de lanzamiento para el proyecto.
set_user_default_deployment(deployment_name) Establece la implementación predeterminada del usuario. Una vez establecida, invalida la implementación predeterminada del proyecto.
set_user_default_profile(profile_name) Establece el perfil de credenciales de AWS predeterminadas del usuario. Esto no actualiza el.aws/credentials; el nombre del perfil predeterminado se guarda en el archivo de configuración de usuario del administrador de recursos de Cloud Canvas.
unprotect_deployment(deployment_name) Invierte la acción de protect_deployment.
user_default_deployment El nombre de la implementación que se ha designado como predeterminada para el usuario actual. Para obtener más información, consulte project_default_deployment y default_deployment.
user_default_profile El nombre de perfil de AWS predeterminado del usuario como se ha leído en la configuración del usuario.
user_directory_path La ruta completa al directorio del usuario en el directorio de la caché de Lumberyard. Aquí es donde se almacena la configuración específica del usuario.
user_settings Un objeto de Python con el contenido del archivo de configuración del usuario.
user_settings_path La ruta completa al archivo de texto de formato JSON que el administrador de recursos utiliza para almacenar la configuración específica del usuario. Esta configuración incluye la implementación predeterminada y los nombres de perfil de las credenciales de AWS. Normalmente, esta ruta es el archivo user-settings.json que se encuentra en el directorio especificado por user_directory_path.

Las demás propiedades o funciones de este objeto son internas para el administrador de recursos y no deben utilizarse.

Objeto Gem

El objeto Gem proporciona acceso a datos de configuración específicos de una gema. Para obtener instancias de objeto Gem, utilice la propiedad enabled_gems de un objeto GemContext.

Nombre Descripción
aws_directory La ruta completa al directorio de AWS de la gema.
aws_directory_exists Verdadero si existe el directorio de AWS de la gema.
display_name El nombre mostrado de la gema.
file_object Un objeto de Python con el contenido del archivo gem.json de la gema.
name El nombre de la gema.
project_resources Las definiciones de recursos de proyectos que se insertan en la plantilla de pila del proyecto antes de que se cargue la plantilla. Estas definiciones se leen desde un archivo project-template.json en el directorio de AWS de la gema.
resource_group_name El grupo de recursos de la gema, si lo hubiera. Una gema tiene un nombre de grupo de recursos solamente si esta tiene un archivo resource-template.json.
root_directory La ruta completa al directorio de de la gema.
uuid El ID exclusivo de la gema.

Otras propiedades o funciones de este objeto son internas del administrador de recursos y no se deben utilizar.

Objeto GemContext

Las propiedades y métodos del objeto GemContext proporcionan acceso a la configuración de la gema del proyecto.

Puede obtener una instancia de objeto GemContext utilizando la propiedad gems de un objeto Context.

Nombre Descripción
enabled_gems Una lista con un objeto de gema para cada gema habilitada para el proyecto.
get_by_resource_group_name(resource_group_name) Devuelve el objeto de gema asociado con el grupo de recursos específico, o None si el grupo de recursos no existe o no está asociada con ninguna gema. De forma predeterminada, el nombre del grupo de recursos es el mismo que el nombre de la gema, pero puede colocarse una propiedad ResoruceGroupAlias en el archivo gem.json de la gema para invalidar el nombre predeterminado.

Las demás propiedades o funciones de este objeto son internas para el administrador de recursos y no deben utilizarse.

Objeto HandledError

El objeto HandledError es un objeto Exception de Python. Puede utilizarlo en una función de enlace para hacer que se visualice un error previsto sin generar rastro en la pila. En general, el administrador de recursos considera otro tipo de excepciones errores inesperados y puede mostrar información de depuración que los usuarios no deberían ver como errores esperados.

La clase HandledError aparece definida en el módulo AWSResourceManager.errors (\dev\Tools\lmbr_aws\AWSResourceManager\errors.py). Vea el siguiente ejemplo para crear una instancia.

from AWSResourceManager.errors import HandledError def my_function(): if something_is_wrong: raise HandledError('Something is wrong.')

Objeto HookModule

El primer argumento (y el único argumento posicional) transferido a una función de enlace es un objeto HookModule que representa el módulo de enlace en sí. Estas propiedades de objeto le dan acceso a los datos de configuración del proyecto.

Nombre Descripción
context Proporciona acceso a un objeto Context.
hook_name El nombre de la gema en la nube que define el módulo de enlace.
hook_path La ruta completa al directorio de la gema en la nube de AWS donde se define el módulo de enlace.

Las demás propiedades o funciones de este objeto son internas para el administrador de recursos y no deben utilizarse.

Objeto HookContext

LaHookContextproporciona funcionalidad para trabajar con enlaces del administrador de recursos de Cloud Canvas.

Puede obtener una instancia de objeto HookContext desde la propiedad hooks de un objeto Context.

Nombre Descripción
call_module_handlers(module_name, handler_name, args=(), kwargs={}, deprecated=False) Llama a la función de enlace identificada por handler_name en el módulo que identifica module_name. Utilice el parámetro kwargs para pasar argumentos de palabras clave a la función de controlador. El parámetro args solo se puede utilizar si deprecated es True. Si deprecated es True, aparece una advertencia relativa a la función no disponible.
call_single_module_handler(module_name, handler_name, defining_module_name, args=(), kwargs={}, deprecated=False) Llama a una función de enlace establecida por la gema o por el grupo de recursos especificado por el parámetro defining_module_name. Para ver una descripción del resto de parámetros, consulte call_module_handlers.

Las demás propiedades o funciones de este objeto son internas para el administrador de recursos y no deben utilizarse.

Objeto ProjectSettings

LaProjectSettingsadministra los datos de configuración del proyecto almacenados en elproject-settings.jsonarchivo en Amazon S3 del proyectoConfigurationcubo de.

Nombre Descripción
get_deployment(deployment_name)

Devuelve el diccionario de configuración para la implementación especificada. El diccionario contiene las siguientes claves:

DeploymentStackId: el ARN de la pila de implementación.

DeploymentAccessStackId: el ARN de la pila de acceso de implementación.

resource-group: el diccionario de configuración del grupo de recursos para la implementación. Para ver una descripción de este valor, consulte get_resource_group_settings.

get_deployments() Devuelve el diccionario de configuración completo para implementaciones. El nombre de la implementación es la clave. Puede estar presente el nombre de la implementación especial *, que contiene la configuración para todas las implementaciones. Para ver una descripción del diccionario de valores, consulte get_deployment.
get_project_default_deployment() Devuelve la implementación predeterminada para el proyecto.
get_release_deployment() Devuelve la implementación de lanzamiento para el proyecto.
get_resource_group_settings(deployment_name)

Devuelve un diccionario que contiene la configuración del grupo de recursos para la implementación especificada. El nombre del grupo de recursos es la clave. Puede estar presente el nombre del grupo de recursos *, que contiene la configuración para todos los grupos de recursos.

Cada valor es un diccionario con la siguiente clave:

parameter: un diccionario que contiene los valores de los parámetros de la plantilla de grupo de recursos.

remove_deployment(deployment_name) Elimina la configuración para el nombre de implementación especificado. Para confirmar este cambio, llame a save.
remove_project_default_deployment() Borra la implementación predeterminada para el proyecto. Para confirmar este cambio, llame a save.
remove_release_deployment() Borra la implementación de lanzamiento para el proyecto. Para confirmar este cambio, llame a save.
save() Guarda la configuración actual en el bucket de Amazon S3.
set_project_default_deployment(deployment_name) Establece la implementación predeterminada para el proyecto. Para confirmar este cambio, llame a save.
set_release_deployment(deployment_name) Establece la implementación de lanzamiento para el proyecto. Para confirmar este cambio, llame a save.

Las demás propiedades o funciones de este objeto son internas para el administrador de recursos y no deben utilizarse.

Objeto ResourceGroup

El objeto ResourceGroup encapsula una configuración de un grupo de recursos. Si hay varias pilas de grupo de recursos para un determinado grupo de recursos, cada pila de grupo de recursos se asocia con una sola implementación.

Para obtener instancias de objeto ResourceGroup, utilice un objeto ResourceGroupContext.

Nombre Descripción
add_output(logical_id, description, value, force=False) Añade un valor de salida a la plantilla de recursos del grupo de recursos. Si force es False, no se sustituye una salida existente que tenga el mismo nombre, sino que se sustituye si force es True. Para guardar los cambios, llame a save_template. Devuelve True si se añaden salidas.
add_parameters(parameter_definitions, force=False) Añade definiciones de parámetros a la plantilla de recursos del grupo de recursos. El parámetro parameter_definitions es un diccionario que se fusiona con las definiciones de parámetros en la plantilla. Si force es False, no se sustituirán las definiciones existentes, sino que se sustituirán si force es verdadero. Para guardar los cambios, llame a save_template. Devuelve True si se añaden definiciones de parámetros.
add_resources(resource_definitions, force=False, dependencies=None)

Añade definiciones de recursos a la plantilla de recursos del grupo de recursos. El parámetro resource_definitions es un diccionario que se fusiona con el valor del objeto Resources actual de la plantilla. Si force es False, no se sustituyen las definiciones existentes, sino que se sustituirán si force es True.

El parámetro dependencies puede ser un diccionario que especifica una lista de valores que se añaden a la lista de recursos existente DependsOn. Los recursos nuevos siempre se añaden a la lista AccessControl del recurso DependsOn, incluso si no se especifica el parámetro dependencies. Para guardar los cambios, llame a save_template. Devuelve True si se añaden definiciones de recursos.

copy_directory(source_path, relative_destination_path='.', force=False) Copia el contenido de un directorio específico en el directorio del grupo de recursos. Si se especifica un valor para relative_destination_path, el contenido se escribe en el subdirectorio especificado del directorio del grupo de recursos. Si force es False, no se sustituyen los archivos existentes, sino que se sustituirán si force es True. Devuelve True si se copia algún archivo.
copy_file(source_path, relative_destination_path, force=False) Copia un archivo al directorio del grupo de recursos. El parámetro relative_destination_path puede contener el nombre del archivo de destino o una ruta de destino y un nombre de archivo. Si force es False, no se sustituyen los archivos existentes, sino que se sustituirán si force es True. Devuelve True si se copia el archivo.
create_file(relative_destination_path, initial_content, force=False) Crea un archivo en el directorio del grupo de recursos. El parámetro relative_destination_path puede contener el nombre del archivo de destino o una ruta de destino y un nombre de archivo. El parámetro initial_content debería incluir el contenido de texto inicial para el archivo. Si force es falso, no se sustituyen los archivos existentes, sino que se sustituirán si force es True. Devuelve True si se crea el archivo.
directory_path La ruta completa al directorio del grupo de recursos.
game_cpp_code_path La ruta completa al directorio donde debería escribirse el código C++ asociado al grupo de recursos. Este parámetro se utiliza cuando se genera código de cliente de la API de servicio.
get_pending_resource_status(deployment_name) Obtiene un diccionario que describe el estado de recurso pendiente del grupo de recursos. El estado se determina comparando las definiciones de los recursos configurados, el código Lambda y los valores de los parámetros con las definiciones, el código y los valores actuales.
get_stack_id(deployment_name, optional=False) Obtiene el ID de pila del grupo de recursos para la implementación especificada. Si no hay pila para el grupo de recursos, emite un error HandledError o devuelve None si el valor de "optional" es True.
get_stack_parameters(deployment_name, uploader) Obtener el parámetro de pila para la implementación especificada. El parámetro uploader debe ser un objeto Uploader, el cual se utiliza para determinar los valores para los parámetros ConfigurationBucket y ConfigurationKey.
get_template_with_parameters(deployment) Devuelve un objeto de Python que incluye el contenido del archivo resource-template.json del grupo de recursos. Los valores predeterminados de los parámetros de la plantilla se establecen de acuerdo con la configuración de parámetros para la implementación especificada.
is_gem True si el grupo de recursos lo define una gema; False si el grupo de recursos se define en el directorio resource-group del proyecto.
name El nombre del grupo de recursos.
remove_output(logical_id) Elimina un valor de salida de la plantilla de recursos del grupo de recursos. Devuelve True si había valor de salida y se ha eliminado. Para guardar los cambios, llame a save_template.
remove_parameters(parameter_names) Elimina las definiciones de parámetros de la plantilla de recursos del grupo de recursos. El parámetro parameter_names debe ser una lista con los nombres de los parámetros que eliminar. Devuelve True si se eliminan las definiciones de parámetros.
remove_resources(resource_names) Elimina las definiciones de recursos de la plantilla de recursos del grupo de recursos. El parámetro resource_names debe ser una lista con los nombres lógicos de los recursos que eliminar. Devuelve True si se eliminan las definiciones de recursos. Para guardar los cambios, llame a save_template.
save_template() Guarda el valor actual de la propiedad de la plantilla en el archivo resource-template.json del grupo de recursos.
template Un objeto de Python que incluye el contenido del archivo resource-template.json del grupo de recursos.
template_path La ruta completa al archivo resource-template.json del grupo de recursos.

Las demás propiedades o funciones de este objeto son internas para el administrador de recursos y no deben utilizarse.

Objeto ResourceGroupContext

El objeto ResourceGroupContext proporciona acceso a los datos de configuración del grupo de recursos. Para obtener un objeto ResourceGroupContext, utilice la propiedad resource_groups del objeto Context.

Nombre Descripción
get(name, optional=False) Devuelve un objeto ResourceGroup para el grupo de recursos especificado. Si no existe el grupo de recursos, emite un error HandledError, o ninguno si optional es True.
keys() Devuelve los nombres de los grupos de recursos en una lista.
values() Devuelve una lista de objetos ResourceGroup.

Las demás propiedades o funciones de este objeto son internas para el administrador de recursos y no deben utilizarse.

Objeto StackContext

El objeto StackContext ofrece una serie de funciones de ayudante útiles a la hora de trabajar con pilas de AWS CloudFormation. Para obtener una instancia de objeto StackContext, utilice la propiedad stack del objeto Context.

Nombre Descripción
confirm_stack_operation(stack_id, stack_description, args, pending_resource_status, ignore_resource_types = [])

Muestra los cambios pendientes y una pregunta de confirmación de la operación de pila pendiente.

El valor del parámetro args debería corresponder son los argumentos de línea de comando analizados para el comando. Se utiliza para evitar mostrar preguntas de confirmación si se proporcionan las opciones --confirm-... necesarias.

El parámetro ignore_resource_types es una lista de tipos de recursos que no están incluidos en la lista de cambios que se muestra al usuario. Este parámetro filtra los cambios en el recurso Custom::EmptyDeployment.

create_using_template(stack_name, template_body, region, created_callback=None, capabilities=[]) Utiliza la plantilla proporcionada para iniciar una operación de creación de pila. Devuelve los eventos de pila hasta que se haya completado la operación de creación. Si el valor de created_callback no es None, el valor deberá ser una función a la que se haya llamado con el ID de pila creado como único parámetro.
create_using_url(stack_name, template_url, region, parameters=None, created_callback=None, capabilities=[]) Utiliza una plantilla identificada por una URL para iniciar una operación de creación de pila. Devuelve los eventos de pila hasta que se haya completado la operación de creación. Si el valor de created_callback no es None, el valor deberá ser una función a la que se haya llamado con el ID de pila creado como único parámetro.
delete(stack_id, pending_resource_status=None)

Inicia una operación de eliminación de pila y muestra eventos de pila hasta que se haya completado la operación de eliminación.

Si se proporciona, elpending_resource_statusespecifica los recursos que eliminar de un bucket de Amazon S3; para preparar la eliminación del bucket en sí. Para recuperar un valor para este parámetro, utilice la función get_pending_resource_status en un objeto ResourceGroup, o utilice la función get_pending_resource_status en el objeto StackContext. Al preparar un bucket de S3 para eliminarlo, se eliminan todos los objetos del bucket, a menos que el bucket especifique un valor DeletionPolicy para la propiedad Retain.

describe_resources(stack_id, recursive=True, optional=False)

Utiliza la API describe_stack_resources de AWS CloudFormation para devolver una descripción de los recursos de una pila. El contenido de la estructura StackResources se convierte en un diccionario marcado en el ID lógico del recurso.

Si recursive es True, se devuelven también las descripciones de los recursos en las pilas anidadas. En este caso, el ID lógico del recursos sigue el formato <nested-stack-logical-id>.<nested-resource-logical-id>

Si no existe la pila, se emite un error HandledError si optional es False. De lo contrario, se devuelve un diccionario vacío.

describe_stack(stack_id, optional=False) Devuelve un diccionario que contiene los datos devueltos por una llamada a la API describe_stacks de AWS CloudFormation. Si no existe la pila, se emite un error HandledError o devuelve None si el valor de "optional" es True.
get_current_parameters(stack_id) Obtiene los valores actuales de los parámetros de la plantilla de AWS CloudFormation de la pila.
get_current_template(stack_id) Obtiene un objeto de Python que contiene la plantilla de AWS CloudFormation actual de la pila.
get_pending_resource_status(stack_id, new_template={}, new_parameter_values={}, new_content_paths={})

Obtiene un diccionario que describe el estado de recurso pendiente de una pila. El estado se determina comparando las definiciones de los recursos configurados, el código Lambda y los valores de los parámetros con las definiciones, el código y los valores actuales.

El parámetro new_template es la plantilla de definiciones de recursos con la que se comparará la plantilla actual de la pila.

El parámetro new_parameter_values es un diccionario de valores de parámetros que se comparará con los valores de parámetros actuales de la pila.

El parámetro new_content_paths es un diccionario que asigna nombres de recursos lógicos a una lista de rutas completas a directorios o archivos. Las rutas especifican dónde está almacenado el contenido relacionado con cada recurso. Un recurso tiene estado de actualización pendiente si se ha modificado cualquiera de estos archivos desde la última vez que se actualizó el estado del recurso.

get_physical_resource_id(stack_id, logical_resource_id, expected_type=None, optional=False) Obtiene el ID físico de un recurso en la pila especificada. Si se especifica expected_type, se verifica que el tipo de recurso sea de ese tipo. Si el tipo devuelto no es el tipo especificado, emite un error HandledError. Si no existe el recurso especificado, emite un error HandledError o devuelve None si optional es True.
get_resource_arn(stack_id, logical_resource_id) Obtiene el ARN para un recurso en la pila especificada.
get_stack_status(stack_id) Obtiene información sobre el estado de la pila. Esta función llama a la API describe_stacks de AWS CloudFormation y devuelve la propiedad StackStatus de la primera entrada en la matriz Stacks de la respuesta.
id_exists(stack_id) Determina si existe una pila con el ID especificado (ARN).
name_exists(stack_name, region) Determina si existe una pila con el nombre especificado en la región especificada.
update(stack_id, template_url, parameters={}, pending_resource_status={}, capabilities={})

Inicia una operación de actualización de pila y muestra eventos de pila hasta que se haya completado la operación de actualización.

Si se proporciona, el parámetro pending_resource_status especifica los recursos que eliminar de un bucket de S3; para preparar la eliminación del bucket en sí. Para recuperar un valor para este parámetro, utilice la función get_pending_resource_status en un objeto ResourceGroup. También puede utilizar la función get_pending_resource_status en el objeto StackContext. Al preparar un bucket de S3 para eliminarlo, se eliminan todos los objetos del bucket, a menos que el bucket especifique un valor DeletionPolicy para la propiedad Retain.

Las demás propiedades o funciones de este objeto son internas para el administrador de recursos y no deben utilizarse.

Objeto ViewContext

LaViewContextcontiene métodos que generan mensajes de salida del administrador de recursos de Cloud Canvas. Las funciones de enlace normalmente no necesitan estas funciones. Para obtener más información, consulte el código fuente para este objeto.

Objeto Uploader

Puede utilizar una función de objeto Uploader para cargar contenido en el área global del proyecto del bucket Configuration del proyecto. El usuario pasa instancias de objeto Uploader a las funciones de enlace before_project_update, after_project_update, before_resource_group_update y after_resoruce_group_update.

Nombre Descripción
context El objeto Context actual.
bucket El nombre del bucket Configuration del proyecto.
key El prefijo de nombre del objeto que se utiliza cuando se nombran los objetos cargados.
upload_content(name, content, description) Carga el contenido especificado utilizando key + '/' + name como nombre de objeto. Se muestra una descripción de la carga al usuario.
upload_file(name,path) Carga un archivo utilizando key + '/' + name como nombre de objeto.
upload_dir(name, path, alternate_root = None) Utiliza key + '/' + name como nombre de objeto base para cargar de forma recursiva los contenidos de un directorio. Si alternate_root no es None, el valor especificado se utiliza como prefijo de nombre del objeto en lugar de key.
zip_and_upload_directory(directory_path, file_name=None, aggregated_directories=None, aggregated_content=None)

Comprime el contenido de un directorio de forma recursiva en un archivo .zip. Utiliza key + '/' + directory-name.zip como el nombre de objeto para cargar el archivo. directory-name es el nombre del directorio al final de directory_path.

Puede utilizar el argumento file_name para reemplazar la parte directory-name.zip del nombre de objeto.

El argumento aggregated_directories puede ser un diccionario opcional que especifica las rutas de directorios adicionales cuyo contenido se incluye en el archivo .zip. Las claves son la ubicación de ruta en el archivo .zip donde se coloca el contenido.

El argumento aggregated_content puede ser un diccionario con contenido adicional que incluir en el archivo .zip. Las claves son la ubicación de ruta en el archivo .zip donde se coloca el contenido.

Funciones de enlace de actualización

Los enlaces de actualización se implementan en el archivo Gem\<gem-name>\AWS\resource-manager-code\update.py de una gema en la nube. Si se definen enlaces de actualización en el módulo, el administrador de recursos utiliza los parámetros descritos en la sección Parámetros de la función de enlaces para llamar a las siguientes funciones.

after_project_updated

Se llama a la función de enlace after_project_updated después de que finalice correctamente una operación de actualización de pila del proyecto.

Parámetro Descripción
project_uploader Un objeto Uploader que puede utilizar para cargar datos adicionales.

after_resource_group_updated

Se llama a la función de enlace after_resource_group_updated después de que finalice correctamente una operación de actualización de pila de un grupo de recursos.

Parámetro Descripción
deployment_name El nombre de la implementación que se ha actualizado.
resource_group_name El nombre del grupo de recursos que se ha actualizado.
resource_group_uploader Un objeto Uploader que puede utilizar para cargar datos adicionales.

before_project_updated

Se llama a la función de enlace before_project_updated antes de que comience una operación de actualización de pila del proyecto.

Parámetro Descripción
project_uploader Un objeto Uploader que puede utilizar para cargar datos para la operación.

before_resource_group_updated

Se llama a la función de enlace before_resource_group_updated antes de que comience una operación de actualización de pila de un grupo de recursos.

Parámetro Descripción
deployment_name El nombre de la implementación que se está actualizando.
resource_group_name El nombre del grupo de recursos que se está actualizando.
resource_group_uploader Un objeto Uploader que se puede utilizar para cargar datos adicionales.

gather_writable_check_list

Se llama a la función de enlace gather_writable_check_list antes de una operación de actualización para reunir una lista de archivos en los que se puede escribir. Si cualquiera de los archivos locales que hay que actualizar son de solo lectura, el administrador de recursos ofrece al usuario la posibilidad de permitir escribir en los archivos (por ejemplo, con un sistema de control de origen).

Parámetro Descripción
check_list Una lista con todas las rutas de archivos en los que se puede escribir.

Funciones de enlace de comando

Si un módulo incluye las siguientes funciones de enlace de línea de comando, estas se definen en un archivo Gem\<gem-name>\AWS\resource-manager-code\command.py de la gema en la nube. El administrador de recursos utiliza los parámetros en la sección Parámetros de la función de enlaces para llamar a las siguientes funciones.

add_cli_commands

Añade comandos adicionales al analizador de línea de comando. Se le llama antes de analizar el argumento de línea de comando. Cloud Canvas Resource Manager utiliza Pythonargparsemódulo para analizar la línea de comandos. Todos los comandos se agrupan en una serie de diferentes analizadores secundarios. Por ejemplo, los comandos lmbr_aws project list-resources y lmbr_aws deployment list contienen los analizadores secundarios project y deployment, los cuales definen un comando list-resources y list respectivamente.

Parámetro Descripción
subparsers El objeto de recopilación subparser que devuelve la función argparse add_subparsers. Utilice la función de enlace para añadir un analizador secundario a la recopilación. A continuación, añada los comandos al analizador secundario.
add_common_args

Agrega un conjunto de argumentos comunes a un comando. Esta función añade los siguientes argumentos. Para ver una descripción de estos argumentos, consulte Uso de la línea de comandos de Cloud Canvas.

--aws-access-key

--aws-secret-key

--profile

--assume-role

--root-directory

--game-directory

--aws-directory

--user-directory

--verbose

--no-prompt

lmbr_aws procesa los argumentos comunes. Normalmente, el enlace no suele procesar estas opciones.

Esta función puede incluir los siguientes parámetros:

parser: el objeto de analizador argparse definido al que se añadan los argumentos.

no_assume_role: True especifica que no se añade el argumento común --assume-role; False especifica que sí.

add_cli_view_commands

Añade métodos adicionales al objeto ViewContext. Se le llama antes de otros comandos de línea de comando.

Parámetro Descripción
view_context Un objeto ViewContext.

add_gui_commands

Añade comandos al administrador de recursos de Cloud Canvas en Lumberyard Editor. Cuando la ventana del administrador de recursos se abre por primera vez, Lumberyard Editor inicia el subsistema Python del administrador de recursos, el cual llama aadd_gui_commands.

Parámetro Descripción
handlers Un diccionario que asigna nombres de comandos de interfaz del usuario a las funciones de controlador que los procesan. Los nombres de los comandos se pasan a Python desde la interfaz de usuario.

add_gui_view_commands

Añade métodos adicionales al objeto ViewContext. Se le llama antes de ejecutar un comando de GUI.

Parámetro Descripción
view_context Un objeto ViewContext.