Hinweis:
- Dieses Tutorial erfordert Zugriff auf Oracle Cloud. Informationen zum Registrieren eines kostenlosen Accounts finden Sie unter Erste Schritte mit Oracle Cloud Infrastructure Free Tier.
- Es verwendet Beispielwerte für Oracle Cloud Infrastructure-Zugangsdaten, -Mandanten und -Compartments. Wenn Sie Ihre Übung abgeschlossen haben, ersetzen Sie diese Werte durch spezifische Werte für Ihre Cloud-Umgebung.
Mit der OCI Events-Serviceregel regionsübergreifende DNS-Datensätze für eine private Zone mit OCI Functions aktualisieren
Einführung
In diesem Tutorial erfahren Sie, wie Sie Domain Name System-(DNS-)Datensätze für Compute-Instanzen in einer privaten Zone in beiden Regionen automatisch aktualisieren, wenn eine neue Compute-Instanz erstellt wird oder wenn sie während eines Switchover-Szenarios in einem Oracle Cloud Infrastructure Full Stack Disaster Recovery-(OCI Full Stack DR-)Plan verschoben wird. Dieses Tutorial behandelt zwei spezifische OCI-Services.
-
OCI Events Service-Regel: Ein Service, der automatisierte Antworten auf Änderungen und Ereignisse in Ihrer OCI-Umgebung auslöst.
-
OCI Functions: Ein serverloser Computing-Service, mit dem Sie Code als Reaktion auf Ereignisse ausführen können, ohne die Infrastruktur zu verwalten.
Dieser Anwendungsfall war ursprünglich für die Verwendung während eines OCI Full Stack DR-Switchover-Plans vorgesehen, bei dem Instanzen zwischen Regionen verschoben werden. Im Wesentlichen umfasst der Disaster Recovery-(DR-)Switchover-Prozess das Erstellen einer neuen Instanz in der neuen Region und das Beenden der Instanz in der vorherigen Region. Basierend auf diesem Szenario konzentriert sich dieses Tutorial auf den Ereignistyp Start - Instanzende, der einen OCI Functions auslöst, um die DNS-Datensätze für private Zonen in beiden Regionen zu aktualisieren.
Diese Lösung kann auch als Standardautomatisierung für private OCI-DNS-Zonen dienen. Es wird ein DNS-Datensatz für jede neue Instanz erstellt, die im ausgewählten Compartment erstellt wurde, oder für alle anderen Filter, die Sie zur Identifizierung der Zielinstanzen angeben. Weitere Informationen finden Sie unter Services, die Ereignisse erzeugen.
Allgemeine Architektur
Hinweis:
Dieses Tutorial ist ausschließlich für Bildungs- und Studienzwecke konzipiert. Es bietet eine Umgebung, in der Lernende experimentieren und praktische Erfahrungen in einem kontrollierten Umfeld sammeln können. Es ist wichtig zu beachten, dass die in diesem Tutorial verwendeten Sicherheitskonfigurationen und -praktiken möglicherweise nicht für reale Szenarien geeignet sind.
Sicherheitsaspekte für reale Anwendungen sind oft viel komplexer und dynamischer. Daher ist es vor der Implementierung einer der hier in einer Produktionsumgebung demonstrierten Techniken oder Konfigurationen unerlässlich, eine umfassende Sicherheitsbewertung und -prüfung durchzuführen. Diese Überprüfung sollte alle Aspekte der Sicherheit umfassen, einschließlich Zugriffskontrolle, Verschlüsselung, Überwachung und Compliance, um sicherzustellen, dass das System den Sicherheitsrichtlinien und -standards der Organisation entspricht.
Sicherheit sollte beim Übergang von einer Übungsumgebung zu einer realen Bereitstellung immer oberste Priorität haben.
Ziele
-
Richten Sie eine OCI Event Service-Regel ein, um eine bereitgestellte OCI Functions auszulösen. Diese Funktion aktualisiert einen Datensatz einer privaten DNS-Zone in zwei Regionen, wenn eine neue Instanz im ausgewählten Compartment erstellt wird.
Hinweis: Dieses Tutorial behandelt nicht das Setup von OCI Full Stack DR. Stattdessen wird es sich auf die Automatisierung der privaten DNS-Zone in zwei oder mehr Regionen konzentrieren. Weitere Informationen finden Sie unter OCI Full Stack Disaster Recovery Service mit Oracle WebLogic Server-Domains verwenden.
Voraussetzungen
-
OCI Environment
-
OCI-Account mit Admin-Berechtigungen.
-
Ein Compartment zum Erstellen Ihrer Ressourcen.
Hinweis: Notieren Sie sich den Compartment-Namen und die Compartment-ID.
-
Liste der Oracle Cloud-ID (OCIDs) der privaten OCI-DNS-Zone, bei der neu gestartete Instanzen einen DNS-Datensatz in jeder Region haben, die Sie möglicherweise benötigen. In diesem Tutorial gibt es zwei private DNS-Zonen: eine für die GRU-Region und eine für die VCP-Region.
-
-
Umgebung des lokalen Rechners
-
Richten Sie eine lokale Oracle Cloud Infrastructure-Befehlszeilenschnittstelle (OCI-CLI) ein. Weitere Informationen finden Sie unter OCI-CLI installieren.
-
Lokaler Docker, um Images erstellen zu können. Wenn Sie Oracle Linux verwenden, finden Sie weitere Informationen unter Docker: Docker unter Oracle Linux 8 installieren (OL8).
-
Lokale Fn-Projekt-CLI, um Ihre Funktion in OCI bereitstellen zu können. Weitere Informationen finden Sie unter Fn-Projekt-CLI installieren.
-
Aufgabe 1: Dynamische Gruppen einrichten
Gehen Sie zu Ihrer Domain, klicken Sie auf Dynamische Gruppen, und erstellen Sie die folgenden Gruppen.
Dynamischer Gruppenname: MyFunctions
.
ALL {resource.type = 'fnfunc', resource.compartment.id = 'pasteYourCompartmentOCID'}
Aufgabe 2: Policys erstellen
Gehen Sie zu Policys, und erstellen Sie die folgenden Policys.
Policy-Name: FunctionsPolicies
.
Allow dynamic-group MyFunctions to read repos in compartment YOUR-COMPARTMENT-NAME
Allow dynamic-group MyFunctions to use instance-family in compartment YOUR-COMPARTMENT-NAME
Allow dynamic-group MyFunctions to read app-catalog-listing in compartment YOUR-COMPARTMENT-NAME
Allow dynamic-group MyFunctions to use volume-family in compartment YOUR-COMPARTMENT-NAME
Allow dynamic-group MyFunctions to use virtual-network-family in compartment YOUR-COMPARTMENT-NAME
Allow dynamic-group MyFunctions to manage dns-records in compartment YOUR-COMPARTMENT-NAME
Allow dynamic-group MyFunctions to use dns-zones in compartment YOUR-COMPARTMENT-NAME
Aufgabe 3: OCI Container Registry erstellen
-
Gehen Sie zu Entwicklerservices, klicken Sie auf Containerregistrierung, und erstellen Sie ein privates Repository für das Fn-Image.
Repository-Name:
lab/fnpy-event-dns-update
. -
Prüfen Sie die Repositorys, und notieren Sie sich den Namespace.
-
Öffnen Sie die Terminal-Shell, in der OCI-CLI und Docker installiert sind, und melden Sie sich bei der Registry an. Prüfen Sie die korrekte URL für Ihre Region. In diesem Tutorial verwenden wir die Region Brazil East (Sao Paulo), in der die Registry-URL
gru.ocir.io
lautet.docker login gru.ocir.io Username: <your container namespace>/youruser Password: YOUR_AUTH_TOKEN_CREATED_EARLIER
Aufgabe 4: Python OCI Functions zum Aktualisieren von DNS in privaten Zonen erstellen
-
Gehen Sie zur OCI-Konsole, und klicken Sie auf Entwicklerservices. Klicken Sie unter Functions auf Anwendungen und Anwendung erstellen.
-
Erstellen Sie die Konfiguration für die betroffenen privaten OCI-DNS-Zonen.
Hinweis: Diese Konfigurationsvariable gibt die zu aktualisierenden OCIDs für private Zonen an. Sie können mehrere OCIDs durch Kommas getrennt auflisten.
Secret-Name Datum TARGET_ZONES_OCID Liste der PRIVATE ZONES-OCIDs durch Komma getrennt festlegen In diesem Tutorial werden zwei private Zonen festgelegt: eine für die GRU-Region und eine für die VCP-Region.
Beispiel :
ocid1.dns-zone.oc1.sa-saopaulo-1.xxxx
ocid1.dns-zone.oc1.sa-vinhedo-1.xxx
-
Gehen Sie zur Terminalshell, in der Docker, OCI-CLI und Fn-Projekt-CLI installiert sind, und führen Sie die folgenden Befehle aus, um die Funktion zu initialisieren.
Hinweis: Wenn Sie die Aufgaben ausgeführt haben, wurde Ihr Docker-Anmeldebefehl bereits ausgeführt. Wenn nicht, fahren Sie mit der Docker-Anmeldung in Aufgabe 3.3 fort.
mkdir lab cd lab fn create context oci-cloud --provider oracle fn use context oci-cloud fn update context oracle.compartment-id PASTE_YOUR_COMPARTMENT_OCID fn update context api-url https://functions.sa-saopaulo-1.oraclecloud.com fn update context registry gru.ocir.io/PASTE_YOUR_REGISTRY_NAMESPACE/lab fn init --runtime python fnpy-event-dns-update cd fnpy-event-dns-update ls -lrt
Hinweis: In diesem Tutorial wird die Region Brazil East(Sao Paulo) verwendet. Wenn Sie eine andere Region verwenden, müssen Sie die Speicherorte
api-url
undregistry
ändern.Mit dem Befehl
init
wird eine Hallo-Welt-Funktion infunc.py
erstellt. Dieser Code wird überschrieben. -
Rufen Sie den Beispielcode der Python-Funktion von hier ab: fnpy-event-dns-update.zip, dekomprimieren Sie ihn, und überschreiben Sie die Dateien beim Befehl
init
.-
Kopieren Sie die ZIP-Datei in das Übungsverzeichnis, in dem Sie den Befehl
fn init
ausgeführt haben, und suchen Sie nach den Dateien im Verzeichnis.ls -lrt
-
Dekomprimieren Sie die Datei, und überschreiben Sie die vorhandenen Dateien.
unzip fnpy-event-dns-update.zip
-
-
Erstellen Sie den neuen Code, und stellen Sie die Funktion bereit.
ls -lrt fn deploy --app MyApp
Aufgabe 5: OCI Events Service-Regel erstellen
-
Gehen Sie zur OCI-Konsole, und klicken Sie auf Observability and Management. Wählen Sie unter Eventservice die Option Regeln aus, und klicken Sie auf Regel erstellen.
-
Geben Sie folgende Informationen ein.
- Name: Geben Sie
MyAutoDNSRule
ein. - Regelbedingungen:
- Bedingung 1:
- Bedingung: Wählen Sie
Event Type
aus. - Servicename: Wählen Sie
Compute
aus. - Ereignistyp: Wählen Sie
Instance - Launch End
aus.
- Bedingung: Wählen Sie
- Bedingung 2:
- Bedingung: Wählen Sie
Attribute
aus. - Attributname: Wählen Sie
compartmentId
aus. - Attributwerte: Geben Sie die Compartment-OCID ein.
- Bedingung: Wählen Sie
- Bedingung 1:
- Aktionen:
- Aktionstyp: Wählen Sie
Functions
aus. - Function Compartment: Wählen Sie Ihr Compartment aus.
- Funktionsanwendung: Wählen Sie
MyApp
aus. - Funktion: Wählen Sie
fnpy-event-dns-update
aus.
- Aktionstyp: Wählen Sie
Hinweis: In diesem Beispiel filtern wir die Instanzen nach compartmentID. Dies bedeutet, dass jede neu gestartete Instanz in diesem Compartment die ausgewählte Funktion auslöst. Je nach Bedarf können Sie verschiedene Filter und Bedingungen angeben.
- Name: Geben Sie
Aufgabe 6: Lösung validieren
In diesem Tutorial haben wir private DNS-Zonen sowohl in den GRU- als auch in den VCP-Regionen eingerichtet und die OCIDs für jede private DNS-Zone dokumentiert. Diese OCIDs werden für die Konfiguration der OCI Functions verwendet.
-
Stellen Sie sicher, dass OCI Functions verfügbar ist, und aktivieren Sie das Logging dafür.
-
Gehen Sie zur OCI-Konsole, und klicken Sie auf Entwicklerservices. Klicken Sie unter Funktionen auf Anwendungen, und wählen Sie die erstellte Anwendung
MyApp
aus. -
Klicken Sie auf Logs, und wählen Sie Log aktivieren aus.
-
-
Prüfen Sie die aktuellen privaten DNS-Zonen. In beiden Regionen wurde eine Domain mit dem Namen
UBUNTUAPPS.COM
eingerichtet, wie in den folgenden Images dargestellt. -
Erstellen Sie eine neue Compute-Instanz, um einen OCI Full Stack DR-Switchover zu simulieren. Dadurch wird das Ereignis
Instance Launch - END
ausgelöst. Dadurch wird OCI Functions aufgerufen, um die private DNS-Zone in beiden Regionen zu aktualisieren. -
Nachdem die Instanz erstellt wurde, prüfen Sie, ob die private DNS-Zone in beiden Regionen ordnungsgemäß aktualisiert wurde.
-
Prüfen Sie die OCI Functions-Logs, um die Details der ausgeführten Funktion zu prüfen.
Verwandte Links
Danksagungen
- Autor - Joao Tarla (Oracle LAD A-Team Solution Engineer)
Weitere Lernressourcen
Lernen Sie andere Übungen auf docs.oracle.com/learn kennen, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube Channel zu. Außerdem können Sie education.oracle.com/learning-explorer besuchen, um Oracle Learning Explorer zu werden.
Die Produktdokumentation finden Sie im Oracle Help Center.
Use OCI Events Service Rule to Update Cross Region DNS Records for a Private Zone with OCI Functions
G11036-01
July 2024