1. Przegląd
Do interfejsu Vertex AI API można uzyskać dostęp przez internet, ale w firmie możesz chcieć korzystać z niego prywatnie, bez połączenia z internetem. W tym module najpierw uzyskasz dostęp do modeli Anthropic Claude Opus 4.5 i Gemini 3 Pro w Vertex za pomocą pakietu Python SDK działającego na instancji maszyny wirtualnej przez publiczny internet.
Następnie utworzysz punkt końcowy usługi Private Service Connect dla Googleapis i zmienisz przepływ ruchu, aby używać prywatnego punktu końcowego do łączenia się z interfejsem Vertex API.
Przykładowy kod w Pythonie przyjmie pytania wejściowe, przekaże je do Claude Opus, aby wygenerować odpowiedź, a następnie przekaże wynik do Gemini Pro 3, aby utworzyć podsumowanie tekstu i wygenerować obraz.
W tym module utworzysz ten wzorzec.
Rysunek 1.

2. Cele
Z tego modułu dowiesz się, jak:
- Konfigurowanie instancji maszyny wirtualnej do korzystania z pakietu Python SDK
- Włączanie karty modelu Anthropic w Vertex AI
- Połącz się z Anthropic Claude Opus 4.5 i Gemini 3 Pro za pomocą skryptu w Pythonie
- Konfigurowanie punktu końcowego PSC do łączenia się z Googleapis
- Konfigurowanie ręcznych wpisów DNS
- Weryfikowanie ścieżki połączenia z Googleais
- Uruchom skrypt w Pythonie, aby wysłać zapytanie do modeli
Konfiguracja modułu
Samodzielne konfigurowanie środowiska
- Zaloguj się w konsoli Google Cloud i utwórz nowy projekt lub użyj istniejącego. Jeśli nie masz jeszcze konta Gmail lub Google Workspace, musisz je utworzyć.



- Nazwa projektu to wyświetlana nazwa uczestników tego projektu. Jest to ciąg znaków, który nie jest używany przez interfejsy API Google. Zawsze możesz ją zaktualizować.
- Identyfikator projektu jest unikalny we wszystkich projektach Google Cloud i nie można go zmienić po ustawieniu. Konsola Cloud automatycznie generuje unikalny ciąg znaków. Zwykle nie musisz się nim przejmować. W większości ćwiczeń z programowania musisz odwoływać się do identyfikatora projektu (zwykle oznaczanego jako
PROJECT_ID). Jeśli wygenerowany identyfikator Ci się nie podoba, możesz wygenerować inny losowy identyfikator. Możesz też spróbować własnej nazwy i sprawdzić, czy jest dostępna. Po tym kroku nie można go zmienić i pozostaje on taki przez cały czas trwania projektu. - Warto wiedzieć, że istnieje też trzecia wartość, numer projektu, której używają niektóre interfejsy API. Więcej informacji o tych 3 wartościach znajdziesz w dokumentacji.
- Następnie musisz włączyć płatności w konsoli Cloud, aby korzystać z zasobów i interfejsów API Google Cloud. Wykonanie tego laboratorium nie będzie kosztować dużo, a może nawet nic. Aby wyłączyć zasoby i uniknąć naliczania opłat po zakończeniu tego samouczka, możesz usunąć utworzone zasoby lub projekt. Nowi użytkownicy Google Cloud mogą skorzystać z programu bezpłatnego okresu próbnego o wartości 300 USD.
Uruchamianie Cloud Shell
Google Cloud można obsługiwać zdalnie z laptopa, ale w tym module praktycznym będziesz używać Google Cloud Shell, czyli środowiska wiersza poleceń działającego w chmurze.
W konsoli Google Cloud kliknij ikonę Cloud Shell na pasku narzędzi w prawym górnym rogu:

Udostępnienie środowiska i połączenie się z nim może zająć tylko kilka chwil. Po zakończeniu powinny pojawić się dane wyjściowe podobne do tych:

Ta maszyna wirtualna zawiera wszystkie potrzebne narzędzia dla programistów. Zawiera stały katalog domowy o pojemności 5 GB i działa w Google Cloud, co znacznie zwiększa wydajność sieci i uwierzytelniania. Wszystkie zadania w tym laboratorium możesz wykonać w przeglądarce. Nie musisz niczego instalować.
3. Konfigurowanie środowiska
Utworzymy niestandardową sieć VPC z regułami zapory sieciowej. Jeśli masz już sieć VPC i projekt, możesz pominąć tę część.
Otwórz Cloud Shell w prawym górnym rogu konsoli. Skonfiguruj je w ten sposób: 
- Włącz interfejsy API, których będziemy używać w tym module.
gcloud services enable dns.googleapis.com
gcloud services enable aiplatform.googleapis.com
gcloud services enable servicedirectory.googleapis.com
- Ustaw zmienne. Te zmienne to identyfikator projektu i identyfikator sieci niestandardowej sieci VPC (sieć VPC utworzysz w kroku 4).
projectid=$(gcloud config get-value project)
networkid=anthropic-net
echo $projectid
echo $networkid
clear
- Teraz utwórz niestandardową sieć VPC o nazwie anthropic-net.
gcloud compute networks create $networkid \
--project=$projectid \
--subnet-mode=custom \
--mtu=1460 \
--bgp-routing-mode=global
- Utwórz podsieć vm1-subnet w nowym środowisku VPC.
gcloud compute networks subnets create vm-subnet \
--project=$projectid --range=10.0.88.0/24 \
--stack-type=IPV4_ONLY --network=$networkid \
--region=us-east1
- Dodawanie do sieci VPC reguł zapory sieciowej dla protokołów ICMP, SSH i HTTP
gcloud compute firewall-rules create $networkid-allow-icmp --project=$projectid \
--network=$networkid \
--description="Allows ICMP connections from any source to any instance on the network." \
--direction=INGRESS \
--priority=65534 \
--source-ranges=0.0.0.0/0 \
--action=ALLOW \
--rules=icmp
gcloud compute firewall-rules create $networkid-allow-ssh \
--project=$projectid \
--network=$networkid \
--description="Allows TCP connections from any source to any instance on the network using port 22." \
--direction=INGRESS --priority=65534 \
--source-ranges=0.0.0.0/0 --action=ALLOW \
--rules=tcp:22
gcloud compute firewall-rules create $networkid-allow-web \
--project=$projectid \
--network=$networkid \
--description="Allows TCP connections on port 8080." \
--direction=INGRESS --priority=1000 \
--source-ranges=0.0.0.0/0 --action=ALLOW \
--rules=tcp:8080
4. Włączanie Anthropic w bazie modeli Vertex
Musimy przyznać wychodzący dostęp zewnętrzny do internetu, więc utwórzmy i dołączmy bramę Cloud NAT.
- Otwórz panel Vertex AI i wybierz Bazę modeli.
- Wyszukaj Anthropic i wybierz Claude Opus 4.5.
3. Kliknij Włącz. Musisz podać kilka informacji. Wypełnij formularz i kliknij Dalej. Na ostatniej stronie kliknij Zgadzam się, aby włączyć Claude 4.5 Opus.

5. Tworzenie bramy NAT i maszyn wirtualnych
Musimy przyznać wychodzący dostęp zewnętrzny do internetu, więc utwórzmy i dołączmy bramę Cloud NAT.
W Cloud Shell użyj tych poleceń:
- Utwórz Cloud NAT.
gcloud compute routers create anthro-out-nat \
--network $networkid \
--region us-east1
- Utwórz bramę Cloud NAT.
gcloud compute routers nats create anthro-out-nat-gw \
--router-region us-east1 \
--router anthro-out-nat \
--nat-all-subnet-ip-ranges \
--auto-allocate-nat-external-ips
Teraz utwórzmy 1 maszynę wirtualną, aby uzyskać dostęp do Anthropic w Vertex AI za pomocą pakietu Python SDK.
Utworzymy maszynę wirtualną do testowania z zainstalowanymi tymi pakietami:
- W tej samej sesji Cloud Shell utwórz instancję anthro-vm za pomocą tego polecenia.
gcloud compute instances create anthro-vm \
--project=$projectid \
--zone=us-east1-b \
--network-interface=stack-type=IPV4_ONLY,subnet=vm-subnet,no-address,network=$networkid \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install python3 python3-dev python3-venv -y
sudo apt-get install tcpdump dnsutils -y
sudo -i
sudo mkdir -p ~/py-anthro-env
cd ~/py-anthro-env
python3 -m venv env
source env/bin/activate
pip install -U ipython google-genai 'anthropic[vertex]'"
Powinna być widoczna utworzona maszyna wirtualna bez publicznych adresów IP. Teraz skonfigurujmy
6. Konfigurowanie i testowanie maszyny wirtualnej
- W Google Cloud Shell połącz się przez SSH z nową maszyną wirtualną o nazwie anthro-vm.
gcloud compute ssh anthro-vm \
--project=$projectid \
--zone=us-east1-b \
--tunnel-through-iap \
-- -L 8080:localhost:8080
- Po połączeniu się z maszyną wirtualną anthro-vm przez SSH aktywuj środowisko venv:
sudo -i -- bash -c 'cd py-anthro-env && source env/bin/activate && exec bash'
- Teraz uwierzytelnijmy to, aby później przeprowadzić testy. Uruchom w maszynie wirtualnej to polecenie i po wyświetleniu monitu naciśnij y.
gcloud auth application-default login
- Następnie skopiuj adres URL zaczynający się od https://, otwórz nową kartę w oknie przeglądarki laboratorium i wklej adres URL. Postępuj zgodnie z wyświetlanymi instrukcjami.
- Gdy zobaczysz poniższy tekst, skopiuj go, wróć do sesji maszyny wirtualnej anthro-vm i w sekcji Enter authorization code: (Wpisz kod autoryzacji:) wklej skopiowany kod i naciśnij Enter, aby się uwierzytelnić.

- Teraz przeprowadźmy szybki test, aby sprawdzić, czy możemy połączyć się z interfejsem Vertex Gemini API.
dig *-aiplatform.googleapis.com
- Powinien pojawić się ekran podobny do tego (adresy będą inne). Pamiętaj, że ścieżka prowadzi przez publiczne adresy IP, ponieważ interfejs API jest publiczny.
; <<>> DiG 9.18.39-0ubuntu0.24.04.2-Ubuntu <<>> *-aiplatform.googleapis.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3728 ;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;*-aiplatform.googleapis.com. IN A ;; ANSWER SECTION: *-aiplatform.googleapis.com. 300 IN A 172.217.204.95 *-aiplatform.googleapis.com. 300 IN A 172.217.203.95 *-aiplatform.googleapis.com. 300 IN A 173.194.215.95 *-aiplatform.googleapis.com. 300 IN A 142.250.98.95 *-aiplatform.googleapis.com. 300 IN A 173.194.217.95 *-aiplatform.googleapis.com. 300 IN A 142.251.107.95 *-aiplatform.googleapis.com. 300 IN A 74.125.196.95
- Teraz użyjemy Pythona. Wpisz
ipython, aby aktywować interfejs ipython.
ipython

- Teraz skopiuj i wklej poniższy tekst. W tym przypadku Claude Opus 4.5 odpowiada na pytanie: „Jakie są kluczowe etapy tworzenia AI opartej na agentach?”. Następnie pobiera wynik i przekazuje go do Gemini 3 Pro, który tworzy podsumowanie oraz generuje obraz i zapisuje go na maszynie wirtualnej.
import os
import sys
import google.auth
from pathlib import Path
from google import genai
from google.genai import types
from anthropic import AnthropicVertex
# 1. Setup & Auth
print("--- Authenticating ---")
creds, project_id = google.auth.default()
LOCATION = "global"
# 2. Initialize Clients
print(f"--- Initializing Clients for Project: {project_id} ---")
google_client = genai.Client(vertexai=True, location=LOCATION, project=project_id)
claude_client = AnthropicVertex(region=LOCATION, project_id=project_id)
# 3. Define the Question
question = "What are the key steps to building Agentic AI?"
print(f"\n--- Asking Claude: {question} ---")
# 4. Get Claude's Research
msg = claude_client.messages.create(
model="claude-opus-4-5@20251101",
max_tokens=2048,
messages=[{"role": "user", "content": question}]
)
claude_text = msg.content[0].text
print(f"✓ Claude Answered ({len(claude_text)} chars)")
# 5. Send to Gemini 3 for Image & Summary
print("\n--- Sending to Gemini 3 (Image + Text) ---")
gemini_prompt = f"""
I am providing you with a technical explanation generated by Claude Opus 4.5.
1. READ the text below.
2. GENERATE a concise, bulleted executive summary.
3. CREATE a high-quality, futuristic illustration for a tech blog header (16:9).
--- INPUT TEXT ---
{claude_text}
"""
response = google_client.models.generate_content(
model="gemini-3-pro-image-preview",
contents=gemini_prompt,
config=types.GenerateContentConfig(
response_modalities=['TEXT', 'IMAGE'],
temperature=0.7
)
)
# 6. Save and Display Results
print("\n--- Results ---")
for part in response.parts:
if part.text:
print(f"\n[SUMMARY]:\n{part.text.strip()[:500]}...\n(Summary truncated for brevity)")
elif image := part.as_image():
filename = "gemini_agentic_ai.png"
image.save(filename)
print(f"\n✓ IMAGE SAVED to: {os.path.abspath(filename)}")
- Naciśnij dwukrotnie Enter, aby uruchomić i wyświetlić wynik tekstowy.
- Aby wyświetlić obraz, musimy włączyć usługę internetową w Pythonie. W sesji ipython uruchom to polecenie:
!python3 -m http.server 8080
- Teraz przejdź do opcji podglądu w przeglądarce w Cloud Shell i wybierz podgląd na porcie 8080
. - W otwartej sesji internetowej wybierz gemini_agentic_ai.png, aby wyświetlić wygenerowany obraz. (Przykładowy obraz wygenerowany przez AI)

- Aby zamknąć sesję w Cloud Shell, naciśnij Ctrl C, a następnie wpisz exit i naciśnij Enter (powtórz 3 razy), aby wrócić do strony głównej Cloud Shell.
- Kontynuujmy.
7. Tworzenie punktu końcowego PSC dla googleapis
Aby włączyć prywatną łączność z naszym punktem końcowym interfejsu Vertex API, utworzymy punkt końcowy usługi Private Service Connect dla googleapis. Dzięki temu będziemy mogli używać przypisanego przez nas prywatnego adresu IP do kierowania ruchu do potrzebnych nam interfejsów googleapis, w tym przypadku Vertex Gemini.
- Otwórz Cloud Shell, jeśli nie jest jeszcze otwarty. Utwórz adres IP dla punktu końcowego PSC. W tym przypadku użyjemy adresu 192.168.255.230.
gcloud compute addresses create anthro-ip \
--global \
--purpose=PRIVATE_SERVICE_CONNECT \
--addresses=192.168.255.230 \
--network=$networkid
- Sprawdzanie utworzonego adresu IP
gcloud compute addresses list --filter="name=( 'anthro-ip' ...)"
- Następnie utwórz punkt końcowy PSC.
gcloud compute forwarding-rules create pscanthrovertex \
--global \
--network=$networkid \
--address=anthro-ip \
--target-google-apis-bundle=all-apis
- Spowoduje to utworzenie punktu końcowego i wpisu w katalogu usług. Sprawdzanie, czy punkt końcowy istnieje
gcloud compute forwarding-rules describe pscanthrovertex --global
8. Weryfikowanie łączności punktu końcowego za pomocą automatycznej strefy katalogu usług
Połączmy się z Gemini za pomocą prywatnego punktu końcowego.
- Otwórz instancję maszyny wirtualnej anthro-vm1. Wybierz SSH i połącz się z maszyną wirtualną za pomocą SSH
- Sprawdź ścieżkę połączenia z adresem aiplatform-pscanthrovertex.p.googleapis.com za pomocą polecenia
dig. Powinien być widoczny adres IP punktu końcowego PSC192.168.255.230.
dig aiplatform-pscanthrovertex.p.googleapis.com
- Zakończ wszystkie sesje SSH.
9. Tworzenie ręcznego wpisu DNS dla googleapis
Możesz utworzyć ręczny wpis DNS, aby wskazywał punkt końcowy PSC przy użyciu prywatnego DNS. Będzie to miało wpływ na wszystkie sieci, które do niej przypiszesz.
Uruchom w Cloud Shell te polecenia.
- Utwórz prywatną strefę DNS dla domeny googleapis.com i dołącz ją do sieci anthropic-net.
gcloud dns managed-zones create googleapis-private \
--description="Private DNS zone for googleapis.com" \
--dns-name="googleapis.com." \
--visibility="private" \
--networks="anthropic-net"
- Utwórz rekord A mapujący domenę główną na adres IP punktu końcowego Private Service Connect (192.168.255.230).
gcloud dns record-sets create "googleapis.com." \
--zone="googleapis-private" \
--type="A" \
--ttl="300" \
--rrdatas="192.168.255.230"
- Utwórz rekord CNAME z symbolem wieloznacznym, aby przekierować wszystkie subdomeny (np.aiplatform.googleapis.com) do głównego rekordu A.
gcloud dns record-sets create "*.googleapis.com." \
--zone="googleapis-private" \
--type="CNAME" \
--ttl="300" \
--rrdatas="googleapis.com."
- Wyświetl listę zestawów rekordów w strefie, aby potwierdzić, że rekord A i CNAME zostały utworzone prawidłowo.
gcloud dns record-sets list --zone="googleapis-private"
- W widoku konsoli powinno to wyglądać tak: Powinna pojawić się konfiguracja z rekordem A i CNAME, jak pokazano na ilustracji
. - Następnie sprawdzamy połączenie z tymi zmianami na anthro-vm.
10. Sprawdzanie łączności punktu końcowego za pomocą adresu IP
Połączmy się z Gemini za pomocą prywatnego punktu końcowego.
- W Cloud Shell połącz się z nową maszyną wirtualną o nazwie anthro-vm za pomocą SSH.
gcloud compute ssh anthro-vm \
--project=$projectid \
--zone=us-east1-b \
--tunnel-through-iap \
-- -L 8080:localhost:8080
- Po połączeniu się z maszyną wirtualną anthro-vm przez SSH aktywuj środowisko venv:
sudo -i -- bash -c 'cd py-anthro-env && source env/bin/activate && exec bash'
- Teraz wykonaj
dig, aby sprawdzić, czy możesz połączyć się z interfejsem Vertex Gemini API.
dig *-aiplatform.googleapis.com
- Powinien pojawić się ekran podobny do tego (adres będzie inny). Zwróć uwagę, że ścieżka prowadzi przez adresy IP punktu końcowego PSC.
; <<>> DiG 9.18.41-1~deb12u1-Debian <<>> *-aiplatform.googleapis.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33703 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;*-aiplatform.googleapis.com. IN A ;; ANSWER SECTION: *-aiplatform.googleapis.com. 300 IN CNAME googleapis.com. googleapis.com. 300 IN A 192.168.255.230 ;; Query time: 8 msec ;; SERVER: 169.254.169.254#53(169.254.169.254) (UDP) ;; WHEN: Sat Nov 29 15:19:15 UTC 2025 ;; MSG SIZE rcvd: 86
- Użyj polecenia
ping. Możemy przeprowadzić szybki test. Uwaga: ten adres IP to punkt końcowy PSC, więc pingi nie będą działać.
ping -c 2 aiplatform.googleapis.com
- Teraz użyjemy Pythona. Wpisz
ipython, aby aktywować interfejs ipython.
ipython

- Teraz skopiuj i wklej poniższy tekst. To pytanie do Claude Opus 4.5: „Podaj mi szczegółowy przepis na roti dla początkujących”. następnie przekazuje dane wyjściowe do Gemini 3 Pro, który tworzy podsumowanie oraz generuje obraz i zapisuje go na maszynie wirtualnej.
import os
import sys
import google.auth
from pathlib import Path
from google import genai
from google.genai import types
from anthropic import AnthropicVertex
# 1. Setup & Auth
print("--- Authenticating ---")
creds, project_id = google.auth.default()
LOCATION = "global"
# 2. Initialize Clients
print(f"--- Initializing Clients for Project: {project_id} ---")
google_client = genai.Client(vertexai=True, location=LOCATION, project=project_id)
claude_client = AnthropicVertex(region=LOCATION, project_id=project_id)
# 3. Define the Question
question = "Give me a step by step recipe to make a roti for a beginner?"
print(f"\n--- Asking Claude: {question} ---")
# 4. Get Claude's Research
msg = claude_client.messages.create(
model="claude-opus-4-5@20251101",
max_tokens=2048,
messages=[{"role": "user", "content": question}]
)
claude_text = msg.content[0].text
print(f"✓ Claude Answered ({len(claude_text)} chars)")
# 5. Send to Gemini 3 for Image & Summary
print("\n--- Sending to Gemini 3 (Image + Text) ---")
gemini_prompt = f"""
I am providing you with a technical explanation generated by Claude Opus 4.5.
1. READ the text below.
2. GENERATE a concise, bulleted executive summary.
3. CREATE a high-quality, futuristic illustration for a tech blog header (16:9).
--- INPUT TEXT ---
{claude_text}
"""
response = google_client.models.generate_content(
model="gemini-3-pro-image-preview",
contents=gemini_prompt,
config=types.GenerateContentConfig(
response_modalities=['TEXT', 'IMAGE'],
temperature=0.7
)
)
# 6. Save and Display Results
print("\n--- Results ---")
for part in response.parts:
if part.text:
print(f"\n[SUMMARY]:\n{part.text.strip()[:500]}...\n(Summary truncated for brevity)")
elif image := part.as_image():
filename = "cookingroti.png"
image.save(filename)
print(f"\n✓ IMAGE SAVED to: {os.path.abspath(filename)}")
- Naciśnij dwukrotnie Enter, aby uruchomić i wyświetlić wynik tekstowy.
- Aby wyświetlić obraz, musimy włączyć usługę internetową w Pythonie, więc w sesji ipython uruchom to polecenie:
!python3 -m http.server 8080
- Teraz przejdź do opcji podglądu w przeglądarce w Cloud Shell i wybierz podgląd na porcie 8080.
- Kliknij cookingroti.png, aby wyświetlić wygenerowany obraz. (Przykładowy tekst wygenerowany przez AI)

- Aby zamknąć sesję w Cloud Shell, naciśnij Ctrl C, a następnie wpisz exit i naciśnij Enter (powtórz 3 razy), aby wrócić do strony głównej Cloud Shell.
11. Gratulacje
Gratulacje! Udało Ci się połączyć z Anthropic Claude Opus 4.5 i Gemini 3 Pro w Vertex zarówno za pomocą publicznego adresu API, jak i prywatnie przy użyciu punktu końcowego Private Service Connect dla Googleapis. Ta funkcja może rozszerzyć łączność z prywatnymi interfejsami API na środowisko lokalne lub inne środowisko w chmurze, które są połączone za pomocą połączenia Interconnect, połączenia międzychmurowego i sieci VPC.
Czyszczenie danych
gcloud compute instances delete anthro-vm --zone=us-east1-b --quiet
gcloud compute routers nats delete anthro-out-nat-gw --router=anthro-out-nat --region=us-east1 --quiet
gcloud compute routers delete anthro-out-nat --region=us-east1 --quiet
gcloud compute firewall-rules delete anthropic-net-allow-icmp anthropic-net-allow-ssh anthropic-net-allow-web --quiet
gcloud compute forwarding-rules delete pscanthrovertex --global --quiet
gcloud dns record-sets delete googleapis.com. --zone googleapis-private --type A --quiet
gcloud dns record-sets delete *.googleapis.com --zone googleapis-private --type CNAME --quiet
gcloud dns managed-zones delete googleapis-private --quiet
gcloud compute addresses delete anthro-ip --global --quiet
gcloud compute networks subnets delete vm-subnet --region=us-east1 --quiet
gcloud compute networks delete anthropic-net --quiet
Kolejne kroki / Więcej informacji
Więcej informacji o sieci Vertex AI
Codelab Tworzenie agentów AI za pomocą ADK:podstawy
Przejdź do kolejnego modułu
Kontynuuj naukę o Google Cloud i zapoznaj się z tymi modułami Google Cloud Skills Boost:
