Übersicht

Cloud Run ist eine verwaltete Computing-Plattform, mit der Sie zustandslose Container ausführen können, die über HTTP-Anfragen abrufbar sind. Cloud Run arbeitet serverlos und benötigt keine Infrastrukturverwaltung. So können Sie sich ganz auf das Programmieren von Anwendungen konzentrieren.
Cloud Run basiert auf Knative. Damit können Sie Container wahlweise vollständig verwaltet mit Cloud Run oder in Ihrem Google Kubernetes Engine-Cluster mit Cloud Run in GKE ausführen.
Das Ziel dieses Labs ist es, ein Image einer einfachen Containeranwendung zu erstellen und in Cloud Run bereitzustellen.
Ziele
Aufgaben in diesem Lab:
- Cloud Run API aktivieren
- Einfache Node.js-Anwendung erstellen, die als serverloser, zustandsloser Container bereitgestellt werden kann
- Anwendung containerisieren und in Artifact Registry hochladen
- Containeranwendung in Cloud Run bereitstellen
- Nicht benötigte Images löschen, um zusätzliche Speichergebühren zu vermeiden
Einrichtung und Anforderungen
Für jedes Lab werden Ihnen ein neues Google Cloud-Projekt und die entsprechenden Ressourcen für eine bestimmte Zeit kostenlos zur Verfügung gestellt.
-
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.
Hinweis: Wenn Sie eine Liste der Google Cloud-Produkte und ‑Dienste aufrufen möchten, klicken Sie oben links auf das Navigationsmenü oder geben Sie den Namen des Produkts oder Dienstes in das Feld Suchen ein.
Google Cloud Shell aktivieren
Google Cloud Shell ist eine virtuelle Maschine, auf der Entwicklertools installiert sind. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft in Google Cloud.
Mit Google Cloud Shell erhalten Sie Befehlszeilenzugriff auf Ihre Google Cloud-Ressourcen.
-
Klicken Sie in der Cloud Console in der rechten oberen Symbolleiste auf „Cloud Shell öffnen“.

-
Klicken Sie auf Weiter.
Die Bereitstellung und Verbindung mit der Umgebung dauert einen kleinen Moment. Wenn Sie verbunden sind, sind Sie auch bereits authentifiziert und das Projekt ist auf Ihre PROJECT_ID eingestellt. Beispiel:

gcloud ist das Befehlszeilentool für Google Cloud. Das Tool ist in Cloud Shell vorinstalliert und unterstützt die Tab-Vervollständigung.
- Sie können den aktiven Kontonamen mit diesem Befehl auflisten:
gcloud auth list
Ausgabe:
Konten mit Anmeldedaten:
- @.com (aktiv)
Beispielausgabe:
Konten mit Anmeldedaten:
- google1623327_student@qwiklabs.net
- Sie können die Projekt-ID mit diesem Befehl auflisten:
gcloud config list project
Ausgabe:
[core]
Projekt =
Beispielausgabe:
[core]
Projekt = qwiklabs-gcp-44776a13dea667a6
Hinweis:
Die vollständige Dokumentation zu gcloud finden Sie in der Übersicht zur gcloud CLI.
Referenz
Grundlegende Linux-Befehle
Unten finden Sie eine Referenzliste mit einigen grundlegenden Linux-Befehlen, die in der Anleitung oder den Codeblöcken für dieses Lab enthalten sein können.
Befehl --> |
Aktion |
. |
Befehl --> |
Aktion |
mkdir (make directory) |
Neuen Ordner erstellen |
. |
cd (change directory) |
Verzeichnis wechseln |
ls (list) |
Dateien und Ordner im Verzeichnis auflisten |
. |
cat (concatenate) |
Inhalt einer Datei ohne Editor lesen |
apt-get update |
Paketmanager-Bibliothek aktualisieren |
. |
ping |
Signal, um die Erreichbarkeit eines Hosts zu testen |
mv (move) |
Verschiebt eine Datei |
. |
cp (copy) |
Erstellt eine Dateikopie |
pwd (present working directory) |
Gibt Ihren aktuellen Speicherort zurück |
. |
sudo (super user do) |
Gewährt mehr Verwaltungsberechtigungen |
Aufgabe 1: Cloud Run API aktivieren und Shell-Umgebung konfigurieren
- Aktivieren Sie in Cloud Shell die Cloud Run API:
gcloud services enable run.googleapis.com
- Wenn Sie aufgefordert werden, die Verwendung Ihrer Anmeldedaten zu autorisieren, tun Sie dies. Dann sollte Ihnen eine Meldung ähnlich der folgenden angezeigt werden:
Operation "operations/acf.cc11852d-40af-47ad-9d59-477a12847c9e" finished successfully.
Hinweis: Sie können die API auch in der Console im Abschnitt APIs und Dienste aktivieren.
- Legen Sie die Compute-Region fest:
gcloud config set compute/region {{{project_0.default_region | "REGION"}}}
- Erstellen Sie eine LOCATION-Umgebungsvariable:
LOCATION="{{{project_0.default_region | Region}}}"
Aufgabe 2: Beispielanwendung schreiben
In dieser Aufgabe erstellen Sie eine einfache, auf Express basierende Node.js-Anwendung, die auf HTTP-Anfragen reagiert.
- Legen Sie in Cloud Shell ein neues Verzeichnis namens
helloworld
an und wechseln Sie dann dorthin:
mkdir helloworld && cd helloworld
-
Als Nächstes erstellen und bearbeiten Sie Dateien. Verwenden Sie dazu nano
oder den Cloud Shell-Code-Editor. Dazu klicken Sie in Cloud Shell auf die Schaltfläche Editor öffnen.
-
Erstellen Sie die Datei package.json
und fügen Sie ihr Folgendes hinzu:
nano package.json
{
"name": "helloworld",
"description": "Simple hello world sample in Node",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"start": "node index.js"
},
"author": "Google LLC",
"license": "Apache-2.0",
"dependencies": {
"express": "^4.17.1"
}
}
Beachten Sie, dass die obige Datei einen Befehl zum Starten des Skripts und eine Abhängigkeit vom Express-Framework für Webanwendungen enthält.
-
Drücken Sie nacheinander STRG + X, Y und Eingabe, um die Datei package.json
zu speichern.
-
Erstellen Sie als Nächstes im selben Verzeichnis die Datei index.js
und kopieren Sie den folgenden Code hinein:
nano index.js
const express = require('express');
const app = express();
const port = process.env.PORT || 8080;
app.get('/', (req, res) => {
const name = process.env.NAME || 'World';
res.send(`Hello ${name}!`);
});
app.listen(port, () => {
console.log(`helloworld: listening on port ${port}`);
});
Mit diesem Code wird ein einfacher Webserver erstellt, der den von der Umgebungsvariablen PORT
definierten Port überwacht. Die Anwendung ist jetzt fertig und kann containerisiert und dann in Artifact Registry hochgeladen werden.
- Drücken Sie nacheinander STRG + X, Y und Eingabe, um die Datei
index.js
zu speichern.
Hinweis: Für den Einstieg in Cloud Run können Sie auch diverse andere Sprachen verwenden. Anleitungen unter anderem für Go, Python, Java, PHP, Ruby und Shell-Scripts finden Sie unter Kurzanleitungen.
Aufgabe 3: Anwendung containerisieren und in Artifact Registry hochladen
- Erstellen Sie zum Containerisieren der Beispielanwendung in dem Verzeichnis, in dem sich die Quelldateien befinden, eine neue Datei mit dem Namen
Dockerfile
und kopieren Sie den folgenden Inhalt hinein:
nano Dockerfile
# Use the official lightweight Node.js 12 image.
# https://hub.docker.com/_/node
FROM node:12-slim
# Create and change to the app directory.
WORKDIR /usr/src/app
# Copy application dependency manifests to the container image.
# A wildcard is used to ensure copying both package.json AND package-lock.json (when available).
# Copying this first prevents re-running npm install on every code change.
COPY package*.json ./
# Install production dependencies.
# If you add a package-lock.json, speed your build by switching to 'npm ci'.
# RUN npm ci --only=production
RUN npm install --only=production
# Copy local code to the container image.
COPY . ./
# Run the web service on container startup.
CMD [ "npm", "start" ]
-
Drücken Sie nacheinander STRG + X, Y und Eingabe, um die Dockerfile
-Datei zu speichern.
-
Erstellen Sie jetzt das Container-Image mit Cloud Build. Dazu führen Sie den folgenden Befehl in dem Verzeichnis aus, in dem sich die Dockerfile
-Datei befindet. Der Befehl enthält die Umgebungsvariable „$GOOGLE_CLOUD_PROJECT“ mit der Projekt-ID Ihres Labs:
gcloud builds submit --tag gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld
Cloud Build ist ein Dienst zum Ausführen von Builds in Google Cloud. Er führt eine Reihe von Build-Schritten aus, und zwar jeden in einem Docker-Container, um einen Anwendungscontainer oder andere Artefakte zu erstellen und sie alle mit einem Befehl in Artifact Registry zu übertragen.
Bei erfolgreicher Übertragung in Cloud Registry wird eine SUCCESS-Meldung ausgegeben, die den Image-Namen enthält (gcr.io/[PROJECT-ID]/helloworld
). Das Image wird in Artifact Registry gespeichert und kann bei Bedarf wiederverwendet werden.
- Lassen Sie sich mit folgendem Befehl alle Container-Images Ihres aktuellen Projekts anzeigen:
gcloud container images list
- Registrieren Sie
gcloud
als Credential Helper für alle von Google unterstützten Docker-Registries:
gcloud auth configure-docker
Hinweis: Möglicherweise wird Ihnen die Frage Möchten Sie fortfahren (J/N)? angezeigt. Wenn Sie fortfahren möchten, geben Sie J ein.
- Mit dem folgenden
docker
-Standardbefehl können Sie die Anwendung lokal in Cloud Shell ausführen und testen:
docker run -d -p 8080:8080 gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld
- Klicken Sie im Cloud Shell-Fenster auf Webvorschau und wählen Sie Vorschau auf Port 8080 aus.
Es sollte sich jetzt ein Browserfenster öffnen, in dem die Nachricht „Hello World!“ angezeigt wird. Sie können auch einfach curl localhost:8080
verwenden.
Aufgabe 4: In Cloud Run bereitstellen
- Sie können Ihre containerisierte Anwendung mit folgendem Befehl in Cloud Run bereitstellen, wobei Sie ihre Projekt-ID hinzufügen:
gcloud run deploy --image gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld --allow-unauthenticated --region=$LOCATION
Durch das Flag „allow-unauthenticated“ im obigen Befehl wird der Dienst öffentlich zugänglich.
- Bestätigen Sie den
service name
, wenn Sie dazu aufgefordert werden, indem Sie die Eingabetaste drücken.
Hinweis: Möglicherweise wird Ihnen die Frage Möchten Sie diese APIs aktivieren, um fortzufahren (dies dauert einige Minuten) (J/N)? angezeigt. Wenn Sie fortfahren möchten, geben Sie J ein, um die benötigte API zu aktivieren.
Warten Sie dann einige Sekunden, bis die Bereitstellung abgeschlossen ist.
Wenn die Bereitstellung erfolgreich war, wird in der Befehlszeile die Dienst-URL angezeigt:
Service [helloworld] revision [helloworld-00001-xit] has been deployed
and is serving 100 percent of traffic.
Service URL: https://helloworld-h6cp412q3a-uc.a.run.app
Sie können jetzt den bereitgestellten Container aufrufen, indem Sie die Dienst-URL in einem beliebigen Browserfenster öffnen.
Glückwunsch! Sie haben eine in einem Container-Image verpackte Anwendung in Cloud Run bereitgestellt. Cloud Run skaliert das Container-Image automatisch horizontal, damit die empfangenen Anfragen bearbeitet werden können, und skaliert es wieder herunter, wenn der Bedarf sinkt. Sie zahlen in Ihrer Umgebung nur für die CPU-, Arbeitsspeicher- und Netzwerkressourcen, die während der Anfrageverarbeitung verbraucht werden.
In diesem Lab haben Sie die gcloud
-Befehlszeile verwendet. Cloud Run ist auch über die Cloud Console verfügbar.
- Klicken Sie im Navigationsmenü im Abschnitt „Serverlos“ auf Cloud Run. Ihnen sollte jetzt der Dienst
helloworld
angezeigt werden:

Aufgabe 5: Bereinigen
Während für Cloud Run keine Kosten anfallen, wenn der Dienst nicht verwendet wird, wird Ihnen dennoch das Speichern des erstellten Container-Images möglicherweise in Rechnung gestellt.
- Sie können entweder Ihr Google Cloud-Projekt löschen, um Gebühren zu vermeiden, und so die Abrechnung für alle in diesem Projekt verwendeten Ressourcen beenden oder einfach mit dem folgenden Befehl das
helloworld
-Image löschen.
gcloud container images delete gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld
-
Wenn Sie gefragt werden, ob Sie fortfahren möchten, geben Sie J
ein und drücken Sie die Eingabetaste.
-
Führen Sie den folgenden Befehl aus, um den Cloud Run-Dienst zu löschen:
gcloud run services delete helloworld --region={{{project_0.default_region | "REGION"}}}
- Wenn Sie gefragt werden, ob Sie fortfahren möchten, geben Sie
J
ein und drücken Sie die Eingabetaste.
Lab beenden
Wenn Sie das Lab abgeschlossen haben, klicken Sie auf Lab beenden. Google Cloud Skills Boost entfernt daraufhin die von Ihnen genutzten Ressourcen und bereinigt das Konto.
Anschließend erhalten Sie die Möglichkeit, das Lab zu bewerten. Wählen Sie die entsprechende Anzahl von Sternen aus, schreiben Sie einen Kommentar und klicken Sie anschließend auf Senden.
Die Anzahl der Sterne hat folgende Bedeutung:
- 1 Stern = Sehr unzufrieden
- 2 Sterne = Unzufrieden
- 3 Sterne = Neutral
- 4 Sterne = Zufrieden
- 5 Sterne = Sehr zufrieden
Wenn Sie kein Feedback geben möchten, können Sie das Dialogfeld einfach schließen.
Verwenden Sie für Feedback, Vorschläge oder Korrekturen den Tab Support.
Glückwunsch!
Sie haben das Lab abgeschlossen.
Weitere Informationen
Weitere Informationen dazu, wie Sie einen zustandslosen, für Cloud Run geeigneten HTTP-Container aus einer Codequelle erstellen und in Artifact Registry hochladen, finden Sie unter:
© 2021 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.