¿AWS API Gateway base64Decode produce binarios ilegibles?

Estoy tratando de devolver un gif de 1px de un método de AWS API Gateway.

Como ahora se admiten datos binarios, devuelvo una imagen / gif utilizando la siguiente asignación de 'Respuesta de integración':

$util.base64Decode("R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")

Sin embargo, cuando veo esto en Chrome, veo que se devuelve el siguiente binario:

En lugar de:

¿Alguien podría ayudarme a entender por qué esto es confuso y la longitud incorrecta? ¿O qué podría hacer para devolver el binario correcto? ¿Hay alguna otra cosa que siempre podría devolver este gif de 1px sin usar la función base64Decode?

Muchas gracias de antemano, ¡esto me ha estado causando mucho dolor!

EDITAR

Este se vuelve más extraño. Parece que el problema no es con base64Decode, sino con el manejo general del binario. Agregué un backend Lambda (anteriormente estaba usando Firehose) despuésesta publicación de blog y estoPregunta de desbordamiento de pila. Configuré imágenes como binaryMediaType según estopágina de documentación.

Esto me ha permitido pasar los siguientes píxeles de imagen / bmp de Lambda a través de la API de Gateway, y funciona correctamente:

exports.handler = function(event, context) {

  var imageHex = "\x42\x4d\x3c\x00\x00\x00\x00\x00\x00\x00\x36\x00\x00\x00\x28\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x18\x00\x00\x00\x00\x00\x06\x00\x00\x00\x27\x00\x00\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00";
  context.done(null, { "body":imageHex });

};

Sin embargo, las siguientes imágenes que representan una imagen / png o una imagen / gif se confunden cuando se pasan:

exports.handler = function(event, context) {

//var imageHex = "\x47\x49\x46\x38\x39\x61\x01\x00\x01\x00\x80\x00\x00\x00\x00\x00\xff\xff\xff\x21\xf9\x04\x01\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x01\x00\x01\x00\x00\x02\x01\x44\x00\x3b";
//var imageHex = "\x47\x49\x46\x38\x39\x61\x01\x00\x01\x00\x80\x00\x00\xff\xff\xff\x00\x00\x00\x21\xf9\x04\x01\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02\x44\x01\x00\x3b";
  var imageHex = "\x47\x49\x46\x38\x39\x61\x01\x00\x01\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x21\xf9\x04\x01\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02\x44\x01\x00\x3b\x0a"
  context.done(null, { "body":imageHex });

};

Este parece ser el mismo problema queotra pregunta de desbordamiento de pila, pero esperaba que esto se solucionara con el soporte binario de la API de Gateway. Lamentablemente, image / bmp no funciona para mi caso de uso, ya que no puede ser transparente ...

En caso de que ayude a alguien,esta ha sido una buena herramienta para convertir entre base64 y hex.

Respuestas a la pregunta(3)

Su respuesta a la pregunta