GSP315

Einführung
In einem Challenge-Lab geht es um ein bestimmtes Szenario mit mehreren Aufgaben. Anders als bei einem normalen Lab erhalten Sie jedoch keine Schritt-für-Schritt-Anleitung, sondern nutzen die in den Labs des jeweiligen Kurses erlernten Fähigkeiten, um die Aufgaben selbst zu lösen. Ihre Lösungen werden automatisch bewertet. Die erzielten Punkte finden Sie rechts oben auf dieser Seite.
In Challenge-Labs werden keine neuen Grundlagen zu Google Cloud vermittelt. Sie sollen dabei Ihr Wissen erweitern und es wird erwartet, dass Sie beispielsweise Standardwerte ändern und Fehlermeldungen lesen und recherchieren, um Ihre eigenen Fehler zu beheben.
Die volle Punktzahl erreichen Sie nur, wenn Sie alle Aufgaben innerhalb der vorgegebenen Zeit lösen.
Dieses Lab wird Teilnehmern empfohlen, die sich für den Kurs Umgebung für die Anwendungsentwicklung in Google Cloud einrichten angemeldet haben. Sind Sie bereit?
Einrichtung
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 Google Cloud-Ressourcen für das Lab verfügbar sind.
In diesem praxisorientierten Lab können Sie die Lab-Aktivitäten in einer echten Cloud-Umgebung 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)
Hinweis: Nutzen Sie den privaten oder Inkognitomodus (empfohlen), um dieses Lab durchzuführen. So wird verhindert, dass es zu Konflikten zwischen Ihrem persönlichen Konto und dem Teilnehmerkonto kommt und zusätzliche Gebühren für Ihr persönliches Konto erhoben werden.
- Zeit für die Durchführung des Labs – denken Sie daran, dass Sie ein begonnenes Lab nicht unterbrechen können.
Hinweis: Verwenden Sie für dieses Lab nur das Teilnehmerkonto. Wenn Sie ein anderes Google Cloud-Konto verwenden, fallen dafür möglicherweise Kosten an.
Das Szenario
Sie haben gerade Ihre neue Stelle als Junior Cloud Engineer bei Jooli Inc. angetreten. Bisher haben Sie Teams beim Erstellen und Verwalten von Google Cloud-Ressourcen unterstützt.
Das Know-how für diese Aufgaben wird vorausgesetzt, Sie erhalten daher keine detaillierten Anleitungen.
Die Aufgabe
Sie werden nun gebeten, einem neu gebildeten Entwicklungsteam bei der anfänglichen Arbeit am Projekt Memories zu helfen, bei dem es um das Speichern und Organisieren von Fotos geht. Sie sollen das Memories-Team bei der Erstkonfiguration der Entwicklungsumgebung einer Anwendung unterstützen.
Dazu sollen Sie folgende Aufgaben ausführen:
- Bucket zum Speichern der Fotos erstellen
- Pub/Sub-Thema erstellen, das eine von Ihnen erstellte Cloud Run-Funktion verwendet.
- Cloud Run-Funktion erstellen
- Zugriff auf das Memories-Projekt für den bisherigen Cloud-Entwickler sperren
Folgende Vorgaben von Jooli Inc. sind zu beachten:
- Alle Ressourcen werden in der Region und Zone erstellt, sofern nicht anders angegeben.
- Es werden die VPCs des Projekts verwendet.
- Die Ressourcenbenennung erfolgt im Format team-resource, eine Instanz könnte beispielsweise kraken-webserver1 heißen.
- Die Ressourcendimensionierung muss kosteneffektiv sein. Die Projekte werden überwacht und ein übermäßiger Ressourcenverbrauch führt zu einem Ende des betreffenden Projekts (und möglicherweise zum Ende Ihrer Beschäftigung). Umsicht ist also angebracht. Dies ist die Anleitung, die das Monitoring-Team zur Verfügung stellt: Sofern nicht anders angegeben soll der Maschinentyp e2-micro für kleine Linux-VMs und der Maschinentyp e2-medium für Windows‑ oder andere Anwendungen wie Kubernetes-Knoten verwendet werden.
Die einzelnen Aufgaben sind nachfolgend genauer beschrieben. Viel Erfolg!
Aufgabe 1: Bucket erstellen
Erstellen Sie einen Bucket mit dem Namen zum Speichern der Fotos.
Die Ressource muss in der Region und der Zone eingerichtet werden.
Klicken Sie auf Fortschritt prüfen.
Bucket mit dem Namen erstellen
Aufgabe 2: Pub/Sub-Thema erstellen
Erstellen Sie ein Pub/Sub-Thema mit dem Namen , über das die Cloud Run-Funktion Nachrichten sendet.
Klicken Sie auf Fortschritt prüfen.
Pub/Sub-Thema mit dem Namen erstellen
Aufgabe 3: Cloud Run-Funktion für Miniaturansichten einrichten
Funktion erstellen
Sie erstellen eine Cloud Run-Funktion zum Generieren von Miniaturansichten für Bilder, die dem Bucket hinzugefügt werden.
Achten Sie darauf, dass die Cloud Run-Funktion die Umgebung für Cloud Run-Funktionen (2. Generation) nutzt.
Die Ressource muss in der Region und der Zone eingerichtet werden.
- Erstellen Sie mit
Node.js 22
eine Cloud Run-Funktion (2. Generation) mit dem Namen .
Hinweis:
Die Cloud Run-Funktion muss immer dann ausgeführt werden, wenn ein Objekt in dem in Aufgabe 1 eingerichteten Bucket erstellt wird.
Während des Vorgangs fordert die Cloud Run-Funktion möglicherweise die Berechtigung für das Aktivieren von APIs oder für die Rollenzuweisung an Dienstkonten an.
Bitte aktivieren Sie alle erforderlichen APIs und gewähren Sie die angeforderten Rollen.
-
Setzen Sie den Einstiegspunkt (auszuführende Funktion) auf und den Trigger auf Cloud Storage
.
-
Fügen Sie den folgenden Code in die Datei index.js
ein:
const functions = require('@google-cloud/functions-framework');
const { Storage } = require('@google-cloud/storage');
const { PubSub } = require('@google-cloud/pubsub');
const sharp = require('sharp');
functions.cloudEvent('{{{ project_0.startup_script.function }}}', async cloudEvent => {
const event = cloudEvent.data;
console.log(`Event: ${JSON.stringify(event)}`);
console.log(`Hello ${event.bucket}`);
const fileName = event.name;
const bucketName = event.bucket;
const size = "64x64";
const bucket = new Storage().bucket(bucketName);
const topicName = "{{{ project_0.startup_script.topic }}}";
const pubsub = new PubSub();
if (fileName.search("64x64_thumbnail") === -1) {
// doesn't have a thumbnail, get the filename extension
const filename_split = fileName.split('.');
const filename_ext = filename_split[filename_split.length - 1].toLowerCase();
const filename_without_ext = fileName.substring(0, fileName.length - filename_ext.length - 1); // fix sub string to remove the dot
if (filename_ext === 'png' || filename_ext === 'jpg' || filename_ext === 'jpeg') {
// only support png and jpg at this point
console.log(`Processing Original: gs://${bucketName}/${fileName}`);
const gcsObject = bucket.file(fileName);
const newFilename = `${filename_without_ext}_64x64_thumbnail.${filename_ext}`;
const gcsNewObject = bucket.file(newFilename);
try {
const [buffer] = await gcsObject.download();
const resizedBuffer = await sharp(buffer)
.resize(64, 64, {
fit: 'inside',
withoutEnlargement: true,
})
.toFormat(filename_ext)
.toBuffer();
await gcsNewObject.save(resizedBuffer, {
metadata: {
contentType: `image/${filename_ext}`,
},
});
console.log(`Success: ${fileName} → ${newFilename}`);
await pubsub
.topic(topicName)
.publishMessage({ data: Buffer.from(newFilename) });
console.log(`Message published to ${topicName}`);
} catch (err) {
console.error(`Error: ${err}`);
}
} else {
console.log(`gs://${bucketName}/${fileName} is not an image I can handle`);
}
} else {
console.log(`gs://${bucketName}/${fileName} already has a thumbnail`);
}
});
- Fügen Sie den folgenden Code in die Datei
package.json
ein:
{
"name": "thumbnails",
"version": "1.0.0",
"description": "Create Thumbnail of uploaded image",
"scripts": {
"start": "node index.js"
},
"dependencies": {
"@google-cloud/functions-framework": "^3.0.0",
"@google-cloud/pubsub": "^2.0.0",
"@google-cloud/storage": "^6.11.0",
"sharp": "^0.32.1"
},
"devDependencies": {},
"engines": {
"node": ">=4.3.2"
}
}
Hinweis: Wenn Sie den Fehler „Berechtigung verweigert“ erhalten, laut dem es einige Minuten dauern kann, bis alle erforderlichen Berechtigungen an den Dienst-Agenten weitergegeben werden, warten Sie einige Minuten und versuchen Sie es noch einmal. Die entsprechenden Rollen (Eventarc Service Agent, Eventarc Event Receiver, Service Account Token Creator und Pub/Sub Publisher) müssen dabei den richtigen Dienstkonten zugewiesen sein.
Funktion testen
- Laden Sie ein beliebiges Bild im PNG- oder JPG-Format in den Bucket hoch.
Hinweis: Alternativ können Sie auch dieses Bild auf Ihren Computer herunterladen: https://storage.googleapis.com/cloud-training/gsp315/map.jpg
.
Laden Sie es anschließend in den Bucket hoch.
Daraufhin wird ein Miniaturbild angezeigt. Klicken Sie auf der Seite „Bucket-Details“ auf AKTUALISIEREN.
Nachdem Sie die Bilddatei hochgeladen haben, können Sie unten auf „Fortschritt prüfen“ klicken. Sie müssen nicht warten, bis das Miniaturbild fertig erstellt ist.
Optional: Wenn die Funktion erfolgreich bereitgestellt wurde und das Miniaturbild nicht im Bucket angezeigt wird, können Sie prüfen, ob auf dem Tab Trigger die Triggerinformationen angezeigt werden, die Sie zuvor für die Funktion angegeben haben. Falls Sie zuvor Fehlermeldungen erhalten haben, wurden diese Informationen möglicherweise nicht richtig gespeichert.
Wenn der Cloud Storage-Trigger auf dem Tab Trigger der Funktion nicht angezeigt wird, können Sie ihn neu erstellen (siehe die Dokumentationsseite Trigger mit Ereignissen) und dann noch einmal eine neue Datei hochladen, um den Test zu wiederholen. Aktualisieren Sie die Seite nach dem Hinzufügen der neuen Datei.
Klicken Sie auf Fortschritt prüfen.
Cloud Run-Funktion prüfen
Aufgabe 4: Zugriff für bisherigen Cloud-Entwickler sperren
In dem Projekt sind zwei Nutzer festgelegt.
- Ihr eigenes Konto ( mit der Rolle „Owner“).
- Das Konto des bisherigen Cloud-Entwicklers ( mit der Rolle „Viewer“).
- Sperren Sie den Zugriff auf das Projekt für den bisherigen Cloud-Entwickler.
Klicken Sie auf Fortschritt prüfen.
Zugriff für bisherigen Cloud-Entwickler sperren
Das wars! Sie haben das Lab erfolgreich abgeschlossen.

Nächste Schritte / Weitere Informationen
Dieser Kurs ist Teil der Google-Lernpfade Grundlegende Infrastruktur-Aufgaben in Google Cloud ausführen und Cloud Architect. Wenn Sie die anderen Kurse Ihres Lernpfads bereits absolviert haben, finden Sie im Google Cloud Skills Boost-Katalog weitere Kurse, für die Sie sich anmelden können.
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 8. März 2025 aktualisiert
Lab zuletzt am 8. März 2025 getestet
© 2025 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.