arrow_back

Wykonywanie podstawowych zadań związanych z infrastrukturą Google Cloud: Challenge Lab

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

Wykonywanie podstawowych zadań związanych z infrastrukturą Google Cloud: Challenge Lab

Lab 1 godz. universal_currency_alt 1 punkt show_chart Wprowadzające
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP315

Moduły Google Cloud do samodzielnego ukończenia

Wstęp

W Challenge Lab (module-wyzwaniu) otrzymasz scenariusz i zestaw zadań. Zamiast instrukcji krok po kroku użyjesz umiejętności zdobytych w poszczególnych modułach kursu, rozwiązując zadania samodzielnie. Automatyczny system oceniania (widoczny na tej stronie) poinformuje Cię, czy zadanie zostało wykonane poprawnie.

W Challenge Lab nie będziemy uczyć Cię nowych pojęć związanych z Google Cloud. Musisz za to poszerzyć nabyte umiejętności, takie jak zmiana domyślnych wartości oraz czytanie i analizowanie komunikatów o błędach, po to, by naprawiać popełnione przez siebie błędy.

Aby zdobyć 100% punktów, musisz ukończyć wszystkie zadania w określonym czasie.

Ten moduł przeznaczony jest dla użytkowników, którzy zapisali się na kurs Perform Foundational Infrastructure Tasks in Google Cloud w ramach Google Cloud Skills Boost. Podejmujesz się wyzwania?

Konfiguracja

Zanim klikniesz przycisk Rozpocznij moduł

Zapoznaj się z tymi instrukcjami. Moduły mają limit czasowy i nie można ich zatrzymać. Gdy klikniesz Rozpocznij moduł, na liczniku wyświetli się informacja o tym, na jak długo udostępniamy Ci zasoby Google Cloud.

W tym praktycznym module możesz spróbować swoich sił w wykonywaniu opisywanych działań w prawdziwym środowisku chmury, a nie w jego symulacji lub wersji demonstracyjnej. Otrzymasz nowe, tymczasowe dane logowania, dzięki którym zalogujesz się i uzyskasz dostęp do Google Cloud na czas trwania modułu.

Do ukończenia modułu potrzebne będą:

  • dostęp do standardowej przeglądarki internetowej (zalecamy korzystanie z przeglądarki Chrome).
Uwaga: uruchom ten moduł w oknie incognito lub przeglądania prywatnego. Dzięki temu unikniesz konfliktu między swoim kontem osobistym a kontem do nauki, co mogłoby spowodować naliczanie oddatkowych opłat na koncie osobistym.
  • Odpowiednia ilość czasu na ukończenie modułu – pamiętaj, że gdy rozpoczniesz, nie możesz go wstrzymać.
Uwaga: jeśli masz już osobiste konto lub projekt w Google Cloud, nie używaj go w tym module, aby uniknąć naliczania opłat na koncie.

Scenariusz

Zaczynasz pracę jako młodszy inżynier ds. chmury w Jooli Inc. Do tej pory Twoje zadania polegały na pomaganiu zespołom w tworzeniu zasobów Google Cloud i zarządzaniu nimi.

Zakładamy, że po szkoleniu dysponujesz umiejętnościami oraz wiedzą potrzebnymi do wykonania tych zadań, dlatego nie będziesz mieć do dyspozycji przewodników krok po kroku.

Twoje wyzwanie

Do Twoich zadań należy pomoc nowemu zespołowi programistów w wykonaniu wstępnej pracy w projekcie dotyczącym przechowywania i porządkowania zdjęć, inaczej nazywanych wspomnieniami. Poproszono Cię o pomoc przy wstępnej konfiguracji środowiska programistycznego aplikacji zespołu zajmującego się wspomnieniami. Postawiono przed Tobą następujące zadania:

  • Utwórz zasobnik do przechowywania zdjęć.
  • Utwórz temat Pub/Sub, który będzie wykorzystywany przez przygotowaną przez Ciebie funkcję w Cloud Functions.
  • Utwórz funkcję w Cloud Functions.
  • Usuń poprzednim inżynierom dostęp do projektu ze wspomnieniami.

W Jooli Inc. obowiązują standardy, które musisz uwzględnić:

  • Twórz wszystkie zasoby dla regionu oraz strefy, chyba że instrukcje będą inne.
  • Używaj środowisk VPC projektu.
  • Stosuj normalne nazewnictwo typu zespół-zasób, np. możesz nazwać instancję kraken-webserver1.
  • Przydzielaj zasoby o ekonomicznych rozmiarach. Projekty są monitorowane, a nadmierne wykorzystanie zasobów spowoduje zakończenie projektu, który z nich korzysta (możliwe, że także Twojego), więc miej się na baczności. Dodatkowa wskazówka, którą postanowił podzielić się zespół monitorujący: korzystaj z e2-micro dla prostych maszyn wirtualnych z systemem Linux, chyba że instrukcja jest inna, i e2-medium dla Windowsa lub innych aplikacji, takich jak węzły Kubernetes.

Każde zadanie zostało szczegółowo opisane poniżej. Powodzenia!

Zadanie 1. Tworzenie zasobnika

Musisz utworzyć zasobnik o nazwie do przechowywania zdjęć. Sprawdź, czy zasób został utworzony w regionie oraz strefie .

Kliknij Sprawdź postępy, aby zobaczyć, jak Ci poszło. Tworzenie zasobnika o nazwie

Zadanie 2. Tworzenie tematu Pub/Sub

Utwórz temat Pub/Sub o nazwie , który sprawi, że funkcja w Cloud Functions będzie wysyłać wiadomości.

Kliknij Sprawdź postępy, aby zobaczyć, jak Ci poszło. Tworzenie tematu Pub/Sub o nazwie

Zadanie 3. Tworzenie funkcji miniatury w Cloud Functions

Utwórz funkcję w Cloud Functions o nazwie , która utworzy miniaturę z obrazu dodanego do zasobnika . Sprawdź, czy ta funkcja używa środowiska drugiej generacji oraz czy zasób został utworzony w regionie i strefie .

  1. Utwórz funkcję w Cloud Functions o nazwie
Uwaga: ta funkcja w Cloud Functions musi być wykonywana za każdym razem, gdy w zasobniku utworzonym w ramach zadania 1 zostaje utworzony obiekt. W trakcie procesu funkcja może poprosić o włączenie interfejsów API. W takim przypadku należy włączyć wszystkie żądane interfejsy API.
  1. Pamiętaj, aby ustawić Punkt wejścia (funkcję do wykonania) na , a Aktywator na Cloud Storage.

  2. Dodaj ten kod do index.js:

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. Dodaj ten kod do package.json:
{ "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" } }

Sprawdź, czy miniatura została utworzona.

Kliknij Sprawdź postępy, aby zobaczyć, jak Ci poszło. Sprawdzanie funkcji w Cloud Functions

Zadanie 4. Test infrastruktury

Do zasobnika musisz przesłać jeden plik graficzny w formacie JPG albo PNG.

  1. Prześlij plik graficzny w formacie PNG lub JPG do zasobnika .
Uwaga: możesz też pobrać obraz https://storage.googleapis.com/cloud-training/gsp315/map.jpg na swoją maszynę i przesłać go do zasobnika.
  1. Po chwili powinien wyświetlić się obraz miniatury (kliknij ODŚWIEŻ w szczegółach zasobnika).

Zadanie 5. Usuwanie poprzedniego inżyniera ds. chmury

W projekcie zobaczysz 2 zdefiniowanych użytkowników:

  • siebie ( z przypisaną rolą właściciela) oraz
  • poprzedniego inżyniera ds. chmury ( z przypisaną rolą wyświetlającego).
  1. Odbierz poprzedniemu inżynierowi ds. chmury dostęp do projektu.

Kliknij Sprawdź postępy, aby zobaczyć, jak Ci poszło. Usuwanie poprzedniego inżyniera ds. chmury

Gratulacje!

Odznaka umiejętności w Google Cloud za kurs Perform Foundational Infrastructure Tasks

Zdobądź kolejną odznakę umiejętności

Ten moduł do samodzielnego ukończenia jest częścią kursu Perform Foundational Infrastructure Tasks in Google Cloud, po ukończeniu którego otrzymasz odznakę umiejętności. Za ukończenie kursu otrzymujesz widoczną powyżej odznakę – stanowi ona potwierdzenie Twojego osiągnięcia. Pochwal się nią w swoim CV i mediach społecznościowych, oznaczając swoje osiągnięcie hashtagiem #GoogleCloudBadge.

Ten kurs jest częścią ścieżek szkoleniowych Google Perform Foundational Infrastructure Tasks in Google Cloud oraz Cloud Architect. Jeśli udało Ci się już ukończyć pozostałe kursy z odznakami umiejętności dostępne w Twojej ścieżce szkoleniowej, sprawdź katalog Google Cloud Skills Boost, gdzie czeka na Ciebie jeszcze ponad 20 takich kursów.

Szkolenia i certyfikaty Google Cloud

…pomogą Ci wykorzystać wszystkie możliwości technologii Google Cloud. Nasze zajęcia obejmują umiejętności techniczne oraz sprawdzone metody, które ułatwią Ci szybką naukę i umożliwią jej kontynuację. Oferujemy szkolenia na poziomach od podstawowego po zaawansowany prowadzone w trybach wirtualnym, na żądanie i na żywo, dzięki czemu możesz dopasować program szkoleń do swojego napiętego harmonogramu. Certyfikaty umożliwią udokumentowanie i potwierdzenie Twoich umiejętności oraz doświadczenia w zakresie technologii Google Cloud.

Ostatnia aktualizacja instrukcji: 19 września 2023 r.

Ostatni test modułu: 19 września 2023 r.

Copyright 2024 Google LLC. Wszelkie prawa zastrzeżone. Google i logo Google są znakami towarowymi Google LLC. Wszelkie inne nazwy firm i produktów mogą być znakami towarowymi odpowiednich podmiotów, z którymi są powiązane.