Lumberyard
Guía del usuario (Version 1.21)

Reflexiones sobre el contexto de comportamiento de AWS

La gema CloudGemAWSScriptBehaviors utiliza el contexto de comportamiento para exponer servicios de AWS como Amazon Cognito, AWS Lambda, Amazon S3 y utilidades HTTP para script. El directorio \dev\CloudGemSamples\Scripts tiene código Lua de muestra para cada reflexión. Para probar las muestras, ejecute el nivel AWSBehaviorExamples en el proyecto CloudGemSamples.

Servicio de API

Las reflexiones sobre el contexto de comportamiento del servicio del API contienen una clase y un EBus que interactúan con Amazon API Gateway.

Clase AWSBehaviorAPI

Llama a métodos que se exponen mediante el servicio Amazon API Gateway. La clase firma correctamente las solicitudes con las credenciales adecuadas en una solicitud HTTP. También convierte los nombres de recursos lógicos de Cloud Canvas en virtualizaciones paravirtuales. De esta forma se facilita el uso de la clase con otras gemas de nube.

Properties

Propiedad Descripción
string HTTPMethod Especifica el método HTTP que llama al API. Esta string es específica del API. Las cadenas válidas son: GET, POST, DELETE, PUT y PATCH.
string Query Consulta string URL estándar que pasa parámetros al API. Esta string corresponde solo a la parte de consulta y función de la URL y tiene el formato player/messages?time=now&lang=eng.
string ResourceName Especifica el nombre de recurso lógico del API a la que se va a llamar. Admite solo nombres de recursos de API Gateway. Devuelve un error si se especifican otros tipos de recursos.

Métodos

Método Descripción
void Execute() Realiza la solicitud HTTP con las propiedades especificadas.

AWSBehaviorAPINotificationsBus

AWSBehaviorAPINotificationsBus tiene los métodos siguientes.

Métodos

Método Descripción
void GetResponse(int responseCode, string responseData) Se llama cuando la solicitud devuelve una respuesta. El parámetro responseCode contiene un código de respuesta HTTP; el parámetro responseData contiene los datos de la respuesta, que suele ser una cadena de JSON.
void OnError(string requestBody) Se llama cuando la llamada al API genera un error. El parámetro requestBody contiene el cuerpo de la solicitud.
void OnSuccess(string resultBody) Se llama cuando la llamada al API se ejecuta satisfactoriamente. El parámetro resultBody contiene el cuerpo de la respuesta de la solicitud.

Servicio de Lambda

Las reflexiones sobre el contexto de comportamiento del servicio de Lambda contienen una clase y un EBus que interactúan con AWS Lambda.

Clase AWSLambda

Invoca una función de AWS Lambda.

Properties

Propiedad Descripción
string functionName El nombre de la función lógica de Cloud Canvas que desea invocar.
string requestBody Opcional. Especifica parámetros de solicitud que se pasarán a la invocación de Lambda.

Métodos

Método Descripción
void InvokeAWSLambda() Invoca la función de Lambda especificada.

AWSLambdaHandler

El EBus AWSLambdaHandler tiene los métodos siguientes.

Métodos

Método Descripción
void OnError(string errorBody) Se llama cuando la invocación de Lambda genera un error. El parámetro errorBody contiene la información que se ha devuelto en la respuesta de error de Lambda.
void OnSuccess(string resultBody) Se llama cuando la invocación de Lambda se ejecuta satisfactoriamente. El parámetro resultBody contiene la información que ha devuelto la función Lambda, si ha devuelto alguna.

Servicio de S3

Las reflexiones sobre el contexto de comportamiento de S3 contienen clases y EBuses que interactúan con Amazon S3.

Clase AWSBehaviorS3Upload

Carga un archivo local en un bucket de Amazon S3.

Propiedades

Propiedad Descripción
string bucketName Especifica el nombre lógico en Cloud Canvas para el bucket de Amazon S3 de destino.
string contentType Especifica el tipo de archivo MIME del archivo que se va a cargar.
string keyName Especifica la clave de destino del archivo. La clave de destino es el nombre de archivo que aparece en Amazon S3 y debe ser único para el bucket.
string localFileName Especifica el nombre de la ruta completa del archivo local que se va a cargar.

Métodos

Método Descripción
void Upload() Carga el archivo con las propiedades especificadas.

AWSBehaviorS3UploadNotificationsBus

AWSBehaviorS3UploadNotificationsBus tiene los métodos siguientes.

Métodos

Método Descripción
void OnError(string errorBody) Se llama cuando la carga de archivos genera un error. El parámetro errorBody contiene la información de error que Amazon S3 devuelve, si devuelve algún tipo de información.
void OnSuccess(string resultBody) Se llama cuando la carga de archivos se ejecuta satisfactoriamente. El parámetro resultBody contiene la información que Amazon S3 devuelve, si devuelve algún tipo de información.

Clase AWSBehaviorS3Download

Descarga un archivo de un bucket de Amazon S3 en el sistema de archivos local.

Propiedades

Propiedad Descripción
string bucketName Especifica el nombre lógico en Cloud Canvas para el bucket de origen de Amazon S3.
string keyName Especifica el nombre clave (nombre de archivo) del archivo de origen de Amazon S3.
string localFileName Especifica la ruta completa de la ubicación en la que se escribe el archivo descargado.

Métodos

Método Descripción
void Download() Descarga el archivo con las propiedades especificadas.

AWSBehaviorS3DownloadNotificationsBus

AWSBehaviorS3DownloadNotificationsBus tiene los métodos siguientes.

Métodos

Método
void OnError(string errorBody) Se llama cuando la descarga de archivos genera un error. El parámetro errorBody contiene información de error que Amazon S3 devuelve.
void OnSuccess(string resultBody) Se llama cuando la descarga de archivos se ejecuta satisfactoriamente. El parámetro resultBody contiene información que Amazon S3 devuelve.

Clase AWSBehaviorS3Presign

Ofrece una URL prefirmada para un archivo de Amazon S3 especificado. Se trata de una dirección URL que se puede compartir y que permite el acceso autenticado al archivo especificado.

Properties

Propiedad Descripción
string bucketName Especifica el nombre lógico de Cloud Canvas para el bucket de S3 de objetivo.
string keyName Especifica el nombre clave (nombre de archivo) del archivo de Amazon S3 de destino.
string requestMethod El método HTTP que debe generarse para la URL. Las cadenas válidas son PUT, POST, DELETE y GET.

Métodos

Método Descripción
void Presign() Obtiene una URL prefirmada para el archivo de Amazon S3 especificado.

AWSBehaviorS3PresignNotificationsBus

AWSBehaviorS3PresignNotificationsBus tiene los métodos siguientes.

Métodos

Método Descripción
void OnError(string errorBody) Se llama cuando la operación genera un error. El parámetro errorBody contiene información de error que Amazon S3 devuelve.
void OnSuccess(string resultBody) Se llama cuando la operación se ejecuta satisfactoriamente. El parámetro resultBody contiene la URL prefirmada que Amazon S3 devuelve.

Utilidades

Las clases de utilidad y los EBuses proporcionan funcionalidades para operaciones HTTP, JSON, URL y de cadena.

Clase AWSBehaviorHTTP

La clase AWSBehaviorHTTP implementa una solicitud GET de HTTP de uso general sencilla. Puede utilizar la clase para obtener cualquier URL de página web o prefirmada.

Properties

Propiedad Descripción
string URL La URL que se quiere obtener.

Métodos

Método Descripción
void Get() Obtiene la URL especificada por la propiedad URL.

AWSBehaviorHTTPNotificationsBus

AWSBehaviorHTTPNotificationsBus tiene los métodos siguientes.

Métodos

Método Descripción
void OnSuccess(string resultBody) Se llama cuando la operación GET se ejecuta satisfactoriamente. El parámetro resultBody contiene el cuerpo de la respuesta de la solicitud.
void OnError(string errorBody) Se llama cuando la operación GET genera un error. El parámetro errorBody contiene el cuerpo del error.
void GetResponse(int responseCode, StringMap headerMap, string contentType, string responseBody)

Se llama cuando la solicitud devuelve una respuesta. Los parámetros contienen la siguiente información:

responseCode: el código de respuesta HTTP.

headerMap: contiene toda la información del encabezado. Puede pasarse a una propiedad StringMap map.

contentType: contiene el tipo de contenido MIME para los datos de la respuesta.

responseBody: contiene los datos de respuesta en formato de cadena.

Clase JSON

Atraviesa y analiza los datos JSON. Esta clase lee pero no escribe datos JSON. Para escribir datos JSON, es preciso utilizar las utilidades proporcionadas en el idioma que utiliza.

Algunos idiomas no ofrecen soporte de iterador para JSON. Para dar cabida a estos idiomas, la clase JSON mantiene un estado de valor actual que se actualiza a medida que atraviesa el árbol de datos JSON. Dado que los datos JSON se componen de objetos y matrices, el valor actual es el valor de la clave de objeto actual o el valor en la posición actual en la matriz. Para ver varios ejemplos, consulte el código de muestra en el archivo \dev\CloudGemSamples\Scripts\AWSBehaviorJSONTest.lua.

La clase JSON no tiene propiedades. En la siguiente tabla se enumeran sus métodos.

Métodos

Método Descripción
int EnterArray() Si el valor actual es una matriz, establece el valor actual en el primer elemento de la matriz y devuelve el número de elementos de matriz.
void EnterObject(string key) Si el valor actual es un objeto, establece el valor actual en el valor de la clave especificada.
void ExitArray() Si el valor actual se fijó mediante EnterArray, establece el valor actual en la matriz que se especificó antes de la llamada a EnterArray.
void ExitCurrentObject() Si el valor actual se fijó mediante EnterObject, establece el valor actual en el objeto que se especificó antes de la llamada a EnterObject.
void FromString(string JSONString) Carga el objeto JSON a partir de una cadena JSON. Los errores de análisis se registran en la consola.
boolean GetBoolean() Si el valor actual es un valor booleano, devuelve el valor booleano. Si el valor actual no es booleano, devuelve false.
double GetDouble() Si el valor actual es un valor doble, devuelve el valor doble. Si el valor actual no es un valor doble, devuelve 0.
integer GetInteger() Si el valor actual es un número entero, devuelve el valor del entero. Si el valor actual no es un entero, devuelve 0.
string GetString() Si el valor actual es una cadena, devuelve el valor de la cadena. Si el valor actual no es una cadena, devuelve una cadena vacía.
boolean IsArray() Devuelve true solo si el valor actual es una matriz.
boolean IsBoolean() Devuelve true solo si el valor actual es un valor booleano.
boolean IsDouble() Devuelve true solo si el valor actual es un valor doble.
boolean IsInteger() Devuelve true solo si el valor actual es un número entero.
boolean IsObject() Devuelve true solo si el valor actual es un objeto.
boolean IsString() Devuelve true solo si el valor actual es una cadena.
void LogToDebugger() Muestra todo el objeto JSON en la consola en formato legible para las personas.
boolean NextArrayItem() Establece el valor actual en el siguiente elemento de la matriz. Si el elemento actual es el último elemento de la matriz, devuelve false.
string ToString() Devuelve el objeto JSON completo como una cadena.

La clase JSON no tiene EBus correspondiente.

Clase AWSBehaviorURL

La clase AWSBehaviorURL proporciona la funcionalidad "URL decode". Se elimina cualquier carácter de escape de la URL especificada y se devuelve la cadena obtenida.

Properties

Propiedad Descripción
string URL La URL que se descodificará.

Métodos

Método Descripción
void Decode() Descodifica la URL especificada.

AWSBehaviorURLNotificationsBus

AWSBehaviorURLNotificationsBus tiene los métodos siguientes.

Métodos

Método Descripción
void OnError(string error) Se llama si la URL no se descodificó correctamente. El parámetro error contiene las razones del error.
void OnSuccess(string result) Se llama si la URL se descodificó correctamente. El parámetro result contiene la cadena descodificada.

Clase StringMap

Mapeo sencillo de los pares de clave–valor de la cadena. La clase StringMap se usa con más frecuencia con la clase Get de HTTP, pero resulta útil para operaciones de mapa de cadenas generales.

Properties

Propiedad Descripción
map Contiene un mapa de cadena que se ha recibido desde otro método para realizar el análisis.

Métodos

Método Descripción
void Clear() Elimina todos los pares de clave–valor del mapa.
int GetSize() Devuelve el número de pares de clave–valor que están almacenados actualmente en el mapa.
string GetValue(string key) Devuelve el valor en la clave especificada. Si la clave que se ha especificado no existe, devuelve una cadena vacía sin añadir la clave al mapa.
boolean HasKey(string key) Devuelve true si el mapa contiene la clave especificada.
void LogToDebugger() Muestra todos los pares de clave–valor en la consola.
void RemoveKey(string key) Elimina el par de clave–valor del mapa que corresponde a la clave especificada. Si la clave especificada no existe, generará un error, aunque no devolverá un error.
void SetValue(string key, string value) Establece el valor de la clave especificada en el valor especificado. Si la clave no existe, el par de clave–valor se añadirá al mapa. Si, por el contrario, la clave existe, el valor existente se sobrescribirá con el valor especificado.

La clase StringMap no tiene controladores de EBus correspondientes.