arrow_back

Konfigurowanie środowiska programistycznego w Google Cloud: Challenge Lab

Zyskaj dostęp do ponad 700 modułów i kursów

Konfigurowanie środowiska programistycznego w Google Cloud: Challenge Lab

Moduł 1 godz. universal_currency_alt 1 punkt show_chart Wprowadzające
info Ten moduł może zawierać narzędzia AI, które ułatwią Ci naukę.
Zyskaj dostęp do ponad 700 modułów i kursów

GSP315

Logo modułów do samodzielnego ukończenia poświęconych Google Cloud

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 szkolenia, 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 zapisanych na szkolenie Konfigurowanie środowiska programistycznego w Google Cloud, które pozwala zdobyć odznakę umiejętności. 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 (zalecane) lub przeglądania prywatnego. Dzięki temu unikniesz konfliktu między swoim kontem osobistym a kontem do nauki, co mogłoby spowodować naliczanie dodatkowych opłat na koncie osobistym.
  • Odpowiednia ilość czasu na ukończenie modułu – pamiętaj, że gdy rozpoczniesz, nie możesz go wstrzymać.
Uwaga: w tym module używaj tylko konta do nauki. Jeśli użyjesz innego konta Google Cloud, mogą na nim zostać naliczone opłaty.

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 szczegółowych przewodników.

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.

Otrzymujesz listę zadań do wykonania:

  • Utwórz zasobnik do przechowywania zdjęć.
  • Utwórz temat Pub/Sub, który będzie wykorzystywany przez przygotowaną przez Ciebie funkcję Cloud Run.
  • Utwórz funkcję Cloud Run.
  • 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 Windows lub innych aplikacji, takich jak węzły Kubernetes.

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

Zadanie 1. Utworzenie 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. Utworzenie zasobnika o nazwie

Zadanie 2. Utworzenie tematu Pub/Sub

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

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

Zadanie 3. Przygotowanie funkcji Cloud Run do tworzenia miniatury

Tworzenie funkcji

Utwórz funkcję Cloud Run o nazwie , która utworzy miniaturę z obrazu dodanego do zasobnika .

Sprawdź, czy funkcja Cloud Run używa środowiska funkcji Cloud Run (2 generacji). Sprawdź, czy zasób został utworzony w regionie oraz strefie .

  1. Utwórz funkcję Cloud Run (2 generacji) o nazwie przy użyciu Node.js 22.
Uwaga: ta funkcja Cloud Run musi być wykonywana za każdym razem, gdy w zasobniku utworzonym w ramach zadania 1 zostaje utworzony obiekt. W trakcie procesu funkcja Cloud Run może poprosić o włączenie interfejsów API lub o przypisanie ról kontom usługi. W takim przypadku należy włączyć wszystkie żądane interfejsy API i przypisać żądane role.
  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 { 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) { // brak miniatury, pobierz rozszerzenie pliku 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); // napraw ciąg znaków, aby usunąć kropkę if (filename_ext === 'png' || filename_ext === 'jpg' || filename_ext === 'jpeg') { // w tym momencie obsługiwane są tylko png i jpg 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`); } });
  1. Dodaj ten kod do package.json:
{ "name": "thumbnails", "version": "1.0.0", "description": "Tworzenie miniatury przesłanego obrazu", "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" } } Uwaga: jeśli pojawi się błąd „Odmowa dostępu” z informacją, że rozpowszechnienie wszystkich wymaganych uprawnień w agencie usługi może zająć kilka minut, poczekaj parę chwil i spróbuj ponownie, Sprawdź, czy odpowiednie role (Agent usługi Eventarc (Eventarc Service Agent), Odbiorca zdarzeń Eventarc (Eventarc Event Receiver,), Twórca tokenów konta usługi (Service Account Token Creator) i Publikujący w Pub/Sub (Pub/Sub Publisher)) są przypisane do prawidłowych kont usługi.

Testowanie funkcji

  • Prześlij wybrany plik graficzny w formacie PNG lub JPG do zasobnika .
Uwaga: możesz też najpierw pobrać obraz https://storage.googleapis.com/cloud-training/gsp315/map.jpg na swoją maszynę, a potem przesłać go do zasobnika.

Po chwili powinien wyświetlić się obraz miniatury (w szczegółach zasobnika kliknij ODŚWIEŻ).

Po przesłaniu pliku graficznego możesz kliknąć poniżej, aby sprawdzić postęp. Nie musisz czekać na utworzenie miniatury.

Opcjonalnie: jeśli funkcja została wdrożona, ale nie widzisz miniatury w zasobniku, sprawdź, czy na karcie Aktywatory są widoczne informacje o aktywatorze podane wcześniej dla funkcji. Jeśli wcześniej wystąpiły błędy, te informacje mogły nie zostać zapisane prawidłowo. Jeśli na karcie Aktywatory funkcji nie widzisz aktywatora Cloud Storage, możesz go utworzyć ponownie (patrz strona dokumentacji o tworzeniu aktywatora dla usług), a potem jeszcze raz przesłać nowy plik, aby powtórzyć test (po dodaniu nowego pliku odśwież stronę).

Kliknij Sprawdź postępy, aby zobaczyć, jak Ci poszło. Sprawdzenie funkcji Cloud Run

Zadanie 4. Usunięcie poprzedniego inżyniera ds. chmury

W projekcie zobaczysz 2 zdefiniowanych użytkowników:

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

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

Gratulacje!

Konfigurowanie środowiska programistycznego w Google Cloud

Kolejne kroki / Więcej informacji

Ta odznaka umiejętności jest częścią ścieżek szkoleniowych Google Podstawowe działania związane z infrastrukturą w Google Cloud oraz Cloud Architect. Jeśli udało Ci się już zdobyć pozostałe odznaki umiejętności dostępne w Twojej ścieżce szkoleniowej, przejrzyj katalog Google Cloud Skills Boost, w którym czeka na Ciebie więcej takich odznak.

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: 8 marca 2025 r.

Ostatni test modułu: 8 marca 2025 r.

Copyright 2025 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.

Zanim zaczniesz

  1. Moduły tworzą projekt Google Cloud i zasoby na określony czas.
  2. Moduły mają ograniczenie czasowe i nie mają funkcji wstrzymywania. Jeśli zakończysz moduł, musisz go zacząć od początku.
  3. Aby rozpocząć, w lewym górnym rogu ekranu kliknij Rozpocznij moduł.

Użyj przeglądania prywatnego

  1. Skopiuj podaną nazwę użytkownika i hasło do modułu.
  2. Kliknij Otwórz konsolę w trybie prywatnym.

Zaloguj się w konsoli

  1. Zaloguj się z użyciem danych logowania do modułu. Użycie innych danych logowania może spowodować błędy lub naliczanie opłat.
  2. Zaakceptuj warunki i pomiń stronę zasobów przywracania.
  3. Nie klikaj Zakończ moduł, chyba że właśnie został przez Ciebie zakończony lub chcesz go uruchomić ponownie, ponieważ spowoduje to usunięcie wyników i projektu.

Ta treść jest obecnie niedostępna

Kiedy dostępność się zmieni, wyślemy Ci e-maila z powiadomieniem

Świetnie

Kiedy dostępność się zmieni, skontaktujemy się z Tobą e-mailem

Jeden moduł, a potem drugi

Potwierdź, aby zakończyć wszystkie istniejące moduły i rozpocząć ten

Aby uruchomić moduł, użyj przeglądania prywatnego

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 dodatkowych opłat na koncie osobistym.