API Gateway HTTP Proxy integración con serverless-offline (NO Lambda Proxy)
Estoy tratando de usar serverless-offline para desarrollar / simular mi API Gateway localmente. Mi puerta de enlace API hace un uso liberal de laHTTP integraciones de proxy. El recurso de producción se ve así:
He creado una configuración sin servidor sin conexión basada en algunos documentos y debates que dicen que es posible definir una integración de Proxy HTTP usando la configuración de Formación en la Nube:
httpProxyWithApiGateway.md: Configuración de un proxy HTTP en API Gateway mediante el marco Serverless. Configuración de un proxy HTTP en API Gateway (documentos oficiales sin servidor: API Gateway)He adaptado los dos ejemplos de configuración anteriores para mis propósitos, ver más abajo.
¿Tiene algún consejo, por lo que podría estar haciendo mal aquí?
plugins:
- serverless-offline
service: company-apig
provider:
name: aws
stage: dev
runtime: python2.7
resources:
Resources:
# Parent APIG RestApi
ApiGatewayRestApi:
Type: AWS::ApiGateway::RestApi
Properties:
Name: company-apig
Description: 'The main entry point of the APIG'
# Resource /endpoint
EndpointResource:
Type: AWS::ApiGateway::Resource
Properties:
ParentId:
Fn::GetAtt:
- ApiGatewayRestApi
- RootResourceId
PathPart: 'endpoint'
RestApiId:
Ref: ApiGatewayRestApi
# Resource /endpoint/{proxy+}
EndpointProxyPath:
Type: AWS::ApiGateway::Resource
Properties:
ParentId:
Ref: EndpointResource
PathPart: '{proxy+}'
RestApiId:
Ref: ApiGatewayRestApi
# Method ANY /endpoint/{proxy+}
EndpointProxyAnyMethod:
Type: AWS::ApiGateway::Method
Properties:
AuthorizationType: NONE
HttpMethod: ANY
Integration:
IntegrationHttpMethod: ANY
Type: HTTP_PROXY
Uri: http://endpoint.company.cool/{proxy}
PassthroughBehavior: WHEN_NO_MATCH
MethodResponses:
- StatusCode: 200
ResourceId:
Ref: EndpointProxyPath
RestApiId:
Ref: ApiGatewayRestApi
Para la configuración anterior, obtengo esta salida. Aparentemente, la configuración no registra rutas en absoluto.
{
"statusCode":404,
"error":"Serverless-offline: route not found.",
"currentRoute":"get - /endpoint/ping",
"existingRoutes":[]
}
Related: también estoy tratando de resolver el mismo problema usando aws-sam, en la siguiente publicación:API Gateway HTTP Proxy integración con aws-sam (NO Lambda Proxy)