Necesito proporcionar algún tipo de API REST respaldada por un depósito S3. El requisito es simple: dada una determinada clave, debe devolver el contenido del archivo cuyo nombre es esa clave. Si no se encuentra dicho archivo en el depósito, devuelva un contenido predeterminado. En ambos casos, el código de estado de respuesta debe ser 200, porque al cliente no le debe importar de dónde proviene el resultado.
Este requisito es tan simple que estaba tratando de lograrlo sin escribir ningún código. Así que traté de poner una API creada por Amazon API Gateway frente al depósito S3. Pero aunque en la sección "Respuesta de integración" puede asignar una "regex de estado HTTP" a un "estado de respuesta del método", aparentemente el mismo "estado de respuesta del método" no puede aparecer dos veces. Por lo tanto, no puedo tener un mapeo predeterminado a 200 mientras mapeo respuestas 404 también a 200 con una plantilla de mapeo de cuerpo personalizado.
¿Es posible hacer esto usando solo API Gateway?
Si lo único que lo limita es la cantidad de respuestas disponibles, puede usar 203 (reenviar contenido desde el origen) como otra respuesta exitosa. O puede escribir una función lambda simple detrás de su API Gateway para crear la respuesta.