¿Cómo configuro una API de API Gateway para gestionar datos binarios mediante una integración de proxy de Lambda?

4 minutos de lectura
0

Quiero devolver datos binarios a través de mi API REST (o API HTTP) de Amazon API Gateway mediante una integración de proxy de AWS Lambda. ¿Cómo configuro eso?

Resolución

Nota: Las API HTTP de API Gateway gestionan automáticamente los datos binarios. Para que las API REST de API Gateway gestionen datos binarios, la función Lambda del backend debe utilizar el formato de salida correcto de una función de Lambda para la integración de proxy.

Para devolver datos binarios a través de una API REST de API Gateway mediante una integración de proxy de Lambda

1.    En la consola de Lambda, cree una nueva función de Lambda.
Nota: Para ver un ejemplo de la función de Lambda de Python 3, consulte Regresar archivos binarios desde una integración de proxy de Lambda.

2.    En la consola de API Gateway, cree una API REST nueva.

3.    Cree un método GET para la nueva API de la siguiente manera:
En el panel Recursos, elija Acciones.
Elija Crear método. A continuación, seleccione GET.
En la sección**/ - GET - Setup**, para Tipo de integración, elija Función de Lambda. Seleccione la casilla Usar la integración de proxy de Lambda.
Para Región de Lambda, elija la región en la que creó la función de Lambda.
Para Función de Lambda, introduzca el nombre de la función de Lambda que creó en el paso 1.
Seleccione Guardar.
En el cuadro de diálogo que aparece de Agregar permiso a la función de Lambda, seleccione Aceptar.

4.    En el panel de navegación de la izquierda, en la sección API, seleccione Configuración.

5.    Bajo Tipos de archivos binarios, seleccione Agregar tipo de archivos binarios y añada image/png u otro formato de archivo que desee utilizar, como application/pdf.

6.    Seleccione Guardar cambios.

7.    Despliegue su API en una nueva etapa. Para obtener más información, consulte Configurar una etapa mediante la consola de API Gateway.

Su API ahora está lista para devolver datos binarios a través de API Gateway mediante una integración de proxy de Lambda. Para obtener información sobre cómo invocar la API, consulte Invocar una API REST en Amazon API Gateway.

Nota: Cuando se trata de datos binarios, la propiedad isBase64Encoded de la salida de la función de Lambda debe estar establecida en true. La propiedad body también debe contener los archivos binarios codificados en base64. Para obtener más información, consulte Trabajar con tipos de archivos binarios para las API REST.

Invocar la API REST para que devuelva datos binarios mediante Postman y cURL

Importante: Si usa Postman o cURL para invocar su API de REST y devolver datos binarios, asegúrese de incluir el encabezado Accept en la solicitud de API. El valor del encabezadoAccept debe coincidir con el formato de archivo que utilice. Por ejemplo, image/png o application/pdf.

Para obtener información sobre cómo invocar una API REST mediante Postman, consulte Usar Postman para llamar una API de REST.

Para obtener información sobre cómo API Gateway codifica las cargas, consulte Conversiones de tipo de contenido en API Gateway.

Ejemplo de comando cURL para invocar una API de REST API Gateway para devolver datos binarios

$ curl 'https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/' -H 'Accept: image/png'

Nota: Sustituya las siguientes variables antes de ejecutar el comando cURL del ejemplo:
Para {restapi_id}, introduzca el identificador de su API.
Para {region}, introduzca la región de AWS en la que se encuentra su API.
Para {stage_name}, introduce el nombre de etapa de su API.
Para image/png, asegúrese de introducir el tipo de archivo de imagen real que está utilizando.

Para invocar la API REST para devolver datos binarios mediante un navegador web

Si utiliza un navegador web para invocar una API REST para que devuelva datos binarios, asegúrese de añadir text/html como tipo de archivo binario a la API.

Nota: Los navegadores web envían automáticamente un encabezado Accept con varios valores. De forma predeterminada, el primer valor es siempre html/text. Dado que API Gateway solo respeta el primer valor, debe añadir text/html como tipo de archivo binario a la API. De lo contrario, aparecerá el siguiente mensaje de error:

"The image "https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/" cannot be displayed because it contains errors."

Para añadir text/html como tipo de archivo binario a una API REST, haga lo siguiente:

1.    En la consola de API Gateway, seleccione su API.

2.    En el panel de navegación de la izquierda, en la parte inferior de la sección API, seleccione Configuración.

3.    En Tipos de archivos binarios, elija Agregar tipo de medio binario y añada text/html.

4.    Seleccione Guardar cambios.

5.     Despliegue su API.

Para obtener más información, consulte Conversiones de tipo de contenido en API Gateway.


OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 3 años