Einrichten einer API mit privaten Integrationen mit OpenAPI - Amazon API Gateway

Einrichten einer API mit privaten Integrationen mit OpenAPI

Sie können eine API mit der privaten Integration durch Importieren der API-OpenAPI-Datei einrichten. Die Einstellungen werden ähnlich wie die OpenAPI-Definitionen einer API mit HTTP-Integrationen festgelegt.Dabei gelten jedoch die folgenden Ausnahmen:

  • Sie müssen connectionType explizit auf VPC_LINK festlegen.

  • Sie müssen connectionId explizit auf die ID eines VpcLink oder auf eine Stufenvariable festlegen, die auf die ID eines VpcLink verweist.

  • Der Parameter uri in der privaten Integration weist auf einen HTTP/HTTPS-Endpunkt in der VPC, wird jedoch stattdessen zum Einrichten des Host-Headers der Integrationsanforderung verwendet.

  • Der Parameter uri in der privaten Integration mit einem HTTPS-Endpunkt in der VPC wird verwendet, um den angegebenen Domänennamen anhand des Namens in dem auf dem VPC-Endpunkt installierten Zertifikats zu überprüfen.

Sie können eine Stufenvariable als Referenz auf die VpcLink-ID verwenden. Sie können den ID-Wert auch connectionId direkt zuweisen.

Die folgende JSON-formatierte API-OpenAPI-Datei zeigt ein Beispiel für eine API mit einem VPC-Link, auf den eine Stufenvariable (${stageVariables.vpcLinkId}) verweist:

OpenAPI 2.0
{ "swagger": "2.0", "info": { "version": "2017-11-17T04:40:23Z", "title": "MyApiWithVpcLink" }, "host": "p3wocvip9a.execute-api.us-west-2.amazonaws.com", "basePath": "/test", "schemes": [ "https" ], "paths": { "/": { "get": { "produces": [ "application/json" ], "responses": { "200": { "description": "200 response", "schema": { "$ref": "#/definitions/Empty" } } }, "x-amazon-apigateway-integration": { "responses": { "default": { "statusCode": "200" } }, "uri": "http://my-vpclink-test-nlb-1234567890abcdef.us-east-2.amazonaws.com", "passthroughBehavior": "when_no_match", "connectionType": "VPC_LINK", "connectionId": "${stageVariables.vpcLinkId}", "httpMethod": "GET", "type": "http_proxy" } } } }, "definitions": { "Empty": { "type": "object", "title": "Empty Schema" } } }