Stellen Sie den Routing-Modus für Ihren benutzerdefinierten Domainnamen ein - Amazon API Gateway

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Stellen Sie den Routing-Modus für Ihren benutzerdefinierten Domainnamen ein

Sie können wählen, welchen Routing-Modus API Gateway verwendet, um den Datenverkehr an Ihren weiterzuleiten APIs. Weitere Informationen finden Sie unter Senden Sie Traffic APIs über Ihren benutzerdefinierten Domainnamen in API Gateway an Sie. In diesem Abschnitt werden die Routing-Modi für benutzerdefinierte Domainnamen beschrieben. Sie müssen einen Routing-Modus für Ihren benutzerdefinierten Domainnamen festlegen, um den Datenverkehr an Ihren weiterzuleiten APIs. Die folgenden Routing-Modi werden unterstützt:

  • ROUTING_RULE_THEN_ API_MAPPING — Verwenden Sie diesen Modus, um Traffic APIs mit Routing-Regeln und API-Zuordnungen an Ihren zu senden. In diesem Modus haben alle Routing-Regeln Vorrang vor allen API-Zuordnungen. Ein Beispiel für diesen Modus finden Sie unter. Beispiel 2: Routing-Regeln und API-Zuordnungen

  • ROUTING_RULE_ONLY — Verwenden Sie diesen Modus, um nur zu erlauben, dass Routing-Regeln Traffic an Ihren senden. APIs Wenn Ihr benutzerdefinierter Domainname diesen Modus verwendet, können Sie keine API-Zuordnung erstellen, aber Sie können den Befehl verwenden, um sie anzuzeigen. get-api-mappings API-Aufrufer können keine API-Zuordnungen verwenden, um auf diesen Domainnamen zuzugreifen.

  • API_MAPPING_ONLY — Verwenden Sie diesen Modus, um nur API-Zuordnungen zuzulassen, um Traffic an Ihren zu senden. APIs Wenn Ihr benutzerdefinierter Domainname diesen Modus verwendet, können Sie keine Routing-Regel erstellen, aber Sie können den list-routing-rules Befehl verwenden, um sie anzuzeigen. API-Aufrufer können keine Routing-Regeln verwenden, um auf diesen Domainnamen zuzugreifen.

    Dies ist der Standard-Routing-Modus für all Ihre vorhandenen Domainnamen und alle neuen Domainnamen, die Sie erstellen.

Wenn Sie einen benutzerdefinierten Domainnamen mitapigateway, API_MAPPING_ONLY wird aufgerufen BASE_PATH_MAPPING_ONLY und ROUTING_RULE_THEN_API_MAPPING wird aufgerufenROUTING_RULE_THEN_BASE_PATH_MAPPING. Dieses Verhalten ist nur für AWS CLI AWS CloudFormation, oder für alle vorhanden SDKs, nicht für AWS Management Console.

Das folgende Verfahren zeigt, wie Sie den Routing-Modus für einen vorhandenen benutzerdefinierten Domainnamen ändern. Wenn Sie den Routing-Modus Ihres benutzerdefinierten Domainnamens ändern, können API-Aufrufer nicht mit nicht unterstützten Routing-Modi auf Ihren Domainnamen zugreifen.

AWS Management Console
  1. Melden Sie sich bei der API Gateway Gateway-Konsole unter https://console.aws.amazon.com/apigatewayan.

  2. Wählen Sie Benutzerdefinierten Domänennamen im Hauptnavigationsbereich aus.

  3. Wählen Sie einen benutzerdefinierten Domänennamen aus.

  4. Wählen Sie für Domänendetails Bearbeiten aus.

  5. Wählen Sie für den Routing-Modus API_MAPPINGROUTING_RULE_THEN_.

  6. Wählen Sie Speichern.

Wenn Sie den Routing-Modus auf ROUTING_RULE_ONLY oder ändernAPI_MAPPING_ONLY, werden alle API-Zuordnungen oder Routing-Regeln, die Sie erstellt haben, von der Seite mit den Domainnamen-Details der Konsole entfernt. Wenn Sie den Routing-Modus so ändern, dass er entweder Routing-Regeln oder API-Zuordnungen unterstützt, werden diese Ressourcen zurückgegeben.

AWS CLI - apigatewayv2

Mit dem folgenden update-domain-nameBefehl wird ein Domainname aktualisiert, sodass er den Routing-Modus verwendet: ROUTING_RULE_THEN_API_MAPPING

aws apigatewayv2 update-domain-name \ --domain-name 'api.example.com' \ --routing-mode "ROUTING_RULE_THEN_API_MAPPING"

Die Ausgabe sieht wie folgt aus:

{ "ApiMappingSelectionExpression": "$request.basepath", "DomainName": "api.example.com", "DomainNameArn": "arn:aws:apigateway:us-west-2::/domainnames/api.example.com", "DomainNameConfigurations": [ { "ApiGatewayDomainName": "d-abcdefg.execute-api.us-west-2.amazonaws.com", "CertificateArn": "arn:aws:acm:us-west-2:111122223333:certificate/abcdefg-123456-abcdefg", "DomainNameStatus": "AVAILABLE", "EndpointType": "REGIONAL", "HostedZoneId": "Z2OJLYMUO9EFXC", "SecurityPolicy": "TLS_1_2" } ], "RoutingMode": "ROUTING_RULE_THEN_API_MAPPING", "Tags": {} }
AWS CLI - apigateway

Mit dem folgenden update-domain-nameBefehl wird ein privater benutzerdefinierter Domainname aktualisiert, sodass er den Routing-Modus verwendetROUTING_RULE_THEN_BASE_PATH_MAPPING:

aws apigateway update-domain-name \ --domain-name 'private.example.com' \ --patch-operations "op='replace',path='/routingMode',value='ROUTING_RULE_THEN_BASE_PATH_MAPPING'"

Die Ausgabe sieht wie folgt aus:

{ "domainName": "private.example.com", "domainNameId": "abcd1234", "domainNameArn": "arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234", "certificateArn": "arn:aws:acm:us-west-2:111122223333:certificate/a1b2c3d4-5678-90ab-cdef", "certificateUploadDate": "2024-09-10T10:31:20-07:00", "endpointConfiguration": { "types": [ "PRIVATE" ], "ipAddressType": "dualstack" }, "domainNameStatus": "AVAILABLE", "securityPolicy": "TLS_1_2", "policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"execute-api:Invoke\",\"Resource\":\"execute-api:\/*\"},{\"Effect\":\"Deny\",\"Principal\":\"*\",\"Action\":\"execute-api:Invoke\",\"Resource\":\""execute-api:\/*\",\"Condition\":{\"StringNotEquals\":{\"aws:SourceVpce\":\"vpce-abcd1234efg\"}}}]}", "routingMode" : "ROUTING_RULE_THEN_BASE_PATH_MAPPING" }