API 网关配置 http 与输入直通无服务器集成 1.x
API Gateway configure http integration with input passthrough serverless 1.x
有没有办法将所有参数 headers 和 body 映射到另一个 http 端点?需要特殊模板吗?
这是我目前得到的:
functions:
myfunction:
handler: lambda.myfunction # dummy hanlder
events:
- http:
path: resource/{resourceId}/other
method: get
integration: HTTP
request:
uri: http://url/resource/{resourceId}/other
parameters:
'method.request.path.resourceId': true
'method.request.header.my-header': true
response:
statusCodes:
200:
pattern: ''
每当我直接在控制台中创建时,默认情况下都会启用 passthrough 选项,并且它会正确映射 resourceId
。
我试图查看文档,但似乎几乎没有关于 http 集成的文档,除非我遗漏了什么。
我找到了一个解决方法来让这个工作,似乎比正确的解决方案更像是一个解决方法。
我必须在 serverless.yml 的资源中设置 Integration.RequestParameters
才能实现此目的。
resources:
Resources:
ApiGatewayMethodV1ResourceResourceidVarOtherGet:
Properties:
RequestParameters:
method.request.path.resourceId: true
method.request.header.my-header: true
Integration:
RequestParameters:
integration.request.path.resourceId: method.request.path.resourceId
integration.request.header.my-header: method.request.header.my-header
Is there a way to map all parameters,headers and body to the other http endpoint? does it require a special template?
是,使用 HTTP_PROXY 集成类型。在控制台中,这是集成请求页面中的一个复选框。
有没有办法将所有参数 headers 和 body 映射到另一个 http 端点?需要特殊模板吗?
这是我目前得到的:
functions:
myfunction:
handler: lambda.myfunction # dummy hanlder
events:
- http:
path: resource/{resourceId}/other
method: get
integration: HTTP
request:
uri: http://url/resource/{resourceId}/other
parameters:
'method.request.path.resourceId': true
'method.request.header.my-header': true
response:
statusCodes:
200:
pattern: ''
每当我直接在控制台中创建时,默认情况下都会启用 passthrough 选项,并且它会正确映射 resourceId
。
我试图查看文档,但似乎几乎没有关于 http 集成的文档,除非我遗漏了什么。
我找到了一个解决方法来让这个工作,似乎比正确的解决方案更像是一个解决方法。
我必须在 serverless.yml 的资源中设置 Integration.RequestParameters
才能实现此目的。
resources:
Resources:
ApiGatewayMethodV1ResourceResourceidVarOtherGet:
Properties:
RequestParameters:
method.request.path.resourceId: true
method.request.header.my-header: true
Integration:
RequestParameters:
integration.request.path.resourceId: method.request.path.resourceId
integration.request.header.my-header: method.request.header.my-header
Is there a way to map all parameters,headers and body to the other http endpoint? does it require a special template?
是,使用 HTTP_PROXY 集成类型。在控制台中,这是集成请求页面中的一个复选框。