要在AWS Api Gateway中定义后备映射模板吗?

问题描述 投票:0回答:1

我有一个通过AWS API Gateway中的API公开的POST方法。它将处理某个JSON。但是有一个奇怪的要求:我应该接受任何东西并始终返回200状态代码(只要该服务可用并且正常工作)。

因此,如果我收到Content-Type:image / jpeg,application / xml或任何/任何版本的呼叫,我必须能够将请求映射到我的Lambda函数。

我已经实现了使用VTL(速度模板语言)将任何请求映射到自定义类型的问题,问题是我必须在集成请求中指定我要支持的每个内容/类型。

我想为不在我已经定义的Content-Type中的每个Content-Type定义一个后备映射模板。不允许将“ * / *”指定为Content-Type。

我不能使用When no template matches the request Content-Type header选项作为传递对象,因为默认情况下,lambda函数会尝试从JSON格式反序列化主体。

有什么想法吗?

aws-lambda aws-api-gateway asp.net-core-2.1
1个回答
0
投票

我认为您应该启用When no template matches the request Content-Type header选项。 As documented您的Lambda将获得API网关事件。此事件具有一个headers字段,在POST上应包含一个content-type字段。如果您的代码了解内容类型,则对其进行处理。如果不是,请返回具有正确状态代码以及适当内容的响应。这不是在API网关端,而是在Lambda端。

请参阅this blog以获取其他一些想法。

© www.soinside.com 2019 - 2024. All rights reserved.