Objeto de extensión 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.

Objeto de extensión 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.

La especificación swagger permite que herramientas como Cloud Gem Framework y API Gateway definanobjetos de extensión. Estos objetos permiten que el archivo swagger.json facilite datos de configuración personalizados para la herramienta. El objeto de extensión que utiliza Cloud Gem Framework es x-amazon-cloud-canvas-lambda-dispatch. Este objeto de extensión simplifica la configuración de API Gateway para utilizarlo con unAWS Lambdafunción.

Puede colocar el objeto x-amazon-cloud-canvas-lambda-dispatch en cualquiera de los siguientes objetos swagger.

  • Objeto swagger: establece los valores predeterminados para todas las rutas y operaciones.

  • Objeto de elemento de ruta: establece los valores predeterminados para todas las operaciones de la ruta y sobrescribe los valores predeterminados que se establecen en el objeto swagger principal.

  • Objeto de operación: establece los valores para la operación y sobrescribe los valores predeterminados establecidos en la ruta principal y los objetos swagger.

El objeto x-amazon-cloud-canvas-lambda-dispatch admite las siguientes propiedades:

  • lambda: el ARN de la función Lambda que invoca la operación.

  • module: nombre del módulo que define la función de servicio que procesa la solicitud.

  • function: nombre de la función que procesa la solicitud. El módulo de despacho de la función Lambda utiliza elfunctionpropiedad y elmodulepropiedad para llamar a su código cuando reciba una solicitud. El módulo de envío se describe en la sección Procesamiento de carga, que se indica a continuación.

  • additional-properties: un objeto que proporciona propiedades que se agregan al objeto x-amazon-apigateway-integration generado que se describe en la siguiente sección.

  • additional-request-template-content: una cadena que se inserta en la application/json plantilla de solicitud generada, que se describe en la siguiente sección.

  • additional-response-template-content: un objeto que especifica contenido adicional que se inserta en el generadoapplication/json Plantilla de respuesta. Esta plantilla se describe en la siguiente sección. Se admiten las propiedades denominadas 200, 400 y 500. Estas corresponden a las respuestas de resultado correcto (200) y error (400 y 550).

Consulte la documentación de API Gateway para obtener más información sobrePlantillas de asignación.

Procesamiento de carga

Antes de que elswagger.jsonse carga en API Gateway, elx-amazon-cloud-canvas-lambda-dispatchse procesan los objetos de extensión del archivo. Esto produce lax-amazon-apigateway-integrationque configuran API Gateway para que llame a su gema en la nubeAWS Lambdafunción.

El objeto x-amazon-cloud-canvas-lambda-dispatch y el procesamiento ocultan gran parte de la complejidad y la flexibilidad del objeto de extensión x-amazon-apigateway-integration. El Cloud Gem Framework proporciona una asignación rápida y recomendada a las operaciones de la API que se implementan en las funciones Lambda. API Gateway ofrece muchas otras características que pueden ser extremadamente útiles cuando se debe coincidir con una API que se haya implementado en otros lugares o utilizar API Gateway como proxy para las implementaciones de backend existentes.

Puede seguir utilizando todo el potencial del objeto x-amazon-apigateway-integration en sus operaciones de la API de la gema de nube. Si incluye el objeto en los objetos de operación de su archivo swagger.json, el procesamiento que se describe aquí se omitirá para la operación.

nota

También puede utilizar el comando lmbr_aws cloud-gem-framework service-api-process-swagger para procesar el archivo swagger.json.

Como mínimo, el objeto swagger puede incluir unx-amazon-cloud-canvas-lambda-dispatchobjeto con una propiedad Lambda. Puede permitir que el módulo y la función para cada operación se determinen automáticamente, o puede utilizar objetos x-amazon-cloud-canvas-lambda-dispatch para especificarlos.

El archivo swagger.json predeterminado proporcionado por Cloud Gem Framework contiene el siguiente objeto x-amazon-cloud-canvas-lambda-dispatch. La cadena $ServiceLambdaArn$ se sustituye con el valor de la propiedad ServiceLambdaArn de SwaggerSettings facilitados en la definición del recurso ServiceApi.

"x-amazon-cloud-canvas-lambda-dispatch": { "lambda": "$ServiceLambdaArn$" }

Cuando se procesa el archivo swagger.json, se agrega un objeto x-amazon-apigateway-integration a cada objeto de la operación swagger que no tenga uno. Estos objetos tienen las siguientes propiedades:

  • type: especifica que AWS ha de habilitar la integración de la función AWS Lambda.

  • uri— Construye el URI de la función Lambda con el valor delx-amazon-cloud-canvas-lambda-dispatchobjetolambdapropiedad.

  • credentials— ElCustom::ServiceApiEl recurso crea el ARN de un rol. El rol tiene una política que se describe en Control de acceso.

  • requestTemplates— Aapplication/jsonplantilla que crea una solicitud tal y como se describe enMapeo de solicitudes predeterminado. Puede incluir contenido adicional con la propiedad x-amazon-cloud-canvas-lambda-dispatch del objeto additional-request-template-content. Esta propiedad se puede utilizar para transferir otros valores, como los definidos por el$context, a la función Lambda. El contenido de la plantilla de solicitud adicional debería iniciar con una ',' (y para que el formato sea coherente, debería empezar por ',\n ' y utilizar ',\n ' entre propiedades).

  • responsesEspecifica:application/jsonplantillas para respuestas 200 (éxito), 400 (error del cliente) y 500 (error de servicio) tal y como se describe enMapeado de respuesta predeterminado. Las respuestas 400 y 500 se insertan en el objeto de respuestas swagger. Sin embargo, debe definir una respuesta 200 que especifique un sistema que describa los datos que devuelve la operación.

  • Propiedades adicionales, según especifica la propiedad x-amazon-apigateway-integration-properties.