Estoy tratando de conectar una puerta de enlace de API privada de AWS a mi VPC a través de un punto de enlace de VPC que ya existe en mi pila de implementación, pero cuando reviso la consola no veo una conexión.
A continuación se muestran algunos fragmentos de código de mi archivo YML.
Saqué el punto de enlace de la VPC de SSM y confirmé que este es el ID del punto de enlace. Mi ID de terminal VPE aparece como vpce-XXXXXXXXXXXX en SSM en "APIGW"
Parameters: TenantName: Type: String Profile: Type: String ... # VPC params for API GW VPC: Type: String APIGW: Type: StringLuego creo mi Private API Gateway de la siguiente manera. Contiene una Lambda definida arriba de esta API.
PrivateApi: Type: AWS::Serverless::Api Properties: Name: PrivateApi StageName: v1 MethodSettings: - HttpMethod: '*' ResourcePath: /*/*/* LoggingLevel: ERROR ThrottlingBurstLimit: 5000 ThrottlingRateLimit: 10000 EndpointConfiguration: PRIVATE DefinitionBody: swagger: 2.0 info: title: PrivateApi x-amazon-apigateway-api-key-source: "HEADER" schemes: - https x-amazon-apigateway-policy: Version: "2012-10-17" Statement: - Effect: "Allow" Principal: "*" Action: - "execute-api:Invoke" Resource: "execute-api:/*" Condition: StringEquals: aws:sourceVpce: !Ref APIGW paths: /{proxy+}: x-amazon-apigateway-any-method: produces: - application/json parameters: - name: proxy in: path required: true type: string x-amazon-apigateway-integration: uri: Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HandleSecurityRouter.Arn}/invocations httpMethod: POST type: aws_proxyPero si miro en la consola después de una implementación exitosa con la herramienta SAM, API Gateway no está conectado a ningún punto final de la VPC.
¡Apreciaría mucho cualquier ayuda para lograr que este punto de enlace de la VPC se conecte a mi Private API Gateway con SAM!
Después de hacer una versión de lo que necesitaba en la consola y volver a convertirlo en YML con la función "Exportar como Swagger" de AWS en "API"->Etapas->"Etapa"->Exportar, encontré un archivo sin documentar o difícil de encontrar propiedad de API Gateway swagger que debe agregarse para vincular una puerta de enlace privada a una VPC a través de un punto de enlace de la VPC.
Lo que se necesita son las siguientes líneas en su swagger:
DefinitionBody: swagger: 2.0 ... x-amazon-apigateway-endpoint-configuration: vpcEndpointIds: - !Ref API-Gateway-IDFuncionó para mí agregando la línea debajo de servidores -> url -> x-amazon-apigateway-endpoint-configuration :
openapi: "3.0.2" info: title: "APIGW-TEST-01" version: "1.0" servers: - url: "https://asdf.execute-api.us-east-1.amazonaws.com/{basePath}" variables: basePath: default: "/test" x-amazon-apigateway-endpoint-configuration: vpcEndpointIds: - "vpce-0asdf" paths: ...