1. Введение
Private Service Connect for Google APIs (PSC) — это сетевая функция Google Cloud, позволяющая пользователям настраивать частный доступ через глобальную конечную точку с частным IP-адресом внутри VPC. Для пользователей, запускающих код или клиентские приложения в гибридной среде, подключенной к Google Cloud через VPN или Interconnect, PSC используется для разрешения API Google через это частное гибридное соединение.
PSC для API Google может разрешать множество различных доменов, полный список которых можно найти здесь . Домен, который использует большинство API Google, — это <API>.googleapis.com. Наряду с этим доменом, PSC также предоставляет пользователям версию googleapis.com, которая имеет вид <API>-<PSC-ENDPOINT-NAME>.**p.**googleapis.com. Используя этот домен, пользователи могут настраивать приложения для использования определенных конечных точек PSC. Наиболее распространенный вариант использования позволяет пользователям выбирать, какие приложения используют конечную точку PSC для маршрутизации трафика API Google через гибридное соединение, в то время как другие приложения продолжают маршрутизировать трафик к общедоступной конечной точке API.
Gemini входит в пакет продуктов Vertex AI от Google Cloud и включен в список API Google, которые можно разрешить с помощью PSC для API Google.
В этом практическом занятии вы создадите смоделированную гибридную среду, разместив экземпляр Workbench локально и запустив код Gemini на Python, который будет обращаться к API Gemini в приватном режиме через VPN высокой доступности, подключаясь к конечной точке PSC для API Google.
Что вы узнаете
- Создайте NCC-хаб.
- Настройка VPC Spokes в NCC Hub.
- Создайте облачную VPN-сеть высокой доступности.
- Настройка гибридных периферийных устройств в хабе NCC.
- Создайте конечную точку PSC для API Google.
- Настройте пользовательский маршрут через HA-VPN.
- Настройте зону DNS-пиринга.
- Настройка экземпляра Vertex Workbench
- Настройте код Gemini на Python для использования конечной точки API PSC для Google API.
Что вам понадобится
- Проект Google Cloud с правами "Владелец" или полными правами "Редактор".
2. Топология Codelab

В этом практическом занятии вы будете использовать Google Cloud для имитации гибридной среды. В этом занятии будут шаги, специфичные для Google Cloud, которые будут отличаться при настройке в реальной локальной среде. Эти шаги будут отмечены.
Вы создадите NCC Hub, в котором маршрутизирующая VPC будет выступать в качестве периферийной VPC (VPC Spoke). В этой VPC будет настроена HA-VPN для подключения к локальной VPC, что имитирует локальную среду. HA-VPN будет настроена как гибридная периферийная VPC в NCC Hub. В локальной VPC вы создадите подсеть, где будет размещен экземпляр Workbench. Вы также создадите облачный NAT для загрузки пакетов на экземпляр Workbench.
Наконец, вам нужно будет создать зону DNS-пиринга для локальной VPC, чтобы иметь возможность использовать частную зону каталога служб для p.googleapis.com, которую PSC для Google APIs создает автоматически.
3. Настройка и требования
Настройка среды для самостоятельного обучения
- Войдите в консоль Google Cloud и создайте новый проект или используйте существующий. Если у вас еще нет учетной записи Gmail или Google Workspace, вам необходимо ее создать .



- Название проекта — это отображаемое имя участников данного проекта. Это строка символов, не используемая API Google. Вы всегда можете его изменить.
- Идентификатор проекта уникален для всех проектов Google Cloud и является неизменяемым (его нельзя изменить после установки). Консоль Cloud автоматически генерирует уникальную строку; обычно вам неважно, какая она. В большинстве практических заданий вам потребуется указать идентификатор вашего проекта (обычно обозначается как
PROJECT_ID). Если сгенерированный идентификатор вас не устраивает, вы можете сгенерировать другой случайный идентификатор. В качестве альтернативы вы можете попробовать свой собственный и посмотреть, доступен ли он. После этого шага его нельзя изменить, и он сохраняется на протяжении всего проекта. - К вашему сведению, существует третье значение — номер проекта , которое используется некоторыми API. Подробнее обо всех трех значениях можно узнать в документации .
- Далее вам потребуется включить оплату в консоли Cloud для использования ресурсов/API Cloud. Выполнение этого практического задания не потребует больших затрат, если вообще потребует. Чтобы отключить ресурсы и избежать дополнительных расходов после завершения этого урока, вы можете удалить созданные ресурсы или удалить проект. Новые пользователи Google Cloud имеют право на бесплатную пробную версию стоимостью 300 долларов США .
Запустить Cloud Shell
Хотя Google Cloud можно управлять удаленно с ноутбука, в этом практическом занятии вы будете использовать Google Cloud Shell — среду командной строки, работающую в облаке.
В консоли Google Cloud нажмите на значок Cloud Shell на панели инструментов в правом верхнем углу:

Подготовка и подключение к среде займут всего несколько минут. После завершения вы должны увидеть что-то подобное:

Эта виртуальная машина содержит все необходимые инструменты разработки. Она предоставляет постоянный домашний каталог объемом 5 ГБ и работает в облаке Google, что значительно повышает производительность сети и аутентификацию. Вся работа в этом практическом задании может выполняться в браузере. Вам не нужно ничего устанавливать.
4. Прежде чем начать
Включить API
Внутри Cloud Shell убедитесь, что ваш проект настроен правильно, и задайте переменные среды.
Из Cloud Shell
gcloud config list project gcloud config set project <project-id> export project=$(gcloud config get-value project) export region=us-central1 export zone=$region-a echo $project echo $region echo $zone
Включите все необходимые API Google в проекте.
Из Cloud Shell
gcloud services enable compute.googleapis.com gcloud services enable networkconnectivity.googleapis.com gcloud services enable dns.googleapis.com gcloud services enable notebooks.googleapis.com gcloud services enable servicedirectory.googleapis.com gcloud services enable aiplatform.googleapis.com
5. Создайте VPC и подсети.
Создавайте сети
Из Cloud Shell
gcloud compute networks create routing-vpc \
--subnet-mode=custom
Из Cloud Shell
gcloud compute networks create onprem-vpc \
--subnet-mode=custom
gcloud compute networks subnets create onprem-$region-subnet \
--network=onprem-vpc \
--range=10.0.0.0/24 \
--region=$region
--enable-private-ip-google-access
Создание облачных маршрутизаторов и облачного NAT
Создайте облачный маршрутизатор, который будет использоваться совместно с VPN высокой доступности в маршрутизирующей VPC.
Из Cloud Shell
gcloud compute routers create routing-$region-cr \
--network=routing-vpc \
--region=$region \
--asn=64512
Создайте облачный маршрутизатор, который будет использоваться совместно с VPN высокой доступности в локальной VPC.
Из Cloud Shell
gcloud compute routers create onprem-$region-cr \
--network=onprem-vpc \
--region=$region \
--asn=64513
Создайте облачный маршрутизатор, который будет использоваться совместно с облачным NAT в локальной VPC.
Из Cloud Shell
gcloud compute routers create onprem-$region-cr-4nat \
--network=onprem-vpc \
--region=$region
Облачный NAT в локальной VPC будет использоваться для загрузки пакетов в экземпляр Vertex AI Workbench, который будет настроен на более позднем этапе.
Из Cloud Shell
gcloud compute routers nats create onprem-$region-nat \
--router=onprem-$region-cr-4nat \
--region=$region \
--nat-all-subnet-ip-ranges \
--auto-allocate-nat-external-ips
6. Создайте облачное VPN-соединение высокой доступности (Ha-VPN).
Создайте VPN-шлюзы.
Из Cloud Shell
gcloud compute vpn-gateways create routing-gateway \ --network=routing-vpc \ --region=$region \ --stack-type=IPV4_ONLY
Из Cloud Shell
gcloud compute vpn-gateways create onprem-gateway \ --network=onprem-vpc \ --region=$region \ --stack-type=IPV4_ONLY
Создайте VPN-туннели, исходящие из маршрутизирующей VPC.
Из Cloud Shell
gcloud compute vpn-tunnels create routing-to-onprem-tunnel0 \
--peer-gcp-gateway=onprem-gateway \
--region=$region \
--ike-version=2 \
--shared-secret=mysecret \
--router=routing-$region-cr \
--vpn-gateway=routing-gateway \
--interface=0
gcloud compute vpn-tunnels create routing-to-onprem-tunnel1 \
--peer-gcp-gateway=onprem-gateway \
--region=$region \
--ike-version=2 \
--shared-secret=mysecret \
--router=routing-$region-cr \
--vpn-gateway=routing-gateway \
--interface=1
Создайте VPN-туннели, исходящие из локальной VPC.
Из Cloud Shell
gcloud compute vpn-tunnels create onprem-to-routing-tunnel0 \
--peer-gcp-gateway=routing-gateway \
--region=$region \
--ike-version=2 \
--shared-secret=mysecret \
--router=onprem-$region-cr \
--vpn-gateway=onprem-gateway \
--interface=0
gcloud compute vpn-tunnels create onprem-to-routing-tunnel1 \
--peer-gcp-gateway=routing-gateway \
--region=$region \
--ike-version=2 \
--shared-secret=mysecret \
--router=onprem-$region-cr \
--vpn-gateway=onprem-gateway \
--interface=1
Настройте BGP-сессии для двух туннелей, исходящих из маршрутизирующего VPC.
Из Cloud Shell
gcloud compute routers add-interface routing-$region-cr \
--interface-name=routing-interface0 \
--ip-address=169.254.0.1 \
--mask-length=30 \
--vpn-tunnel=routing-to-onprem-tunnel0 \
--region=$region
gcloud compute routers add-bgp-peer routing-$region-cr \
--peer-name=routingtoonprem-bgp0 \
--interface=routing-interface0 \
--peer-ip-address=169.254.0.2 \
--peer-asn=64513 \
--region=$region
gcloud compute routers add-interface routing-$region-cr \
--interface-name=routing-interface1 \
--ip-address=169.254.1.1 \
--mask-length=30 \
--vpn-tunnel=routing-to-onprem-tunnel1 \
--region=$region
gcloud compute routers add-bgp-peer routing-$region-cr \
--peer-name=routingtoonprem-bgp1 \
--interface=routing-interface1 \
--peer-ip-address=169.254.1.2 \
--peer-asn=64513 \
--region=$region
Настройте BGP-сессии для двух туннелей, исходящих из локальной VPC.
Из Cloud Shell
gcloud compute routers add-interface onprem-$region-cr \
--interface-name=onprem-interface0 \
--ip-address=169.254.0.2 \
--mask-length=30 \
--vpn-tunnel=onprem-to-routing-tunnel0 \
--region=$region
gcloud compute routers add-bgp-peer onprem-$region-cr \
--peer-name=onpremtorouting-bgp0 \
--interface=onprem-interface0 \
--peer-ip-address=169.254.0.1 \
--peer-asn=64512 \
--region=$region
gcloud compute routers add-interface onprem-$region-cr \
--interface-name=onprem-interface1 \
--ip-address=169.254.1.2 \
--mask-length=30 \
--vpn-tunnel=onprem-to-routing-tunnel1 \
--region=$region
gcloud compute routers add-bgp-peer onprem-$region-cr \
--peer-name=onpremtorouting-bgp1 \
--interface=onprem-interface1 \
--peer-ip-address=169.254.1.1 \
--peer-asn=64512 \
--region=$region
Перейдите на страницу «Сетевое подключение > VPN» в консоли и убедитесь, что ваши туннели HA-VPN и сессии BGP настроены правильно.
7. Настройка центрального узла и периферийных устройств NCC.
Создать центр NCC
Из Cloud Shell
gcloud network-connectivity hubs create ncc-hub \
--project="$project" \
--preset-topology="mesh"
Создать спицы NCC
Для корректной работы NCC gcloud требуется, чтобы все периферийные узлы были настроены с указанием полных путей или URI.
Из Cloud Shell
gcloud compute networks describe routing-vpc
Обратите внимание на полный путь (URI) к routing-vpc для следующей команды.
Пример выходных данных
autoCreateSubnetworks: false creationTimestamp: '2025-08-20T11:13:42.233-07:00' id: 'xxx' kind: compute#network name: routing-vpc networkFirewallPolicyEnforcementOrder: AFTER_CLASSIC_FIREWALL routingConfig: bgpBestPathSelectionMode: LEGACY routingMode: REGIONAL selfLink: https://www.googleapis.com/compute/v1/projects/$project/global/networks/routing-vpc selfLinkWithId: https://www.googleapis.com/compute/v1/projects/$project/global/networks/355666541188722361 x_gcloud_bgp_routing_mode: REGIONAL x_gcloud_subnet_mode: CUSTOM
Настройка маршрутизации VPC Spoke
Из Cloud Shell
gcloud network-connectivity spokes linked-vpc-network create routing-vpc \
--hub=ncc-hub \
--vpc-network=projects/$project/global/networks/routing-vpc \
--global
Из Cloud Shell
gcloud compute vpn-tunnels describe routing-to-onprem-tunnel0 --region=$region gcloud compute vpn-tunnels describe routing-to-onprem-tunnel1 --region=$region
Обратите внимание на полные пути (URI) VPN-туннелей, исходящих из маршрутизирующей VPC.
Пример выходных данных
creationTimestamp: '2025-08-20T11:33:37.494-07:00' description: '' detailedStatus: Tunnel is up and running. id: 'xxx' ikeVersion: 2 kind: compute#vpnTunnel labelFingerprint: xxx localTrafficSelector: - 0.0.0.0/0 name: routing-to-onprem-tunnel0 peerGcpGateway: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/vpnGateways/onprem-gateway peerIp: 34.153.54.166 region: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1 remoteTrafficSelector: - 0.0.0.0/0 router: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/routers/routing-us-central1-cr selfLink: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/vpnTunnels/routing-to-onprem-tunnel0 sharedSecret: '*************' sharedSecretHash: xxx status: ESTABLISHED vpnGateway: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/vpnGateways/routing-gateway vpnGatewayInterface: 0 creationTimestamp: '2025-08-20T11:33:41.829-07:00' description: '' detailedStatus: Tunnel is up and running. id: 'xxx' ikeVersion: 2 kind: compute#vpnTunnel labelFingerprint: xxx localTrafficSelector: - 0.0.0.0/0 name: routing-to-onprem-tunnel1 peerGcpGateway: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/vpnGateways/onprem-gateway peerIp: 34.153.246.117 region: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1 remoteTrafficSelector: - 0.0.0.0/0 router: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/routers/routing-us-central1-cr selfLink: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/vpnTunnels/routing-to-onprem-tunnel1 sharedSecret: '*************' sharedSecretHash: xxx status: ESTABLISHED vpnGateway: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/vpnGateways/routing-gateway vpnGatewayInterface: 1
Из Cloud Shell
gcloud network-connectivity spokes linked-vpn-tunnels create $region-vpn-spoke \
--hub=ncc-hub \
--vpn-tunnels=projects/$project/regions/$region/vpnTunnels/routing-to-onprem-tunnel0,projects/$project/regions/$region/vpnTunnels/routing-to-onprem-tunnel1 \
--region=$region
Перед тем как продолжить, убедитесь, что все спицы настроены правильно.
Из Cloud Shell
gcloud network-connectivity hubs list-spokes ncc-hub
Пример выходных данных
NAME: routing-vpc GROUP: default PROJECT: $project LOCATION: global TYPE: VPC_NETWORK STATE: ACTIVE STATE REASON: ETAG: 2 NAME: us-central1-vpn-spoke GROUP: default PROJECT: $project LOCATION: us-central1 TYPE: VPN_TUNNEL STATE: ACTIVE STATE REASON: ETAG:
8. Настройка Private Service Connect для API Google.
Конечные точки PSC для API Google создаются на основе глобальных IP-адресов, которые не находятся в региональной подсети VPC. Глобальный IP-адрес должен быть специально зарезервирован для назначения PRIVATE_SERVICE_CONNECT.
Из Cloud Shell
gcloud compute addresses create psc-ip \ --global \ --purpose=PRIVATE_SERVICE_CONNECT \ --addresses=10.100.100.0 \ --network=routing-vpc
Из Cloud Shell
gcloud compute forwarding-rules create psc4googep \ --global \ --network=routing-vpc \ --address=psc-ip \ --target-google-apis-bundle=all-apis \ --service-directory-registration=projects/$project/locations/$region
Из Cloud Shell
gcloud compute routers update routing-$region-cr \ --project=$project \ --region=$region \ --advertisement-mode custom \ --set-advertisement-groups=ALL_SUBNETS \ --set-advertisement-ranges=10.100.100.0/32
Из Cloud Shell
gcloud dns managed-zones create peeringzone \
--description="dns peer onprem to routing" \
--dns-name=p.googleapis.com \
--networks=onprem-vpc \
--target-network=routing-vpc \
--target-project=$project \
--visibility=private
9. Настройка экземпляра Vertex Workbench
Создайте учетную запись службы, которая будет использоваться в качестве идентификатора экземпляра Workbench.
Из Cloud Shell
gcloud iam service-accounts create workbench-sa \
--display-name="workbench-sa"
Запишите полное имя вашей учетной записи службы и предоставьте ей разрешение aiplatform.admin на выполнение вызовов к Vertex AI/Gemini.
Из Cloud Shell
gcloud iam service-accounts list
Пример выходных данных
DISPLAY NAME: Compute Engine default service account EMAIL: xxx-compute@developer.gserviceaccount.com DISABLED: False DISPLAY NAME: workbench-sa EMAIL: workbench-sa@$project.iam.gserviceaccount.com DISABLED: False
Убедитесь, что вы заменили <your-project-id> на фактический идентификатор вашего проекта. Мы не можем использовать переменную $project здесь из-за необходимости использования кавычек.
Из Cloud Shell
gcloud projects add-iam-policy-binding $project --member='serviceAccount:workbench-sa@<your-project-id>.iam.gserviceaccount.com' --role='roles/aiplatform.admin' --condition=None
Из Cloud Shell
gcloud workbench instances create workbench-$region --vm-image-project=cloud-notebooks-managed --vm-image-family=workbench-instances --location=$region-a --network=projects/$project/global/networks/onprem-vpc --subnet=projects/$project/regions/$region/subnetworks/onprem-$region-subnet --subnet-region=$region --disable-public-ip --service-account-email=workbench-sa@$project.iam.gserviceaccount.com
Подготовка экземпляра Workbench может занять больше времени, чем выполняется команда gcloud.
10. Проверьте код Gemini.
В пользовательском интерфейсе нажмите «Открыть JupyterLab».

После входа в JupyterLab откройте новый блокнот Python 3.

Запустите следующий код в блокноте. Убедитесь, что вы обновили код, добавив информацию о вашем конкретном проекте и регионе.
Из блокнота JupyterLab
pip install --upgrade google-genai
Перезапустите ядро ноутбука.

Обратите внимание на конечную точку API. Здесь мы используем конечную точку API <ВАШ_РЕГИОН>-aiplatform.googleapis.com. Это стандартная конечная точка API для Vertex AI.
Из блокнота JupyterLab
PROJECT_ID="YOUR_PROJECT_ID" # Google Cloud Project ID
LOCATION_ID="YOUR_REGION" # Enter Vertex AI Gemini region such a s us-central1
API_ENDPOINT="https://<YOUR_REGION>-aiplatform.googleapis.com" # API Endpoint
MODEL_ID="gemini-2.0-flash" # Gemini Model ID
from google import genai
from google.genai.types import (
GenerateContentConfig,
HarmBlockThreshold,
HarmCategory,
Part,
SafetySetting,
)
Из блокнота JupyterLab
from google import genai
client= genai.Client(vertexai=True, project=PROJECT_ID, location=LOCATION_ID, http_options={'base_url': API_ENDPOINT})
prompt = "what weighs more, 1kg of feathers or 1kg of stones"
safety_settings = [
SafetySetting(
category=HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT,
threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
),
SafetySetting(
category=HarmCategory.HARM_CATEGORY_HARASSMENT,
threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
),
SafetySetting(
category=HarmCategory.HARM_CATEGORY_HATE_SPEECH,
threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
),
SafetySetting(
category=HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT,
threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
),
]
response = client.models.generate_content(
model=MODEL_ID,
contents=prompt,
config=GenerateContentConfig(
safety_settings=safety_settings,
),
)
# Response will be `None` if it is blocked.
print(response.text)
Пример ответа
This is a classic trick question! They both weigh the same: 1 kilogram. The difference is in the volume they occupy and the density of the materials.
Обратите внимание на имя API, которое вы использовали при запуске кода. YOUR_REGION-aiplatform.googleapis.com — это имя API по умолчанию для Vertex AI. Нам нужно изменить имя API и запустить код снова. Мы можем убедиться, что код использует конечную точку PSC, запустив TCPdump в терминале на экземпляре Workbench.
Запустите TCPdump в терминале.
Чтобы открыть терминал в Workbench, нажмите Файл > Создать > Терминал.

Если у вас возникли проблемы с отображением текста в терминале, вам необходимо обновить тему оформления терминала. Сделайте это в разделе «Настройки» > «Тема терминала» > «Светлая» или «Темная».
Из терминала
sudo tcpdump host 10.100.100.0
Обновить код Gemini
Вернитесь в блокнот, обновите конечную точку API и снова запустите код. Обратите внимание, что мы изменили конечную точку API на <ВАШ_РЕГИОН>-aiplatform**-psc4googep.p**.googleapis.com. Это соответствует формату API, специфичному для PSC: <сервис>-<имя_конечной_точки>.p.googleapis.com.
Из блокнота JupyterLab
API_ENDPOINT="https://<YOUR_REGION>-aiplatform-psc4googep.p.googleapis.com" # API Endpoint
Из блокнота JupyterLab
from google import genai
from google.genai.types import (
GenerateContentConfig,
HarmBlockThreshold,
HarmCategory,
Part,
SafetySetting,
)
Из блокнота JupyterLab
from google import genai
client= genai.Client(vertexai=True, project=PROJECT_ID, location=LOCATION_ID, http_options={'base_url': API_ENDPOINT})
prompt = "what weighs more, 1kg of feathers or 1kg of stones"
safety_settings = [
SafetySetting(
category=HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT,
threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
),
SafetySetting(
category=HarmCategory.HARM_CATEGORY_HARASSMENT,
threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
),
SafetySetting(
category=HarmCategory.HARM_CATEGORY_HATE_SPEECH,
threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
),
SafetySetting(
category=HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT,
threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
),
]
response = client.models.generate_content(
model=MODEL_ID,
contents=prompt,
config=GenerateContentConfig(
safety_settings=safety_settings,
),
)
# Response will be `None` if it is blocked.
print(response.text)
Пример ответа
They weigh the same. 1 kg is 1 kg, regardless of what it's made of.
Проверьте TCPdump
Вернитесь к терминалу и проверьте наличие вызовов к конечной точке PSC (10.100.100.0). Завершите TCPdump (Ctrl+C).
Пример выходных данных
listening on ens4, link-type EN10MB (Ethernet), snapshot length 262144 bytes 19:12:01.473886 IP workbench-us-central1.us-central1-a.c.xxx.internal.41886 > 10.100.100.0.https: Flags [S], seq 3367930834, win 65320, options [mss 1420,sackOK,TS val 2933602967 ecr 0,nop,wscale 7], length 0 19:12:01.476561 IP 10.100.100.0.https > workbench-us-central1.us-central1-a.c.xxx.internal.41886: Flags [S.], seq 1863301110, ack 3367930835, win 65535, options [mss 1366,sackOK,TS val 3004118895 ecr 2933602967,nop,wscale 8], length 0 19:12:01.476602 IP workbench-us-central1.us-central1-a.c.xxx.internal.41886 > 10.100.100.0.https: Flags [.], ack 1, win 511, options [nop,nop,TS val 2933602969 ecr 3004118895], length 0 19:12:01.477283 IP workbench-us-central1.us-central1-a.c.xxx.internal.41886 > 10.100.100.0.https: Flags [P.], seq 1:1573, ack 1, win 511, options [nop,nop,TS val 2933602970 ecr 3004118895], length 1572 19:12:01.478836 IP 10.100.100.0.https > workbench-us-central1.us-central1-a.c.xxx.internal.41886: Flags [.], ack 1573, win 1045, options [nop,nop,TS val 3004118898 ecr 2933602970], length 0 19:12:01.480181 IP 10.100.100.0.https > workbench-us-central1.us-central1-a.c.xxx.internal.41886: Flags [P.], seq 1:6041, ack 1573, win 1045, options [nop,nop,TS val 3004118899 ecr 2933602970], length 6040 19:12:01.480183 IP 10.100.100.0.https > workbench-us-central1.us-central1-a.c.xxx.internal.41886: Flags [P.], seq 6041:8378, ack 1573, win 1045, options [nop,nop,TS val 3004118899 ecr 2933602970], length 2337 19:12:01.480215 IP workbench-us-central1.us-central1-a.c.xxx.internal.41886 > 10.100.100.0.https: Flags [.], ack 6041, win 485, options [nop,nop,TS val 2933602973 ecr 3004118899], length 0 19:12:01.480225 IP workbench-us-central1.us-central1-a.c.xxx.internal.41886 > 10.100.100.0.https: Flags [.], ack 8378, win 473, options [nop,nop,TS val 2933602973 ecr 3004118899], length 0 19:12:01.482580 IP workbench-us-central1.us-central1-a.c.xxx.internal.41886 > 10.100.100.0.https: Flags [P.], seq 1573:1653, ack 8378, win 501, options [nop,nop,TS val 2933602975 ecr 3004118899], length 80
УСПЕХ!
11. Этапы очистки
Закройте блокнот JupyterLab и вернитесь в Cloud Shell. Убедитесь, что время ожидания в Cloud Shell не истекло. Если это произошло, сбросьте переменные.
Из Cloud Shell
gcloud config list project gcloud config set project <project-id> export project=$(gcloud config get-value project) export region=us-central1 export zone=$region-a echo $project echo $region echo $zone
Удалить все ресурсы.
Из Cloud Shell
gcloud workbench instances delete workbench-$region --location=$zone -q gcloud iam service-accounts delete workbench-sa@$project.iam.gserviceaccount.com -q gcloud dns managed-zones delete peeringzone -q gcloud compute forwarding-rules delete psc4googep --global -q gcloud compute addresses delete psc-ip --global -q gcloud network-connectivity spokes delete $region-vpn-spoke --region=$region -q gcloud network-connectivity spokes delete routing-vpc --global -q gcloud network-connectivity hubs delete ncc-hub -q gcloud compute vpn-tunnels delete onprem-to-routing-tunnel1 --region=$region --project=$project -q gcloud compute vpn-tunnels delete onprem-to-routing-tunnel0 --region=$region --project=$project -q gcloud compute vpn-tunnels delete routing-to-onprem-tunnel1 --region=$region --project=$project -q gcloud compute vpn-tunnels delete routing-to-onprem-tunnel0 --region=$region --project=$project -q gcloud compute vpn-gateways delete onprem-gateway --region=$region --project=$project -q gcloud compute vpn-gateways delete routing-gateway --region=$region --project=$project -q gcloud compute routers nats delete onprem-$region-nat --router=onprem-$region-cr-4nat --region=$region -q gcloud compute routers delete onprem-$region-cr-4nat --region=$region -q gcloud compute routers delete onprem-$region-cr --region=$region -q gcloud compute routers delete routing-$region-cr --region=$region -q gcloud compute networks subnets delete onprem-$region-subnet --region=$region -q gcloud compute networks delete onprem-vpc -q gcloud compute networks delete routing-vpc -q
12. Поздравляем!
Поздравляем с завершением практического занятия!
Что мы рассмотрели
- Создайте NCC-хаб.
- Настройка VPC Spokes в NCC Hub.
- Создайте облачную VPN-сеть высокой доступности.
- Настройка гибридных периферийных устройств в хабе NCC.
- Создайте конечную точку PSC для API Google.
- Настройте пользовательский маршрут через HA-VPN.
- Настройте зону DNS-пиринга.
- Настройка экземпляра Vertex Workbench
- Настройте код Gemini на Python для использования конечной точки API PSC для Google API.