Einrichten eines regionalen benutzerdefinierten Domainnamens in API Gateway - 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.

Einrichten eines regionalen benutzerdefinierten Domainnamens in API Gateway

Verwenden Sie einen benutzerdefinierten Domainnamen, um eine benutzerfreundliche API-Basis-URL zu erstellen. Mit einem regionalen benutzerdefinierten Domainnamen können Sie HTTP- und REST-API-Stufen demselben benutzerdefinierten Domainnamen zuweisen und gegenseitige TLS-Authentifizierung verwenden.

Überlegungen

Im Folgenden finden Sie einige Überlegungen zu Ihrem regionalen benutzerdefinierten Domainnamen:

  • Die Bereitstellung eines regionenspezifischen ACM-Zertifikats ist erforderlich. Deses Zertifikat muss sich in derselben Region wie Ihre API befinden. Weitere Informationen zum Erstellen oder Hochladen eines benutzerdefinierten Domainnamen-Zertifikats finden Sie unter Bereiten Sie Zertifikate vor in AWS Certificate Manager.

  • Wenn Sie einen regionalen benutzerdefinierten Domainnamen mit einem ACM-Zertifikat erstellen, generiert API Gateway eine serviceverknüpfte Rolle in Ihrem Konto. Die serviceverknüpfte Rolle ist erforderlich, um Ihr ACM-Zertifikat Ihrem regionalen Endpunkt anzuhängen. Die Rolle wird benannt AWSServiceRoleForAPIGatewayund die APIGatewayServiceRolePolicy verwaltete Richtlinie wird an sie angehängt. Weitere Informationen zur Verwendung von serviceverknüpften Rollen finden Sie unter Verwenden von serviceverknüpften Rollen.

  • Nachdem Sie Ihren regionalen benutzerdefinierten Domainnamen erstellt haben, müssen Sie einen DNS-Datensatz erstellen, der den benutzerdefinierten Domainnamen auf die regionale Domain verweist. Dadurch wird der Datenverkehr, der an den benutzerdefinierten Domainnamen gebunden ist, an den regionalen Hostnamen der API weitergeleitet.

    Der DNS-Datensatz kann entweder ein CNAME- oder ein A-Alias-Datensatz sein. Wenn Sie Route 53 als DNS-Anbieter verwenden, erstellen Sie einen A-Alias-Datensatz. Wenn Sie einen Drittanbieter-DNS-Dienst nutzen, verwenden Sie einen CNAME-Datensatz. Wenn Sie einen CNAME-Datensatz nutzen und einen Schnittstellen-VPC-Endpunkt für API Gateway mit aktiviertem privatem DNS für eine private API erstellen, können Sie den benutzerdefinierten Domainnamen innerhalb der VPC, die Ihre private API hostet, nicht auflösen.

Erstellen eines regionalen benutzerdefinierten Domainnamens

Im folgenden Verfahren wird das Erstellen eines regionalen benutzerdefinierten Domainnamens erläutert. Nach Abschluss des Verfahrens erstellen Sie eine Routing-Regel, um die Stufen Ihrer API Ihrem benutzerdefinierten Domainnamen zuzuordnen.

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

  2. Wählen Sie Benutzerdefinierte Domainnamen im Hauptnavigationsbereich aus.

  3. Wählen Sie Erstellen aus.

  4. Geben Sie für Domänenname einen Domainnamen ein.

  5. Wählen Sie unter Routing-Modus die Option Nur Routing-Regeln aus.

    In diesem Routing-Modus können Sie nur mithilfe von Routing-Regeln Traffic von Ihrem benutzerdefinierten Domainnamen an Ihren APIs senden. Weitere Informationen finden Sie unter Senden Sie Traffic APIs über Ihren benutzerdefinierten Domainnamen in API Gateway an Sie.

  6. Wählen Sie unter Minimale TLS-Version eine Version aus.

  7. Wählen Sie unter Endpunktkonfiguration für API-Endpunkttyp die Option Regional aus.

  8. Wählen Sie ein ACM-Zertifikat aus. Das Zertifikat muss sich in derselben Region wie die API befinden.

  9. Wählen Sie Erstellen aus.

AWS CLI

Mit dem folgenden create-domain-nameBefehl wird ein benutzerdefinierter Domainname erstellt:

aws apigatewayv2 create-domain-name \ --domain-name 'regional.example.com' \ --domain-name-configurations CertificateArn=arn:aws:acm:us-west-2:123456789012:certificate/123456789012-1234-1234-1234-12345678 \ --routing-mode ROUTING_RULE_ONLY

Die Ausgabe sieht wie folgt aus:

{ "ApiMappingSelectionExpression": "$request.basepath", "DomainName": "regional.example.com", "DomainNameConfigurations": [ { "ApiGatewayDomainName": "d-numh1z56v6.execute-api.us-west-2.amazonaws.com", "CertificateArn": "arn:aws:acm:us-west-2:123456789012:certificate/123456789012-1234-1234-1234-12345678", "DomainNameStatus": "AVAILABLE", "EndpointType": "REGIONAL", "HostedZoneId": "Z2OJLYMUO9EFXC", "SecurityPolicy": "TLS_1_2" } "RoutingMode": "ROUTING_RULE_ONLY" ] }

Der Eigenschaftswert DomainNameConfigurations gibt den Hostnamen der regionalen API zurück. Sie müssen einen DNS-Datensatz erstellen, der Ihren benutzerdefinierten Domainnamen auf diesen regionalen Domainnamen verweist. Dadurch wird der an den benutzerdefinierten Domainnamen gebundene Datenverkehr an den Hostnamen dieser regionalen API weitergeleitet.

Erstellen einer Routing-Regel für Ihren regionalen benutzerdefinierten Domainnamen

Nachdem Sie Ihren benutzerdefinierten Domainnamen erstellt haben, konfigurieren Sie, wie der Traffic von Ihrem benutzerdefinierten Domainnamen zu Ihrem APIs weitergeleitet wird. Da Sie den Routing-Modus auf eingestellt habenROUTING_RULE_ONLY, verwenden Sie Routing-Regeln, um eingehende Anfragen an Ihren benutzerdefinierten Domainnamen an Ihren APIs weiterzuleiten.

In diesem Beispiel erstellen Sie eine Catch-All-Regel, die alle eingehenden Anfragen an Ihren benutzerdefinierten Domainnamen an eine Stufe Ihrer API weiterleitet. Sie können auch Routing-Regeln konfigurieren, die auf unterschiedlichen Header- und Pfadbedingungen basieren. Weitere Informationen finden Sie unter Routing-Regeln zum Verbinden von API-Stufen mit einem benutzerdefinierten Domainnamen für REST APIs.

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

  2. Wählen Sie einen benutzerdefinierten Domainnamen aus.

  3. Wählen Sie auf der Registerkarte Routing-Details die Option Routing-Regel hinzufügen aus.

  4. Wählen Sie Neue Bedingung hinzufügen aus, um eine neue Bedingung hinzuzufügen.

  5. Belassen Sie diese Regel ohne Bedingungen. Dadurch werden alle Anfragen an Ihren benutzerdefinierten Domainnamen an Ihre Ziel-API und Zielstufe weitergeleitet.

  6. Verwenden Sie für Aktion das Dropdown-Menü, um Ihre Ziel-API und Ihre Zielstufe auszuwählen.

  7. Wählen Sie Weiter aus.

  8. Geben Sie im Prioritätsfeld 100 ein.

    API Gateway wertet Regeln in der Reihenfolge der Priorität aus, ausgehend vom niedrigsten Wert bis hin zum höchsten Wert. Da es sich um eine Catch-All-Regel handelt, verwenden Sie eine hohe Priorität, damit API Gateway alle zusätzlichen Regeln, die Sie erstellen, zuerst abgleichen kann.

  9. Wählen Sie Routing-Regel erstellen aus.

AWS CLI

Der folgende create-routing-rule-Befehl erstellt eine Auffang-Routing-Regel:

aws apigatewayv2 create-routing-rule \ --domain-name 'regional.example.com' \ --priority 100 \ --conditions \ --actions '[{ "InvokeApi": { "ApiId": "a1b2c3", "Stage": "prod" } }]'

Sie können den Routing-Modus jederzeit ändern und neue Regeln erstellen. Weitere Informationen finden Sie unter Senden Sie Traffic APIs über Ihren benutzerdefinierten Domainnamen in API Gateway an Sie.

Erstellen eines DNS-Datensatzes für Ihren regionalen benutzerdefinierten Domainnamen

Nachdem Sie den benutzerdefinierten Domainnamen und die Basispfadzuweisungen festgelegt haben, erstellen Sie einen DNS-Datensatz, der Ihren benutzerdefinierten Domainnamen auf den neu erstellten regionalen Domainnamen verweist.

AWS-Managementkonsole

Um das zu verwenden AWS-Managementkonsole, folgen Sie der Route 53-Dokumentation zur Konfiguration von Route 53 für die Weiterleitung von Datenverkehr an API Gateway.

AWS CLI

Wenn Sie Ihre DNS-Datensätze so konfigurieren möchten, dass der regionale benutzerdefinierte Domainname seinem Hostnamen in der ID der vorgegebenen gehosteten Zone zugewiesen wird, erstellen Sie zunächst eine JSON-Datei, die die Konfiguration für die Einrichtung eines DNS-Datensatzes für den regionalen Domainnamen enthält.

Die folgende Datei setup-dns-record.json zeigt, wie Sie einen DNS-A-Datensatz erstellen, um einen regionalen benutzerdefinierten Domainnamen (regional.example.com) seinem regionalen Hostnamen (d-numh1z56v6.execute-api.us-west-2.amazonaws.com) zuweisen, der im Rahmen der benutzerdefinierten Domainnamenerstellung bereitgestellt wurde. Die Eigenschaften DNSName und HostedZoneId von AliasTarget können die Werte regionalDomainName und regionalHostedZoneId des benutzerdefinierten Domainnamens entsprechend annehmen. Sie können die Regional Route 53 Hosted Zone auch IDs in Amazon API Gateway Endpoints and Quotas abrufen.

{ "Changes": [ { "Action": "CREATE", "ResourceRecordSet": { "Name": "regional.example.com", "Type": "A", "AliasTarget": { "DNSName": "d-numh1z56v6.execute-api.us-west-2.amazonaws.com", "HostedZoneId": "Z2OJLYMUO9EFXC", "EvaluateTargetHealth": false } } } ] }

Im Folgenden change-resource-record-setswird ein DNS-Eintrag für Ihren regionalen benutzerdefinierten Domainnamen erstellt:

aws route53 change-resource-record-sets \ --hosted-zone-id Z2OJLYMUO9EFXC \ --change-batch file://path/to/your/setup-dns-record.json

Ersetzen Sie die hosted-zone-id durch die Route-53-Hosted-Zone-ID des DNS-Datensatzes, die in Ihrem Konto eingerichtet wurde. Der change-batch-Parameterwert zeigt auf eine JSON-Datei (setup-dns-record.json) in einem Ordner (path/to/your).