1. Ziele
Aufgaben in diesem Lab:
- Cloud Code-Plug-ins kennenlernen
- In einem Kubernetes-Cluster bereitstellen
- Kubernetes-Logs streamen
- Hot Reload für Änderungen nutzen
- Live-Kubernetes-Anwendungen debuggen
2. Arbeitsbereich vorbereiten
Anwendung klonen
So klonen Sie das Repository und öffnen es in Ihrer Entwicklungsumgebung:
- Öffnen Sie den Cloud Shell-Editor über die folgende URL:
https://ide.cloud.google.com
- Klonen Sie die Anwendungsquelle im Terminalfenster mit dem folgenden Befehl:
git clone https://github.com/viglesiasce/sample-app.git -b golden-path
- Wechseln Sie in das Verzeichnis und legen Sie den IDE-Arbeitsbereich auf das Stammverzeichnis des Repositorys fest:
cd sample-app && cloudshell workspace .
Minikube starten
In diesem Abschnitt erstellen und testen Sie Ihre Anwendung, stellen Sie bereit und greifen darauf zu. Dazu verwenden Sie eine lokale Version von Kubernetes namens Minikube.
- Starten Sie im Terminal Minikube mit folgendem Befehl:
minikube start
Minikube richtet einen lokalen Kubernetes-Cluster in Cloud Shell ein. Die Einrichtung dauert einige Minuten. Während des Starts können Sie sich im nächsten Schritt die verschiedenen Schnittstellen ansehen, die von Cloud Code bereitgestellt werden.
3. Cloud Code-Plug-in kennenlernen
Cloud Code bietet IDE-Unterstützung für den gesamten Entwicklungszyklus von Kubernetes- und Cloud Run-Anwendungen, von der Erstellung einer Anwendung aus einer vorhandenen Vorlage bis hin zur Überwachung der Ressourcen Ihrer bereitgestellten Anwendung. Sie verwenden verschiedene Befehle und Ansichten von Cloud Code. In diesem Schritt lernen Sie die grundlegenden Schnittstellen kennen.
Explorer-Ansichten in der Aktivitätsleiste ansehen
Über die Aktivitätsleiste können Sie auf mehrere Benutzeroberflächenbereiche zugreifen. Klicken Sie auf die Symbole für die einzelnen Ansichten, um sich kurz mit den verschiedenen Ansichten vertraut zu machen.
API Explorer:
- Klicken Sie in der Aktivitätsleiste auf das Symbol „Cloud Code – Cloud APIs“ Cloud Code . Weitere Informationen zur Verwendung dieser Ansicht finden Sie in der Dokumentation.

Secret Manager Explorer:
- Klicken Sie in der Aktivitätsleiste auf die Ansicht „Secret Manager“ . Weitere Informationen zur Verwendung dieser Ansicht finden Sie in der Dokumentation.

Cloud Run Explorer:
- Rufen Sie Cloud Run Explorer auf. Klicken Sie dazu in der Aktivitätsleiste links auf das Cloud Run-Symbol . Weitere Informationen zur Verwendung dieser Ansicht finden Sie in der Dokumentation.

Kubernetes Explorer:
- Rufen Sie Kubernetes Explorer auf. Klicken Sie dazu in der Aktivitätsleiste links auf das Symbol . Weitere Informationen zur Verwendung dieser Ansicht finden Sie in der Dokumentation.

Befehle in der Statusleiste ansehen
Über die Anzeige in der Statusleiste können Sie schnell auf häufig verwendete Befehle zugreifen.
- Suchen Sie in der Statusleiste nach der Anzeige für die Cloud Code-Erweiterung
 und klicken Sie darauf. - Sehen Sie sich die verschiedenen Befehle an, die Sie in Cloud Run und Kubernetes ausführen und debuggen können.
- Klicken Sie auf „Willkommensseite öffnen“, um weitere Informationen und Beispielaktivitäten zu erhalten.
Befehle in der Befehlspalette ansehen
Über die Befehlspalette sind weitere Befehle verfügbar. Sehen Sie sich die Liste der Befehle an, auf die Sie zugreifen können.
- Öffnen Sie die Befehlspalette (drücken Sie Strg/Befehlstaste + Umschalttaste + P) und geben Sie dann „Cloud Code“ ein, um die verfügbaren Befehle zu filtern.
- Verwenden Sie die Pfeiltasten, um durch die Liste der Befehle zu blättern.
4. In einem Kubernetes-Cluster bereitstellen
In diesem Abschnitt erstellen und testen Sie Ihre Anwendung, stellen Sie bereit und greifen darauf zu.
In den folgenden Schritten wird ein Build des Quellcodes gestartet und dann werden die Tests ausgeführt. Der Build und die Tests dauern einige Minuten. Diese Tests umfassen Unit-Tests und einen Validierungsschritt, bei dem die für die Bereitstellungsumgebung festgelegten Regeln geprüft werden. Dieser Validierungsschritt ist bereits konfiguriert und sorgt dafür, dass Sie auch dann eine Warnung zu Bereitstellungsproblemen erhalten, wenn Sie noch in Ihrer Entwicklungsumgebung arbeiten.
- Wählen Sie im Bereich unten im Cloud Shell-Editor „Cloud Code“ 
aus. - Wählen Sie im Bereich oben „Auf Kubernetes ausführen“ aus. Wenn Sie dazu aufgefordert werden, wählen Sie „Ja“ aus, um den Kubernetes-Kontext von Minikube zu verwenden.
- Wählen Sie im unteren Bereich den Tab „Ausgabe“ aus
, um den Fortschritt und Benachrichtigungen zu sehen. - Wählen Sie rechts im Drop-down-Menü des Kanals „Kubernetes: Ausführen/Debuggen – Detailliert“ aus
, um weitere Details und Logs zu sehen, die live aus den Containern gestreamt werden.
Wenn der Build und die Tests abgeschlossen sind, wird auf dem Tab „Ausgabe“ Folgendes angezeigt: Resource deployment/sample-app-dev status completed successfully. Außerdem werden zwei URLs aufgeführt.
- Bewegen Sie im Cloud Code-Terminal den Mauszeiger auf die erste URL in der Ausgabe (http://localhost:8080) und wählen Sie dann in der angezeigten Kurzinfo „Webvorschau öffnen“ aus.
Die lokale Version der Anwendung wird in Ihrem Browser geöffnet. Diese Version der Anwendung wird im Kubernetes-Cluster von Minikube ausgeführt.
- Aktualisieren Sie die Seite in Ihrem Browser. Die Zahl neben „Zähler“ erhöht sich, was darauf hinweist, dass die Anwendung auf Ihre Aktualisierung reagiert.
Lassen Sie diese Seite in Ihrem Browser geöffnet, damit Sie die Anwendung sehen können, während Sie Änderungen in Ihrer lokalen Umgebung vornehmen.
5. Hot Reload für Änderungen nutzen
In diesem Abschnitt nehmen Sie eine Änderung an der Anwendung vor und sehen sich die Änderung an, während die Anwendung im lokalen Kubernetes-Cluster ausgeführt wird. Auf dem Tab „Ausgabe“ für den Kanal „Kubernetes: Ausführen/Debuggen“ wird neben den Anwendungs-URLs auch Watching for changes. angezeigt. Das bedeutet, dass der Überwachungsmodus aktiviert ist. Während sich Cloud Code im Überwachungsmodus befindet, erkennt Cloud Code alle gespeicherten Änderungen in Ihrem Repository und erstellt die Anwendung mit den neuesten Änderungen automatisch neu.
- Rufen Sie im Cloud Shell-Editor die Datei „main.go“ auf.
- Ändern Sie in dieser Datei in Zeile 23 die Farbe von Grün in Blau.
- Speichern Sie die Datei.
Cloud Code erkennt, dass die Änderung an der Anwendung gespeichert wurde, und stellt die Änderung automatisch noch einmal bereit. Auf dem Tab „Ausgabe“ wird „Update initiated“ (Update gestartet) angezeigt. Diese erneute Bereitstellung dauert einige Minuten.
Dieser automatische Build ähnelt dem Hot Reload für Code, einem Feature, das für einige Anwendungstypen und Frameworks verfügbar ist.
- Wenn der Build abgeschlossen ist, rufen Sie in Ihrem Browser die Seite auf, auf der die Anwendung geöffnet ist, und aktualisieren Sie sie.
Wenn Sie die Seite aktualisieren, ändert sich die Farbe oben in der Tabelle von Blau in Grün.
Mit dieser Einrichtung ist das automatische Neuladen für jede Architektur und mit allen Komponenten möglich. Wenn Sie Cloud Code und Minikube verwenden, gibt es für alles, was in Kubernetes ausgeführt wird, diese Hot-Reload-Funktion für den Code.
6. Live-Kubernetes-Anwendungen debuggen
Sie haben die Anwendung ausgeführt, eine Änderung vorgenommen und die ausgeführte Anwendung angesehen. In diesem Abschnitt debuggen Sie die Anwendung, um sicher zu sein, dass sie bereit ist, wieder in das Haupt-Repository übernommen zu werden.
Für dieses Debugging-Beispiel konzentrieren wir uns auf den Abschnitt des Codes für den Seitenzähler.
- Öffnen Sie im Cloud Shell-Editor die Datei „main.go“.
- Legen Sie einen Haltepunkt in der Anwendung fest. Klicken Sie dazu links neben die Zahl in Zeile 82 („if err != nil {“).
- Wählen Sie im blauen Bereich unten im Cloud Shell-Editor „Cloud Code“
 aus. - Wählen Sie im Bereich oben „In Kubernetes debuggen“ aus.
Cloud Code führt Debugger aus und hängt sie an, damit Sie auf den In-Memory-Status der Anwendung zugreifen können und nicht nur auf das nutzerseitige Verhalten der Anwendung.
- Am Ende des Bereitstellungsprozesses werden Sie oben im Fenster aufgefordert, das Verzeichnis im Container zu bestätigen, in dem die Anwendung bereitgestellt wird.

Prüfen Sie, ob der Wert auf „/go/src/app“ festgelegt ist, und drücken Sie die Eingabetaste, um den Wert zu übernehmen.
- Warten Sie, bis die Bereitstellung des Debuggers abgeschlossen ist. Sie erkennen, dass die Bereitstellung abgeschlossen ist, wenn die Statusleiste orange wird und in der Ausgabe
"Attached debugger to container "sample-app-dev-..." successfullyangezeigt wird." - Bewegen Sie im Cloud Code-Terminal den Mauszeiger auf die erste URL in der Ausgabe (http://localhost:8081) und wählen Sie dann in der angezeigten Kurzinfo „Webvorschau öffnen“ aus. Die Seite wird nicht vollständig geladen. Das ist so beabsichtigt.
- Wechseln Sie zurück zur IDE, in der der Debugger jetzt angezeigt wird. Der Code wird auf dem Tab angezeigt. Sie sehen den Aufrufstack und die Variablen, die in diesem Teil des Codes verfügbar sind. Sie können „Variablen – Lokal“ maximieren, um den aktuellen Wert der Zählervariable zu sehen.
- Wenn die Seite weiter geladen werden soll, wählen Sie im Debugging-Fenster das Symbol „Weiter“ aus.

- Wenn Sie mit dem Debuggen fertig sind, klicken Sie auf die Schaltfläche „Beenden“, um alle ausgeführten Threads zu beenden.
