Prüfpunkte
Build with Cloud Build
/ 25
REST API Deployed
/ 25
Firestore database created
/ 25
Build image revision 0.2
/ 25
REST API mit Go und Cloud Run entwickeln
- GSP761
- Übersicht
- Lernziele
- Vorbereitung
- Einrichtung und Anforderungen
- Aufgabe 1: Google APIs aktivieren
- Aufgabe 2: REST API entwickeln
- Aufgabe 3: Testkundendaten importieren
- Aufgabe 4: REST API mit der Firestore-Datenbank verbinden
- Aufgabe 6: Quiz
- Aufgabe 7: Neue Version bereitstellen
- Das wars! Sie haben das Lab erfolgreich abgeschlossen.
GSP761
Übersicht
Den Labs des Kurses Serverless Cloud Run Development liegt das Szenario eines fiktiven Unternehmens zugrunde, in dem Sie den handelnden Personen bei der Umsetzung ihres Plans für eine serverlose Migration helfen.
Vor zwölf Jahren gründete Lily die Tierklinikkette „Pet Theory“. Seitdem ist die Kette stark gewachsen und Lily verbringt mehr Zeit am Telefon mit Versicherungen als mit der Behandlung von Tieren. Praktisch wäre es, wenn die Versicherungen die Gesamtkosten der Behandlungen einfach online einsehen könnten.
In vorherigen Labs dieser Reihe migrierten die Softwareberaterin Ruby und der IT-Administrator Patrick die Kundendatenbank von Pet Theory in eine serverlose Firestore-Datenbank in der Cloud und gewährten den Kunden Zugriff darauf, damit diese Termine online vereinbaren können. Da das Administrationsteam von Pet Theory aus nur einer Person besteht, wird eine serverlose Lösung benötigt, die nicht viel laufende Wartung erfordert.
In diesem Lab helfen Sie Ruby und Patrick dabei, Versicherungen Zugang zu den Kundendaten von Pet Theory zu gewähren, ohne dabei personenidentifizierbare Informationen offenzulegen. Dafür erstellen Sie mit Cloud Run, einem serverlosen Dienst, ein sicheres REST API-Gateway (Representational State Transfer). So können die Versicherungen die Gesamtkosten der Behandlungen einsehen, ohne Zugriff auf die personenidentifizierbaren Informationen der Kunden zu haben.
Lernziele
Aufgaben in diesem Lab:
- REST API mit Go entwickeln
- Testkundendaten in Firestore importieren
- REST API mit der Firestore-Datenbank verbinden
- REST API in Cloud Run bereitstellen
Vorbereitung
Dies ist ein Lab für Fortgeschrittene. Es setzt Vertrautheit mit der Cloud Console und Cloud Shell-Umgebungen voraus. Dieses Lab ist Teil einer Reihe. Es kann hilfreich sein, die vorherigen Labs zu absolvieren, ist aber nicht unbedingt erforderlich:
- Daten in eine serverlose Datenbank importieren
- Serverlose Webanwendung mit Firebase und Firestore erstellen
- Serverlose Anwendung für das Erstellen von PDF-Dateien entwickeln
Einrichtung und Anforderungen
Vor dem Klick auf „Start Lab“ (Lab starten)
Lesen Sie diese Anleitung. Labs sind zeitlich begrenzt und können nicht pausiert werden. Der Timer beginnt zu laufen, wenn Sie auf Lab starten klicken, und zeigt Ihnen, wie lange die Ressourcen für das Lab verfügbar sind.
In diesem praxisorientierten Lab können Sie die Lab-Aktivitäten in einer echten Cloud-Umgebung selbst durchführen – nicht in einer Simulations- oder Demo-Umgebung. Dazu erhalten Sie neue, temporäre Anmeldedaten, mit denen Sie für die Dauer des Labs auf Google Cloud zugreifen können.
Für dieses Lab benötigen Sie Folgendes:
- Einen Standardbrowser (empfohlen wird Chrome)
- Zeit für die Durchführung des Labs – denken Sie daran, dass Sie ein begonnenes Lab nicht unterbrechen können.
Lab starten und bei der Google Cloud Console anmelden
-
Klicken Sie auf Lab starten. Wenn Sie für das Lab bezahlen müssen, wird ein Pop-up-Fenster geöffnet, in dem Sie Ihre Zahlungsmethode auswählen können. Auf der linken Seite befindet sich der Bereich Details zum Lab mit diesen Informationen:
- Schaltfläche Google Cloud Console öffnen
- Restzeit
- Temporäre Anmeldedaten für das Lab
- Ggf. weitere Informationen für dieses Lab
-
Klicken Sie auf Google Cloud Console öffnen (oder klicken Sie mit der rechten Maustaste und wählen Sie Link in Inkognitofenster öffnen aus, wenn Sie Chrome verwenden).
Im Lab werden Ressourcen aktiviert. Anschließend wird ein weiterer Tab mit der Seite Anmelden geöffnet.
Tipp: Ordnen Sie die Tabs nebeneinander in separaten Fenstern an.
Hinweis: Wird das Dialogfeld Konto auswählen angezeigt, klicken Sie auf Anderes Konto verwenden. -
Kopieren Sie bei Bedarf den folgenden Nutzernamen und fügen Sie ihn in das Dialogfeld Anmelden ein.
{{{user_0.username | "Username"}}} Sie finden den Nutzernamen auch im Bereich Details zum Lab.
-
Klicken Sie auf Weiter.
-
Kopieren Sie das folgende Passwort und fügen Sie es in das Dialogfeld Willkommen ein.
{{{user_0.password | "Password"}}} Sie finden das Passwort auch im Bereich Details zum Lab.
-
Klicken Sie auf Weiter.
Wichtig: Sie müssen die für das Lab bereitgestellten Anmeldedaten verwenden. Nutzen Sie nicht die Anmeldedaten Ihres Google Cloud-Kontos. Hinweis: Wenn Sie Ihr eigenes Google Cloud-Konto für dieses Lab nutzen, können zusätzliche Kosten anfallen. -
Klicken Sie sich durch die nachfolgenden Seiten:
- Akzeptieren Sie die Nutzungsbedingungen.
- Fügen Sie keine Wiederherstellungsoptionen oder Zwei-Faktor-Authentifizierung hinzu (da dies nur ein temporäres Konto ist).
- Melden Sie sich nicht für kostenlose Testversionen an.
Nach wenigen Augenblicken wird die Google Cloud Console in diesem Tab geöffnet.
Cloud Shell aktivieren
Cloud Shell ist eine virtuelle Maschine, auf der Entwicklertools installiert sind. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft auf Google Cloud. Mit Cloud Shell erhalten Sie Befehlszeilenzugriff auf Ihre Google Cloud-Ressourcen.
- Klicken Sie oben in der Google Cloud Console auf Cloud Shell aktivieren .
Wenn Sie verbunden sind, sind Sie bereits authentifiziert und das Projekt ist auf Ihre Project_ID,
gcloud
ist das Befehlszeilentool für Google Cloud. Das Tool ist in Cloud Shell vorinstalliert und unterstützt die Tab-Vervollständigung.
- (Optional) Sie können den aktiven Kontonamen mit diesem Befehl auflisten:
- Klicken Sie auf Autorisieren.
Ausgabe:
- (Optional) Sie können die Projekt-ID mit diesem Befehl auflisten:
Ausgabe:
gcloud
finden Sie in Google Cloud in der Übersicht zur gcloud CLI.
Lily, Gründerin von Pet Theory |
Hallo Ruby, ich hab dir doch letzte Woche erzählt, wie sehr mich der Papierkrieg und die vielen Telefonate mit den Versicherern belasten. Es würde mir unglaublich helfen, wenn die Sachbearbeiter direkt auf die Daten unserer Kunden zugreifen könnten. Natürlich sicher und möglichst einfach. Der aktuelle Arbeitsaufwand ist einfach zu viel. Kannst du mir weiterhelfen? Lily |
Ruby, Softwareberaterin |
Hallo Lily, gestern beim Mittagessen mit Patrick haben wir schon einen Plan geschmiedet, wie wir Externen sicheren Zugriff auf die Datensätze von Pet Theory geben können. Der Plan besteht aus vier Phasen:
Patrick und ich wissen bereits, wie wir die Phasen 1 und 2 umsetzen, können also sofort loslegen. Bis Ende der Woche sollten wir einen funktionierenden Prototyp haben. Ruby |
Ihre Aufgabe besteht darin, Ruby bei der Entwicklung der REST API für Pet Theory unter die Arme zu greifen.
Aufgabe 1: Google APIs aktivieren
Im Rahmen dieses Labs wurden für Sie zwei APIs aktiviert:
Name | API |
---|---|
Cloud Build | cloudbuild.googleapis.com |
Cloud Run | run.googleapis.com |
Aufgabe 2: REST API entwickeln
- Aktivieren Sie das Projekt:
- Klonen Sie das Repository „pet-theory“ und greifen Sie auf den Quellcode zu:
-
Verwenden Sie Ihren bevorzugten Texteditor oder klicken Sie auf die Code-Editor-Schaltfläche in der Cloud Shell-Seitenleiste, um die Dateien
go.mod
undgo.sum
aufzurufen. -
Erstellen Sie die Datei
main.go
und fügen Sie den folgenden Inhalt ein:
- Erstellen Sie jetzt eine Datei mit dem Namen
Dockerfile
und fügen Sie Folgendes hinzu:
Die Datei server
ist das Binärprogramm für die Ausführung, das aus main.go
erstellt wird.
- Führen Sie den folgenden Befehl aus, um das Binärprogramm zu erstellen:
- Prüfen Sie nach dem Ausführen des Build-Befehls, ob sich das Dockerfile und der Server im selben Verzeichnis befinden:
Für die meisten Cloud Run‑ und Go-basierten Anwendungen können Sie eine Dockerfile-Vorlage wie die oben genannte ohne Änderungen einfach übernehmen.
- Führen Sie den folgenden Befehl aus, um die einfache REST API bereitzustellen:
Dieser Befehl erzeugt einen Container mit dem Code und veröffentlicht ihn in der Container Registry Ihres Projekts. Klicken Sie auf Navigationsmenü > Container Registry, um den Container aufzurufen. Wenn Ihnen rest-api
nicht angezeigt wird, klicken Sie auf Aktualisieren.
Klicken Sie auf Fortschritt prüfen.
- Nachdem der Container erstellt wurde, können Sie ihn bereitstellen:
- Nach der Bereitstellung ist eine Meldung wie diese zu sehen:
Klicken Sie auf Fortschritt prüfen.
- Klicken Sie auf die Dienst-URL am Ende der Nachricht, um sie in einem neuen Browserfenster zu öffnen. Hängen Sie
/v1/
an das Ende der URL an und drücken Sie die Eingabetaste.
Es sollte folgende Meldung angezeigt werden:
Die REST API funktioniert. Der Dienstprototyp steht. Im nächsten Abschnitt rufen Sie mit der API Daten von „Kunden“ aus einer Firestore-Datenbank ab.
Aufgabe 3: Testkundendaten importieren
Ruby, Softwareberaterin |
Hallo Patrick, hast du noch diese Pseudokundendaten, die wir vor einiger Zeit erstellt haben? Wir können die für unsere Tests gebrauchen. Und weißt du noch, wie man eine Firestore-Datenbank einrichtet und Daten importiert? Ruby |
Patrick, IT-Administrator |
Hallo Ruby, ja, die Testdaten habe ich noch. Ich migriere sie noch heute zu Firestore, damit du damit arbeiten kannst. Patrick |
Ruby und Patrick haben vor einiger Zeit eine Testdatenbank mit zehn Kunden erstellt, die einige Behandlungsvorschläge für die Katze eines Kunden enthält.
Sie helfen Patrick dabei, die Firestore-Datenbank zu konfigurieren und die Testkundendaten zu importieren. Zuerst aktivieren Sie Firestore in Ihrem Projekt.
-
Kehren Sie zur Cloud Console zurück und klicken Sie auf Navigationsmenü > Firestore.
-
Klicken Sie auf Datenbank erstellen.
-
Klicken Sie auf Nativer Modus und dann auf Fortfahren.
-
Wählen Sie als Standorttyp die Option Region aus.
-
Wählen Sie aus der Liste die Region
aus und klicken Sie auf Datenbank erstellen.
Warten Sie, bis die Datenbank erstellt wurde, bevor Sie fortfahren.
Klicken Sie auf Fortschritt prüfen.
- Migrieren Sie die Importdateien in einen Cloud Storage-Bucket, der für Sie erstellt wurde:
- Importieren Sie nun diese Daten in Firebase:
Aktualisieren Sie das Browserfenster mit der Cloud Console, um die Firestore-Ergebnisse zu sehen.
- Klicken Sie in Firestore unter „Standard“ auf Kunden. Ihnen sollten die importierten Daten der Haustiere angezeigt werden, die Sie sich näher ansehen können. Falls Sie keine Daten sehen, aktualisieren Sie die Seite.
Sehr gut! Die Firestore-Datenbank ist nun erstellt und die Testdaten wurden eingelesen.
Aufgabe 4: REST API mit der Firestore-Datenbank verbinden
Ruby, Softwareberaterin |
Hallo Lily, kurzes Update: Patrick und ich haben die ersten beiden Aufgaben auf der Liste erledigt. Ich mache mich jetzt an die REST API und sorge dafür, dass sie auf die Kundendaten in Firestore zugreifen kann. Ruby |
Lily, Gründerin von Pet Theory |
Hallo Ruby, tolle Arbeit! Freue mich schon darauf, die nächste Phase in Aktion zu erleben. Lily |
In diesem Abschnitt helfen Sie Ruby dabei, einen weiteren Endpunkt in der REST API zu erstellen, der so aussieht:
Diese URL soll beispielsweise die Gesamtkosten aller vorgeschlagenen, angenommenen und abgelehnten Behandlungen des Kunden 22530 liefern, sofern diese Informationen in der Firestore-Datenbank vorhanden sind:
Für diese neue Funktionalität muss ein Paket auf die Firestore-Datenbank zugreifen, während ein anderes Paket das Cross-Origin Resource Sharing (CORS) übernimmt.
- Rufen Sie den Wert der Umgebungsvariable $GOOGLE_CLOUD_PROJECT ab:
- Öffnen Sie die vorhandene Datei
main.go
im Verzeichnis „pet-theory/lab08“.
- Ersetzen Sie den Inhalt der Datei durch den Code unten. Achten Sie dabei darauf, dass
PROJECT_ID
aufgesetzt ist:
- Fügen Sie die Unterstützung von Handlern unten in der Datei hinzu:
- Fügen Sie die Unterstützung von Kunden unten in der Datei hinzu:
- Speichern Sie die Datei.
Aufgabe 6: Quiz
Aufgabe 7: Neue Version bereitstellen
- Erstellen Sie den Quellcode neu:
- Erstellen Sie ein neues Image für die REST API:
Klicken Sie auf Fortschritt prüfen.
- Stellen Sie das aktualisierte Image bereit:
- Kehren Sie zum Browsertab zurück, der bereits auf diese URL (mit
/v1/
am Ende) verweist. Aktualisieren Sie die Seite. Es sollte dieselbe Meldung wie zuvor zu sehen sein, laut der die API immer noch den Status RUNNING hat.
- Hängen Sie in der Adressleiste des Browsers
/customer/22530
an die Anwendungs-URL an. Sie sollten diese JSON-Antwort mit den Gesamtkosten aller vorgeschlagenen, angenommenen und abgelehnten Behandlungen des Kunden erhalten:
- Hier sind einige weitere Kundennummern, die Sie anstelle der 22530 in der URL abfragen können:
- 34216
- 70156 (alle Summen sollten null sein)
- 12345 (Kunde/Tier nicht vorhanden, Sie sollten eine Fehlermeldung wie Query is nil sehen)
Sie haben eine skalierbare, wartungsarme, serverlose REST API erstellt, die Lesezugriff auf eine Datenbank hat.
Das wars! Sie haben das Lab erfolgreich abgeschlossen.
Glückwunsch! Sie haben Ruby und Patrick geholfen, den Prototyp einer REST API für Pet Theory zu entwickeln. Sie haben eine REST API mit einer Verbindung zu einer Firestore-Datenbank erstellt und in Cloud Run bereitgestellt. Außerdem haben Sie die API getestet, um sicherzugehen, dass sie wie gewünscht funktioniert.
Google Cloud-Schulungen und -Zertifizierungen
In unseren Schulungen erfahren Sie alles zum optimalen Einsatz unserer Google Cloud-Technologien und können sich entsprechend zertifizieren lassen. Unsere Kurse vermitteln technische Fähigkeiten und Best Practices, damit Sie möglichst schnell mit Google Cloud loslegen und Ihr Wissen fortlaufend erweitern können. Wir bieten On-Demand-, Präsenz- und virtuelle Schulungen für Anfänger wie Fortgeschrittene an, die Sie individuell in Ihrem eigenen Zeitplan absolvieren können. Mit unseren Zertifizierungen weisen Sie nach, dass Sie Experte im Bereich Google Cloud-Technologien sind.
Anleitung zuletzt am 6. Mai 2024 aktualisiert
Lab zuletzt am 6. Mai 2024 getestet
© 2024 Google LLC. Alle Rechte vorbehalten. Google und das Google-Logo sind Marken von Google LLC. Alle anderen Unternehmens- und Produktnamen können Marken der jeweils mit ihnen verbundenen Unternehmen sein.