Erfahren Sie, wie Sie AWS Cloud Map Service Discovery mit DNS-Abfragen und API-Aufrufen verwenden - AWS Cloud Map

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.

Erfahren Sie, wie Sie AWS Cloud Map Service Discovery mit DNS-Abfragen und API-Aufrufen verwenden

Dieses Tutorial simuliert eine Microservice-Architektur mit zwei Backend-Diensten. Der erste Dienst wird mithilfe einer DNS-Abfrage auffindbar sein. Der zweite Dienst wird nur über die AWS Cloud Map API auffindbar sein.

Anmerkung

Für die Zwecke dieses Tutorials dienen die Ressourcendetails, wie Domainnamen und IP-Adressen, nur zu Simulationszwecken. Sie können nicht über das Internet gelöst werden.

Voraussetzungen

Die folgenden Voraussetzungen müssen erfüllt sein, um dieses Tutorial erfolgreich abzuschließen.

  • Bevor Sie beginnen, führen Sie die Schritte in Zur Verwendung eingerichtet AWS Cloud Map aus.

  • Wenn Sie das noch nicht installiert haben AWS Command Line Interface, folgen Sie den Schritten unter Installieren oder Aktualisieren der neuesten Version von AWS CLI, um es zu installieren.

    Das Tutorial erfordert zum Ausführen von Befehlen ein Befehlszeilenterminal oder eine Shell. Verwenden Sie unter Linux und macOS Ihre bevorzugte Shell und Ihren bevorzugten Paketmanager.

    Anmerkung

    In Windows werden einige Bash-CLI-Befehle, die Sie häufig mit Lambda verwenden (z. B. zip), von den integrierten Terminals des Betriebssystems nicht unterstützt. Um eine in Windows integrierte Version von Ubuntu und Bash zu erhalten, installieren Sie das Windows-Subsystem für Linux.

  • Für das Tutorial ist eine lokale Umgebung mit dem Befehl dig DNS Lookup Utility erforderlich. Weitere Informationen zu diesem dig Befehl finden Sie unter dig — DNS lookup utility.

Schritt 1: Erstellen Sie einen AWS Cloud Map Namespace

In diesem Schritt erstellen Sie einen öffentlichen AWS Cloud Map Namespace. AWS Cloud Map erstellt in Ihrem Namen eine Route 53-Hosting-Zone mit demselben Namen. Auf diese Weise können Sie die in diesem Namespace erstellten Dienstinstanzen entweder mithilfe von öffentlichen DNS-Einträgen oder mithilfe von AWS Cloud Map API-Aufrufen ermitteln.

  1. Melden Sie sich bei an AWS Management Console und öffnen Sie die AWS Cloud Map Konsole unter https://console.aws.amazon.com/cloudmap/.

  2. Wählen Sie Create namespace (Namespace erstellen) aus.

  3. Geben cloudmap-tutorial.com Sie als Namespace-Name an.

    Anmerkung

    Wenn Sie dies in der Produktion verwenden möchten, sollten Sie sicherstellen, dass Sie den Namen einer Domain angegeben haben, die Sie besitzen oder auf die Sie Zugriff hatten. Für die Zwecke dieses Tutorials ist es jedoch nicht erforderlich, dass es sich um eine tatsächliche Domain handelt, die verwendet wird.

  4. (Optional) Geben Sie unter Namespace-Beschreibung eine Beschreibung dafür an, wofür Sie den Namespace verwenden möchten.

  5. Wählen Sie für die Instanzerkennung API-Aufrufe und öffentliche DNS-Abfragen aus.

  6. Behalten Sie die restlichen Standardwerte bei und wählen Sie Create Namespace.

Schritt 2: Erstellen Sie die Dienste AWS Cloud Map

In diesem Schritt erstellen Sie zwei Dienste. Der erste Dienst wird über öffentliche DNS- und API-Aufrufe auffindbar sein. Der zweite Dienst wird nur über API-Aufrufe auffindbar sein.

  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die AWS Cloud Map Konsole unter https://console.aws.amazon.com/cloudmap/.

  2. Wählen Sie im linken Navigationsbereich Namespaces aus, um die Namespaces aufzulisten, die Sie erstellt haben.

  3. Wählen Sie aus der Liste der Namespaces den Namespace aus und klicken Sie auf Details anzeigen. cloudmap-tutorial.com

  4. Wählen Sie im Abschnitt Dienste die Option Dienst erstellen aus und gehen Sie wie folgt vor, um den ersten Dienst zu erstellen.

    1. Geben Sie unter Servicename public-service ein. Der Dienstname wird auf die DNS-Einträge angewendet, die AWS Cloud Map erstellt werden. Das verwendete Format ist<service-name>.<namespace-name>.

    2. Wählen Sie für Service Discovery-Konfiguration die Optionen API und DNS aus.

    3. Wählen Sie im Abschnitt DNS-Konfiguration für Routing-Richtlinie die Option Mehrwertiges Antwort-Routing aus.

      Anmerkung

      Die Konsole übersetzt dies nach der Auswahl in MULTIVALUE. Weitere Informationen zu den verfügbaren Routing-Optionen finden Sie unter Auswahl einer Routing-Richtlinie im Route 53-Entwicklerhandbuch.

    4. Behalten Sie die restlichen Standardwerte bei und wählen Sie Dienst erstellen aus, um zur Seite mit den Namespace-Details zurückzukehren.

  5. Wählen Sie im Abschnitt Dienste die Option Dienst erstellen aus und gehen Sie wie folgt vor, um den zweiten Dienst zu erstellen.

    1. Geben Sie unter Servicename backend-service ein.

    2. Wählen Sie für Service Discovery-Konfiguration die Option Nur API aus.

    3. Behalten Sie die restlichen Standardwerte bei und wählen Sie Service erstellen aus.

Schritt 3: Registrieren Sie die AWS Cloud Map Dienstinstanzen

In diesem Schritt erstellen Sie zwei Dienstinstanzen, eine für jeden Dienst in unserem Namespace.

  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die AWS Cloud Map Konsole unter https://console.aws.amazon.com/cloudmap/.

  2. Wählen Sie aus der Liste der Namespaces den Namespace aus, den Sie in Schritt 1 erstellt haben, und wählen Sie Details anzeigen aus.

  3. Wählen Sie auf der Seite mit den Namespace-Details aus der Liste der Dienste den public-service Dienst aus und klicken Sie auf Details anzeigen.

  4. Wählen Sie im Abschnitt Dienstinstanzen die Option Dienstinstanz registrieren aus und gehen Sie wie folgt vor, um die erste Dienstinstanz zu erstellen.

    1. Geben Sie als Dienstinstanz-ID Folgendes anfirst.

    2. Geben Sie als IPv4 Adresse an192.168.2.1.

    3. Behalten Sie die restlichen Standardwerte bei und wählen Sie Dienstinstanz registrieren aus.

  5. Wählen Sie mithilfe des Breadcrumbs oben auf der Seite cloudmap-tutorial.com aus, um zurück zur Namespace-Detailseite zu navigieren.

  6. Wählen Sie auf der Seite mit den Namespace-Details aus der Liste der Dienste den Backend-Service aus und klicken Sie auf Details anzeigen.

  7. Wählen Sie im Abschnitt Dienstinstanzen die Option Dienstinstanz registrieren aus und gehen Sie wie folgt vor, um die zweite Dienstinstanz zu erstellen.

    1. Geben Sie unter Dienstinstanz-ID second an, dass dies die zweite Dienstinstanz ist.

    2. Wählen Sie als Instanztyp die Option Identifizierungsinformationen für eine andere Ressource aus.

    3. Fügen Sie für benutzerdefinierte Attribute ein Schlüssel-Wert-Paar mit service-name als Schlüssel und backend als Wert hinzu.

    4. Wählen Sie Register service instance (Service-Instance registrieren) aus.

Schritt 4: Entdecken Sie die Dienstinstanzen AWS Cloud Map

Nachdem der AWS Cloud Map Namespace, die Dienste und die Dienstinstanzen erstellt wurden, können Sie überprüfen, ob alles funktioniert, indem Sie die Instanzen ermitteln. Verwenden Sie den dig Befehl, um die öffentlichen DNS-Einstellungen zu überprüfen, und die AWS Cloud Map API, um den Back-End-Dienst zu verifizieren. Weitere Informationen zu diesem dig Befehl finden Sie unter dig — DNS-Suchprogramm.

  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die Route 53-Konsole unter https://console.aws.amazon.com/route53/.

  2. Wählen Sie in der linken Navigation Hosted Zones (Gehostete Zonen).

  3. Wählen Sie die gehostete Zone cloudmap-tutorial.com aus. Dadurch werden die Details der gehosteten Zone in einem separaten Bereich angezeigt. Notieren Sie sich die Nameserver, die mit Ihrer Hosting-Zone verknüpft sind, da wir diese im nächsten Schritt verwenden werden.

  4. Fragen Sie mit dem Befehl dig und einem der Route 53-Nameserver für Ihre gehostete Zone die DNS-Einträge für Ihre Service-Instanz ab.

    dig @hosted-zone-nameserver public-service.cloudmap-tutorial.com

    ANSWER SECTIONIn der Ausgabe sollte die IPv4 Adresse angezeigt werden, die Sie mit Ihrem public-service Service verknüpft haben.

    ;; ANSWER SECTION: public-service.cloudmap-tutorial.com. 300 IN A 192.168.2.1
  5. Fragen Sie mithilfe von die AWS CLI Attribute für Ihre zweiten Dienstinstanzen ab.

    aws servicediscovery discover-instances --namespace-name cloudmap-tutorial.com --service-name backend-service --region region

    In der Ausgabe werden die Attribute, die Sie dem Service zugeordnet haben, als Schlüssel-Wert-Paare angezeigt.

    { "Instances": [ { "InstanceId": "second", "NamespaceName": "cloudmap-tutorial.com", "ServiceName": "backend-service", "HealthStatus": "UNKNOWN", "Attributes": { "service-name": "backend" } } ], "InstancesRevision": 71462688285136850 }

Schritt 5: Bereinigen Sie die Ressourcen

Sobald Sie das Tutorial abgeschlossen haben, können Sie die Ressourcen löschen. AWS Cloud Map erfordert, dass Sie sie in umgekehrter Reihenfolge bereinigen, zuerst die Dienstinstanzen, dann die Dienste und schließlich den Namespace. AWS Cloud Map bereinigt die Route 53-Ressourcen in Ihrem Namen, wenn Sie diese Schritte ausführen.

  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die AWS Cloud Map Konsole unter https://console.aws.amazon.com/cloudmap/.

  2. Wählen Sie aus der Liste der Namespaces den cloudmap-tutorial.com Namespace aus und klicken Sie auf Details anzeigen.

  3. Wählen Sie auf der Seite mit den Namespace-Details aus der Liste der Dienste den public-service Dienst aus und klicken Sie auf Details anzeigen.

  4. Wählen Sie im Abschnitt Dienstinstanzen die first Instanz aus und klicken Sie auf Abmelden.

  5. Wählen Sie mithilfe des Breadcrumbs oben auf der Seite cloudmap-tutorial.com aus, um zur Namespace-Detailseite zurückzukehren.

  6. Wählen Sie auf der Namespace-Detailseite aus der Liste der Dienste den öffentlichen Dienst aus und klicken Sie auf Löschen.

  7. Wiederholen Sie die Schritte 3-6 für die. backend-service

  8. Wählen Sie in der linken Navigationsleiste Namespaces aus.

  9. Wählen Sie den cloudmap-tutorial.com Namespace aus und wählen Sie Löschen.

    Anmerkung

    Obwohl die Route 53-Ressourcen in Ihrem Namen AWS Cloud Map bereinigt werden, können Sie zur Route 53-Konsole navigieren, um zu überprüfen, ob die cloudmap-tutorial.com gehostete Zone gelöscht wurde.