Quick tip: Review the prerequisites before you run the lab
Use an Incognito or private browser window to run this lab. This prevents any conflicts between your personal account and the student account, which may cause extra charges incurred to your personal account.
Testen und teilen Sie Ihr Wissen mit unserer Community.
done
Sie erhalten Zugriff auf über 700 praxisorientierte Labs, Skill-Logos und Kurse
Umgebung für die Anwendungsentwicklung in Google Cloud einrichten: Challenge-Lab
Testen und teilen Sie Ihr Wissen mit unserer Community.
done
Sie erhalten Zugriff auf über 700 praxisorientierte Labs, Skill-Logos und Kurse
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.
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)
Hinweis: Nutzen Sie den privaten oder Inkognitomodus, 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: Wenn Sie über ein persönliches Google Cloud-Konto oder -Projekt verfügen, verwenden Sie es nicht für dieses Lab. So werden zusätzliche Kosten für Ihr Konto vermieden.
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 von einer von Ihnen eingerichteten Cloud Run-Funktion verwendet wird
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
Sie müssen einen Bucket mit dem Namen zum Speichern der Fotos erstellen.
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 für die Cloud Run-Funktion zum Senden von Nachrichten.
Klicken Sie auf Fortschritt prüfen.
Pub/Sub-Thema mit dem Namen erstellen
Aufgabe 3: Cloud Run-Funktion für Miniaturansichten einrichten
Sie erstellen eine Cloud Run-Funktion , die eine Miniaturansicht eines Bildes erstellt, das dem Bucket hinzugefügt wurde.
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.
Cloud Run-Funktion mit dem Namen erstellen
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 zur Aktivierung von APIs an.
Bitte aktivieren Sie entsprechend alle erforderlichen APIs.
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 crc32 = require("fast-crc32c");
const { Storage } = require('@google-cloud/storage');
const gcs = new Storage();
const { PubSub } = require('@google-cloud/pubsub');
const imagemagick = require("imagemagick-stream");
functions.cloudEvent('{{{ project_0.startup_script.function }}}', cloudEvent => {
const event = cloudEvent.data;
console.log(`Event: ${event}`);
console.log(`Hello ${event.bucket}`);
const fileName = event.name;
const bucketName = event.bucket;
const size = "64x64"
const bucket = gcs.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
var filename_split = fileName.split('.');
var filename_ext = filename_split[filename_split.length - 1];
var filename_without_ext = fileName.substring(0, fileName.length - filename_ext.length );
if (filename_ext.toLowerCase() == 'png' || filename_ext.toLowerCase() == 'jpg'){
// only support png and jpg at this point
console.log(`Processing Original: gs://${bucketName}/${fileName}`);
const gcsObject = bucket.file(fileName);
let newFilename = filename_without_ext + size + '_thumbnail.' + filename_ext;
let gcsNewObject = bucket.file(newFilename);
let srcStream = gcsObject.createReadStream();
let dstStream = gcsNewObject.createWriteStream();
let resize = imagemagick().resize(size).quality(90);
srcStream.pipe(resize).pipe(dstStream);
return new Promise((resolve, reject) => {
dstStream
.on("error", (err) => {
console.log(`Error: ${err}`);
reject(err);
})
.on("finish", () => {
console.log(`Success: ${fileName} → ${newFilename}`);
// set the content-type
gcsNewObject.setMetadata(
{
contentType: 'image/'+ filename_ext.toLowerCase()
}, function(err, apiResponse) {});
pubsub
.topic(topicName)
.publisher()
.publish(Buffer.from(newFilename))
.then(messageId => {
console.log(`Message ${messageId} published.`);
})
.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:
Prüfen Sie, ob die Miniaturansicht erfolgreich erstellt wurde.
Hinweis: Wenn Sie den Fehler „Berechtigung verweigert“ erhalten, laut dem es einige Minuten dauern kann, bis alle erforderlichen Berechtigungen an den Dienst-Agent weitergegeben werden, warten Sie einige Minuten und versuchen Sie es noch einmal. Die relevanten Rollen (Eventarc Service Agent, Eventarc Event Receiver, Service Account Token Creator, and Pub/Sub Publisher) müssen dabei den richtigen Dienstkonten zugewiesen sein.
Klicken Sie auf Fortschritt prüfen.
Prüfen Sie die Cloud Run-Funktion.
Aufgabe 4: Infrastruktur testen
Sie müssen ein Bild im JPG- oder PNG-Format in den Bucket hochladen.
Laden Sie ein Bild im JPG- oder PNG-Format in den Bucket hoch.
Hinweis: Alternativ können Sie auch dieses Bild https://storage.googleapis.com/cloud-training/gsp315/map.jpg auf Ihren Computer herunterladen.
Laden Sie es anschließend in den Bucket hoch.
Kurz darauf sehen Sie ein Miniaturbild. Klicken Sie in den Bucket-Details auf AKTUALISIEREN.
Aufgabe 5: 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.
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 aktualisiert am 10. September 2024
Labs create a Google Cloud project and resources for a fixed time
Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
On the top left of your screen, click Start lab to begin
Use private browsing
Copy the provided Username and Password for the lab
Click Open console in private mode
Sign in to the Console
Sign in using your lab credentials. Using other credentials might cause errors or incur charges.
Accept the terms, and skip the recovery resource page
Don't click End lab unless you've finished the lab or want to restart it, as it will clear your work and remove the project
Diese Inhalte sind derzeit nicht verfügbar
Bei Verfügbarkeit des Labs benachrichtigen wir Sie per E-Mail
Sehr gut!
Bei Verfügbarkeit kontaktieren wir Sie per E-Mail
One lab at a time
Confirm to end all existing labs and start this one
Use private browsing to run the lab
Use an Incognito or private browser window to run this lab. This
prevents any conflicts between your personal account and the Student
account, which may cause extra charges incurred to your personal account.
In diesem Challenge-Lab wird getestet, was Sie in dem Kurs „Grundlegende Infrastruktur-Aufgaben in Google Cloud ausführen“ gelernt haben. Sie sollten mit dem Inhalt der Aufgabenreihe vertraut sein, bevor Sie mit diesem Lab beginnen.