arrow_back

Challenge-Lab: „Set Up an App Dev Environment on Google Cloud“

Anmelden Teilnehmen
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Challenge-Lab: „Set Up an App Dev Environment on Google Cloud“

Lab 1 Stunde universal_currency_alt 1 Guthabenpunkt show_chart Einsteiger
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP315

Logo: Google Cloud-Labs zum selbstbestimmten Lernen

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 für das Skill-Logo Set Up an App Dev Environment on Google Cloud 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 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 Functions-Funktion verwendet wird
  • Cloud Functions-Funktion einrichten
  • 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 Functions-Funktion zum Senden von Nachrichten.

Klicken Sie auf Fortschritt prüfen. Pub/Sub-Thema mit dem Namen erstellen

Aufgabe 3: Cloud Functions-Funktion für Miniaturansichten einrichten

Sie erstellen eine Cloud Functions-Funktion , die eine Miniaturansicht von einem Bild erstellt, das dem Bucket hinzugefügt wurde. Achten Sie darauf, dass die Cloud Functions-Funktion die Umgebung der zweiten Generation verwendet. Die Ressource muss in der Region und der Zone eingerichtet werden.

  1. Erstellen Sie eine Cloud Functions-Funktion mit dem Namen .
Hinweis: Die Cloud Functions-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 Functions-Funktion möglicherweise die Berechtigung zur Aktivierung von APIs an. Bitte aktivieren Sie entsprechend alle erforderlichen APIs.
  1. Setzen Sie den Einstiegspunkt (auszuführende Funktion) auf und den Trigger auf Cloud Storage.

  2. 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`); } });
  1. 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": "^5.0.0", "fast-crc32c": "1.0.4", "imagemagick-stream": "4.1.1" }, "devDependencies": {}, "engines": { "node": ">=4.3.2" } }

Prüfen Sie, ob die Miniaturansicht erfolgreich erstellt wurde.

Klicken Sie auf Fortschritt prüfen. Cloud Functions-Funktion bestätigen

Aufgabe 4: Infrastruktur testen

Sie müssen ein Bild im JPG- oder PNG-Format in den Bucket hochladen.

  1. 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.
  1. Kurz darauf sehen Sie ein Miniaturbild. Klicken Sie in den Bucket-Details auf AKTUALISIEREN.

Aufgabe 5: Zugriff für bisherigen Cloud-Entwickler sperren

Sie werden sehen, dass in dem Projekt zwei Nutzer festgelegt sind.

  • Ihr eigenes Konto ( mit der Rolle „Owner“).
  • Das Konto des bisherigen Cloud-Entwicklers ( mit der Rolle „Viewer“).
  1. 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

Glückwunsch!

Set Up an App Dev Environment on Google Cloud

Nächste Schritte / Weitere Informationen

Dieser Kurs ist Teil des Google-Lernpfads in Perform Foundational Infrastructure Tasks in Google Cloud und Cloud Architect. Wenn Sie die anderen Kurse zum Erwerbs eines Skill-Logos in Ihrem Lernpfad bereits absolviert haben, finden Sie im Google Cloud Skills Boost-Katalog weitere Skill-Logos, 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 2. April 2024 aktualisiert

Lab zuletzt am 19. September 2023 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.