Looker PSC Southbound HTTPS Интернет NEG SMTP

1. Введение

В этой лаборатории кода вы создадите южное соединение со службой SMTP Lookers с использованием внутреннего балансировщика нагрузки TCP-прокси и группы конечных точек интернет-сети (NEG) с полным доменным именем Notifications-pa.googleapis.com, вызываемым из Looker PSC в качестве потребителя службы.

Private Service Connect — это возможность сети Google Cloud, которая позволяет потребителям получать частный доступ к управляемым сервисам изнутри своей сети VPC. Аналогичным образом, это позволяет производителям управляемых услуг размещать эти услуги в своих собственных отдельных сетях VPC и предлагать своим потребителям частное соединение. Например, когда вы используете Private Service Connect для доступа к Looker, вы являетесь потребителем услуги, а Google — производителем услуги, как показано на рисунке 1.

Рисунок 1.

145ea4672c3a3b14.png

Южный доступ, также известный как обратный PSC, позволяет потребителю создать опубликованную службу в качестве производителя, чтобы обеспечить доступ Looker к конечным точкам локально, в VPC, к управляемым сервисам и Интернету. Южные соединения могут быть развернуты в любом регионе, независимо от того, где развернут Looker PSC, как показано на рисунке 2.

Рисунок 2.

259493afd914f68b.png

Что вы узнаете

  • Требования к сети
  • Создание службы-производителя Private Service Connect
  • Создайте конечную точку Private Service Connect в Looker
  • Установите подключение к SMTP-сервису Lookers.

Что вам понадобится

def88091b42bfe4d.png

2. Что вы будете строить

Вы создадите сеть-производитель, Looker-PSC-Demo, для развертывания внутреннего балансировщика нагрузки tcp-прокси и Интернет-NEG, опубликованного как услуга через Private Service Connect (PSC). После публикации вы выполните следующие действия для проверки доступа к службе Producer:

  • Создайте конечную точку PSC в Looker, связанную с вложением службы производителя.
  • Используйте консоль Looker для создания настроек почты SMTP.

3. Требования к сети

Ниже приводится разбивка сетевых требований для сети Producer, потребителем в этой кодовой лаборатории является экземпляр Looker PSC.

Компоненты

Описание

VPC (просмотрщик-psc-демо)

Пользовательский режим VPC

Подсеть PSC NAT

Пакеты из потребительской сети VPC преобразуются с использованием исходного NAT (SNAT), так что их исходные IP-адреса источника преобразуются в исходные IP-адреса из подсети NAT в сети VPC производителя.

Подсеть правила пересылки PSC

Используется для выделения IP-адреса региональному внутреннему балансировщику нагрузки TCP-прокси.

Подсеть PSC NEG

Используется для выделения IP-адреса для группы конечных точек сети.

Только прокси-подсеть

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

Интернет НЕГ

Ресурс, используемый для определения внешнего серверного компонента балансировщика нагрузки. Конечная точка не может быть доступна только через Cloud VPN или Cloud Interconnect.

Серверная служба

Серверная служба действует как мост между балансировщиком нагрузки и серверными ресурсами. В руководстве серверная служба связана с Интернетом NEG.

Облачный маршрутизатор

Cloud NAT использует облачные маршрутизаторы для обеспечения возможностей плоскости управления, но не для управления сеансами BGP.

Облачный NAT

Региональная интернет-сеть NEG использует Cloud NAT для выхода в Интернет.

4. Топология Codelab

a4eb7693cbdbdfd4.png

5. Настройка и требования

Самостоятельная настройка среды

  1. Войдите в Google Cloud Console и создайте новый проект или повторно используйте существующий. Если у вас еще нет учетной записи Gmail или Google Workspace, вам необходимо ее создать .

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

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

Запустить Cloud Shell

Хотя Google Cloud можно управлять удаленно с вашего ноутбука, в этой лаборатории вы будете использовать Google Cloud Shell , среду командной строки, работающую в облаке.

В Google Cloud Console щелкните значок Cloud Shell на верхней правой панели инструментов:

55efc1aaa7a4d3ad.png

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

7ffe5cbb04455448.png

Эта виртуальная машина оснащена всеми необходимыми инструментами разработки. Он предлагает постоянный домашний каталог объемом 5 ГБ и работает в Google Cloud, что значительно повышает производительность сети и аутентификацию. Всю работу в этой лаборатории кода можно выполнять в браузере. Вам не нужно ничего устанавливать.

6. Прежде чем начать

Включить API

В Cloud Shell убедитесь, что идентификатор вашего проекта настроен:

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
echo $project
echo $region

Включите все необходимые службы:

gcloud services enable compute.googleapis.com

7. Создайте сеть VPC производителя.

Сеть VPC

Внутри Cloud Shell выполните следующие действия:

gcloud compute networks create looker-psc-demo --subnet-mode custom

Создание подсетей

Подсеть PSC будет связана с приложением службы PSC для целей трансляции сетевых адресов.

Внутри Cloud Shell создайте подсеть PSC NAT:

gcloud compute networks subnets create producer-psc-nat-subnet --network looker-psc-demo --range 172.16.10.0/28 --region $region --purpose=PRIVATE_SERVICE_CONNECT

В Cloud Shell создайте подсеть правила переадресации производителя:

gcloud compute networks subnets create producer-psc-fr-subnet --network looker-psc-demo --range 172.16.20.0/28 --region $region --enable-private-ip-google-access

Внутри Cloud Shell создайте подсеть только для регионального прокси-сервера производителя:

gcloud compute networks subnets create $region-proxy-only-subnet \
  --purpose=REGIONAL_MANAGED_PROXY \
  --role=ACTIVE \
  --region=$region \
  --network=looker-psc-demo \
  --range=10.10.10.0/24

Создайте общедоступный шлюз NAT.

Шлюз NAT используется региональным внутренним балансировщиком нагрузки TCP-прокси для выхода из Интернета с параметром конфигурации –endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB, поэтому тот же NATGW не будет поддерживать выход из Интернета GCE/GKE. Разверните дополнительный шлюз NAT с параметром –endpoint-types=ENDPOINT_TYPE_VM для выхода в Интернет GCE/GKE.

Внутри Cloud Shell создайте Cloud Router:

gcloud compute routers create looker-psc-demo-cloud-router --network looker-psc-demo --region $region

Внутри Cloud Shell создайте шлюз Cloud NAT, обеспечивающий выход в Интернет для балансировщика нагрузки прокси-сервера TCP:

gcloud compute routers nats create looker-psc-demo-natgw \
  --router=looker-psc-demo-cloud-router \
  --endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB \
  --nat-custom-subnet-ip-ranges=$region-proxy-only-subnet \
  --auto-allocate-nat-external-ips \
  --region=$region

Зарезервируйте IP-адрес балансировщика нагрузки.

Внутри Cloud Shell зарезервируйте внутренний IP-адрес для балансировщика нагрузки:

gcloud compute addresses create internet-neg-lb-ip \
  --region=$region \
  --subnet=producer-psc-fr-subnet

В Cloud Shell просмотрите зарезервированный IP-адрес.

gcloud compute addresses describe internet-neg-lb-ip \
  --region=$region | grep -i address:

Пример вывода:

user@cloudshell$ gcloud compute addresses describe internet-neg-lb-ip   --region=$region | grep -i address:
address: 172.16.20.2

Настроить Интернет NEG

Создайте Internet NEG и установите для параметра –network-endpoint-type значение интернет-fqdn-port (имя хоста и порт, по которым можно получить доступ к вашему внешнему серверу).

Внутри Cloud Shell создайте NEG Интернета, используемый для github.com.

gcloud compute network-endpoint-groups create smtp-internet-neg \
    --network-endpoint-type=INTERNET_FQDN_PORT \
    --network=looker-psc-demo \
    --region=$region

В Cloud Shell обновите Internet NEG smtp-internet-neg, указав полное доменное имя Notifications-pa.googleapis.com и порт 443.

gcloud compute network-endpoint-groups update smtp-internet-neg \
    --add-endpoint="fqdn=notifications-pa.googleapis.com,port=443" \
    --region=$region

Создайте политику сетевого брандмауэра и правила брандмауэра.

Внутри Cloud Shell выполните следующие действия:

gcloud compute network-firewall-policies create looker-psc-demo-policy --global

gcloud compute network-firewall-policies associations create --firewall-policy looker-psc-demo-policy --network looker-psc-demo --name looker-psc-demo --global-firewall-policy

Следующее правило брандмауэра разрешает передачу трафика из диапазона подсети PSC NAT во все экземпляры сети.

Внутри Cloud Shell выполните следующие действия:

gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy looker-psc-demo-policy --description "allow traffic from PSC NAT subnet" --direction INGRESS --src-ip-ranges 172.16.10.0/28 --global-firewall-policy --layer4-configs=tcp

8. Создать службу продюсера

Создание компонентов балансировщика нагрузки

Внутри Cloud Shell выполните следующие действия:

gcloud compute backend-services create producer-backend-svc  --protocol=tcp --region=$region --load-balancing-scheme=INTERNAL_MANAGED

gcloud compute backend-services add-backend producer-backend-svc --network-endpoint-group=smtp-internet-neg --network-endpoint-group-region=$region --region=$region

В Cloud Shell создайте целевой TCP-прокси для маршрутизации запросов к внутренней службе:

gcloud compute target-tcp-proxies create producer-lb-tcp-proxy \
      --backend-service=producer-backend-svc  \
      --region=$region

В следующем синтаксисе создайте правило переадресации (внутренний балансировщик нагрузки TCP-прокси).

В Cloud Shell выполните следующие действия:

gcloud compute forwarding-rules create producer-smtp-fr \
     --load-balancing-scheme=INTERNAL_MANAGED \
     --network-tier=PREMIUM \
     --network=looker-psc-demo \
     --subnet=producer-psc-fr-subnet \
     --address=internet-neg-lb-ip \
     --target-tcp-proxy=producer-lb-tcp-proxy \
     --target-tcp-proxy-region=$region \
     --region=$region \
     --ports=443

Создать служебное приложение

Внутри Cloud Shell создайте вложение службы smtp-svc-attachment:

gcloud compute service-attachments create smtp-svc-attachment --region=$region --producer-forwarding-rule=producer-smtp-fr --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=producer-psc-nat-subnet

Затем получите и запишите вложение службы, указанное в URI selfLink, начиная с проектов, для настройки конечной точки PSC в Looker.

selfLink: projects/<your-project-id>/regions/<your-region>/serviceAttachments/github-svc-attachment-https

Внутри Cloud Shell выполните следующие действия:

gcloud compute service-attachments describe smtp-svc-attachment --region=$region

Пример:

connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2024-10-04T14:56:50.409-07:00'
description: ''
enableProxyProtocol: false
fingerprint: KUPXTZjrGkw=
id: '8947818105173563981'
kind: compute#serviceAttachment
name: smtp-svc-attachment
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$project/regions/$region/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
  high: '23100082169578472'
  low: '8947818105173563981'
reconcileConnections: false
region: https://www.googleapis.com/compute/v1/projects/$project/regions/$region
selfLink: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/serviceAttachments/smtp-svc-attachment
targetService: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/producer-smtp-fr

В Cloud Console перейдите к:

Сетевые службы → Подключение частных служб → Опубликованные службы

b847b5ee22e3582e.png

b9a7d46c8dea4476.png

9. Установите соединение с конечной точкой PSC в Looker.

В следующем разделе вы свяжете вложение службы Producers с Looker Core PSC с помощью флагов –psc-service-attachment в Cloud Shell для одного домена.

В Cloud Shell создайте ассоциацию psc, обновив следующие параметры в соответствии с вашей средой:

  • INSTANCE_NAME: имя вашего экземпляра Looker (ядро Google Cloud).
  • DOMAIN_1: уведомления-pa.googleapis.com
  • SERVICE_ATTACHMENT_1: URI, полученный при описании вложения службы, smtp-svc-attachment.
  • РЕГИОН: регион, в котором размещен ваш экземпляр Looker (ядро Google Cloud).

Внутри Cloud Shell выполните следующие действия:

gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment  domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION

Пример:

gcloud looker instances update looker-psc-instance \
--psc-service-attachment  domain=notifications-pa.googleapis.com,attachment=projects/$project/regions/$region/serviceAttachments/smtp-svc-attachment \
--region=$region

В Cloud Shell убедитесь, что статус подключения serviceAttachments имеет значение «ACCEPTED», обновите его с помощью Looker PSC INSTANCE_NAME.

gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json

Пример:

gcloud looker instances describe looker-psc-instance --region=$region --format=json

Пример:

{
...........................
    "serviceAttachments": [
      {
        "connectionStatus": "ACCEPTED",
        "localFqdn": "notifications-pa.googleapis.com",
        "targetServiceAttachmentUri": "projects/$project/regions/$region/serviceAttachments/smtp-svc-attachment"
      }
    ]
  },
  "pscEnabled": true,
  "state": "ACTIVE",
  "updateTime": "2024-10-04T22:02:31.445761128Z"
}

Проверьте конечную точку PSC в Cloud Console.

В Cloud Console вы можете проверить соединение PSC.

В Cloud Console перейдите к:

Looker → Экземпляр Looker → Подробности

2d4684d722d31e4b.png

а7593db722f86642.png

10. Проверьте подключение SMTP

На следующих шагах вы будете использовать консоль Looker для проверки подключения SMTP путем создания теста и отчета SMTP.

Тестовое письмо

Looker отправляет электронную почту, используя SMTP-сервер по умолчанию, Notifications-pa.googleapis.com. Никаких дополнительных действий в этом случае не требуется. Если вы хотите использовать другой SMTP-сервер для уведомлений, обратитесь к разделу «Пользовательская конфигурация SMTP».

Откройте консоль Looker и перейдите к следующему:

Администратор → Платформа → SMTP → Выберите «Отправить тестовое письмо».

aacb31e399cec9b7.png

Ниже приведено тестовое письмо, полученное от Looker:

ff75669fb6993d58.png

Электронная почта сгенерированного отчета

Перейдите к следующему:

Исследуйте → Активность системы → Использование API → Тип запроса API → Выполнить.

788f6d6d08f5f055.png

Пример вывода:

cebecdf5f2e968d1.png

Чтобы отправить результаты на свою электронную почту, выберите значок шестеренки.

c6ddb0b234b58ed4.png

Выберите Отправить, чтобы открыть новое окно.

15b45c5c1bc1b09b.png

Введите свой адрес электронной почты и выберите «Отправить».

86970bb94247ed62.png

Ниже приведено тестовое письмо, полученное от Looker:

c925c8917f8078b3.png

11. Пользовательская конфигурация SMTP

В этом руководстве SMTP-сервер Looker используется для отправки уведомлений по электронной почте через полное доменное имя Notifications-pa.googleapis.com и Cloud NAT, выполняющий выход в Интернет. Чтобы использовать собственный SMTP-сервер, создайте новое служебное приложение со следующими изменениями:

Обновите NEG в Интернете, указав полное доменное имя SMTP-сервера:

gcloud compute network-endpoint-groups update smtp-internet-neg \
    --add-endpoint="fqdn=<your SMTP FQDN>,port=443" \
    --region=$region

Укажите свой SMTP-домен при обновлении экземпляра Looker PSC:

  • INSTANCE_NAME: имя вашего экземпляра Looker (ядро Google Cloud).
  • DOMAIN_1: <полное доменное имя вашего SMTP-сервера>
  • SERVICE_ATTACHMENT_1: URI, полученный при описании вложения службы, smtp-svc-attachment.
  • РЕГИОН: регион, в котором размещен ваш экземпляр Looker (ядро Google Cloud).
gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment  domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION

Чтобы использовать другую службу электронной почты, выберите «Использовать пользовательские настройки почты».

a3fe7a0b66c80402.png

12. Очистка

Удаление компонентов лаборатории из одного терминала Cloud Shell

gcloud compute service-attachments delete smtp-svc-attachment --region=$region -q

gcloud compute forwarding-rules delete producer-smtp-fr --region=$region -q

gcloud compute target-tcp-proxies delete producer-lb-tcp-proxy --region=$region -q

gcloud compute backend-services delete producer-backend-svc --region=$region -q

gcloud compute network-firewall-policies rules delete 2001 --firewall-policy looker-psc-demo-policy --global-firewall-policy -q

gcloud compute network-firewall-policies associations delete --firewall-policy=looker-psc-demo-policy  --name=looker-psc-demo --global-firewall-policy -q

gcloud compute network-firewall-policies delete looker-psc-demo-policy --global -q

gcloud compute routers nats delete looker-psc-demo-natgw --router=looker-psc-demo-cloud-router --router-region=$region -q

gcloud compute routers delete looker-psc-demo-cloud-router --region=$region -q

gcloud compute network-endpoint-groups delete smtp-internet-neg --region=$region -q

gcloud compute addresses delete internet-neg-lb-ip --region=$region -q

gcloud compute networks subnets delete producer-psc-fr-subnet producer-psc-nat-subnet $region-proxy-only-subnet --region=$region -q

gcloud compute networks delete looker-psc-demo -q

13. Поздравления

Поздравляем, вы успешно настроили и проверили подключение к SMTP-сервису Lookers с помощью консоли Looker на базе Private Service Connect.

Вы создали инфраструктуру производителя, узнали, как создать Интернет NEG, службу производителя и конечную точку Looker PSC, которая позволяла бы подключаться к службе источника.

Cosmopup считает, что кодлабы — это здорово!!

c911c127bffdee57.jpeg

Что дальше?

Посмотрите некоторые из этих кодовых лабораторий...

Дальнейшее чтение и видео

Справочная документация

,

1. Введение

В этой лаборатории кода вы создадите южное соединение со службой SMTP Lookers с использованием внутреннего балансировщика нагрузки TCP-прокси и группы конечных точек интернет-сети (NEG) с полным доменным именем Notifications-pa.googleapis.com, вызываемым из Looker PSC в качестве потребителя службы.

Private Service Connect — это возможность сети Google Cloud, которая позволяет потребителям получать частный доступ к управляемым сервисам изнутри своей сети VPC. Аналогичным образом, это позволяет производителям управляемых услуг размещать эти услуги в своих собственных отдельных сетях VPC и предлагать своим потребителям частное соединение. Например, когда вы используете Private Service Connect для доступа к Looker, вы являетесь потребителем услуги, а Google — производителем услуги, как показано на рисунке 1.

Рисунок 1.

145ea4672c3a3b14.png

Южный доступ, также известный как обратный PSC, позволяет потребителю создать опубликованную службу в качестве производителя, чтобы обеспечить доступ Looker к конечным точкам локально, в VPC, к управляемым сервисам и Интернету. Южные соединения могут быть развернуты в любом регионе, независимо от того, где развернут Looker PSC, как показано на рисунке 2.

Рисунок 2.

259493afd914f68b.png

Что вы узнаете

  • Требования к сети
  • Создание службы-производителя Private Service Connect
  • Создайте конечную точку Private Service Connect в Looker
  • Установите подключение к SMTP-сервису Lookers.

Что вам понадобится

def88091b42bfe4d.png

2. Что вы будете строить

Вы создадите сеть-производитель, Looker-PSC-Demo, для развертывания внутреннего балансировщика нагрузки tcp-прокси и Интернет-NEG, опубликованного как услуга через Private Service Connect (PSC). После публикации вы выполните следующие действия для проверки доступа к службе Producer:

  • Создайте конечную точку PSC в Looker, связанную с вложением службы производителя.
  • Используйте консоль Looker для создания настроек почты SMTP.

3. Требования к сети

Ниже приводится разбивка сетевых требований для сети Producer, потребителем в этой кодовой лаборатории является экземпляр Looker PSC.

Компоненты

Описание

VPC (просмотрщик-psc-демо)

Пользовательский режим VPC

Подсеть PSC NAT

Пакеты из потребительской сети VPC преобразуются с использованием исходного NAT (SNAT), так что их исходные IP-адреса источника преобразуются в исходные IP-адреса из подсети NAT в сети VPC производителя.

Подсеть правила пересылки PSC

Используется для выделения IP-адреса региональному внутреннему балансировщику нагрузки TCP-прокси.

Подсеть PSC NEG

Используется для выделения IP-адреса для группы конечных точек сети.

Только прокси-подсеть

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

Интернет НЕГ

Ресурс, используемый для определения внешнего серверного компонента для балансировщика нагрузки. Конечная точка не может быть доступна только через Cloud VPN или Cloud Interconnect.

Серверная служба

Серверная служба действует как мост между балансировщиком нагрузки и серверными ресурсами. В руководстве серверная служба связана с Интернетом NEG.

Облачный маршрутизатор

Cloud NAT использует облачные маршрутизаторы для обеспечения возможностей плоскости управления, но не для управления сеансами BGP.

Облачный NAT

Региональная интернет-сеть NEG использует Cloud NAT для выхода в Интернет.

4. Топология Codelab

a4eb7693cbdbdfd4.png

5. Настройка и требования

Самостоятельная настройка среды

  1. Войдите в Google Cloud Console и создайте новый проект или повторно используйте существующий. Если у вас еще нет учетной записи Gmail или Google Workspace, вам необходимо ее создать .

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

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

Запустить Cloud Shell

Хотя Google Cloud можно управлять удаленно с вашего ноутбука, в этой лаборатории вы будете использовать Google Cloud Shell , среду командной строки, работающую в облаке.

В Google Cloud Console щелкните значок Cloud Shell на верхней правой панели инструментов:

55efc1aaa7a4d3ad.png

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

7ffe5cbb04455448.png

Эта виртуальная машина оснащена всеми необходимыми инструментами разработки. Он предлагает постоянный домашний каталог объемом 5 ГБ и работает в Google Cloud, что значительно повышает производительность сети и аутентификацию. Всю работу в этой лаборатории кода можно выполнять в браузере. Вам не нужно ничего устанавливать.

6. Прежде чем начать

Включить API

В Cloud Shell убедитесь, что идентификатор вашего проекта настроен:

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
echo $project
echo $region

Включите все необходимые службы:

gcloud services enable compute.googleapis.com

7. Создайте сеть VPC производителя.

Сеть VPC

Внутри Cloud Shell выполните следующие действия:

gcloud compute networks create looker-psc-demo --subnet-mode custom

Создание подсетей

Подсеть PSC будет связана с приложением службы PSC для целей трансляции сетевых адресов.

Внутри Cloud Shell создайте подсеть PSC NAT:

gcloud compute networks subnets create producer-psc-nat-subnet --network looker-psc-demo --range 172.16.10.0/28 --region $region --purpose=PRIVATE_SERVICE_CONNECT

В Cloud Shell создайте подсеть правила переадресации производителя:

gcloud compute networks subnets create producer-psc-fr-subnet --network looker-psc-demo --range 172.16.20.0/28 --region $region --enable-private-ip-google-access

Внутри Cloud Shell создайте подсеть только для регионального прокси-сервера производителя:

gcloud compute networks subnets create $region-proxy-only-subnet \
  --purpose=REGIONAL_MANAGED_PROXY \
  --role=ACTIVE \
  --region=$region \
  --network=looker-psc-demo \
  --range=10.10.10.0/24

Создайте общедоступный шлюз NAT.

Шлюз NAT используется региональным внутренним балансировщиком нагрузки TCP-прокси для выхода из Интернета с параметром конфигурации –endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB, поэтому тот же NATGW не будет поддерживать выход из Интернета GCE/GKE. Разверните дополнительный шлюз NAT с параметром –endpoint-types=ENDPOINT_TYPE_VM для выхода в Интернет GCE/GKE.

Внутри Cloud Shell создайте Cloud Router:

gcloud compute routers create looker-psc-demo-cloud-router --network looker-psc-demo --region $region

Внутри Cloud Shell создайте шлюз Cloud NAT, обеспечивающий выход в Интернет для балансировщика нагрузки TCP-прокси:

gcloud compute routers nats create looker-psc-demo-natgw \
  --router=looker-psc-demo-cloud-router \
  --endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB \
  --nat-custom-subnet-ip-ranges=$region-proxy-only-subnet \
  --auto-allocate-nat-external-ips \
  --region=$region

Зарезервируйте IP-адрес балансировщика нагрузки.

Внутри Cloud Shell зарезервируйте внутренний IP-адрес для балансировщика нагрузки:

gcloud compute addresses create internet-neg-lb-ip \
  --region=$region \
  --subnet=producer-psc-fr-subnet

В Cloud Shell просмотрите зарезервированный IP-адрес.

gcloud compute addresses describe internet-neg-lb-ip \
  --region=$region | grep -i address:

Пример вывода:

user@cloudshell$ gcloud compute addresses describe internet-neg-lb-ip   --region=$region | grep -i address:
address: 172.16.20.2

Настроить Интернет NEG

Создайте Internet NEG и установите для параметра –network-endpoint-type значение интернет-fqdn-port (имя хоста и порт, по которым можно получить доступ к вашему внешнему серверу).

Внутри Cloud Shell создайте NEG Интернета, используемый для github.com.

gcloud compute network-endpoint-groups create smtp-internet-neg \
    --network-endpoint-type=INTERNET_FQDN_PORT \
    --network=looker-psc-demo \
    --region=$region

В Cloud Shell обновите Internet NEG smtp-internet-neg, указав полное доменное имя Notifications-pa.googleapis.com и порт 443.

gcloud compute network-endpoint-groups update smtp-internet-neg \
    --add-endpoint="fqdn=notifications-pa.googleapis.com,port=443" \
    --region=$region

Создайте политику сетевого брандмауэра и правила брандмауэра.

Внутри Cloud Shell выполните следующие действия:

gcloud compute network-firewall-policies create looker-psc-demo-policy --global

gcloud compute network-firewall-policies associations create --firewall-policy looker-psc-demo-policy --network looker-psc-demo --name looker-psc-demo --global-firewall-policy

Следующее правило брандмауэра разрешает передачу трафика из диапазона подсети PSC NAT во все экземпляры сети.

Внутри Cloud Shell выполните следующие действия:

gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy looker-psc-demo-policy --description "allow traffic from PSC NAT subnet" --direction INGRESS --src-ip-ranges 172.16.10.0/28 --global-firewall-policy --layer4-configs=tcp

8. Создать службу продюсера

Создание компонентов балансировщика нагрузки

Внутри Cloud Shell выполните следующие действия:

gcloud compute backend-services create producer-backend-svc  --protocol=tcp --region=$region --load-balancing-scheme=INTERNAL_MANAGED

gcloud compute backend-services add-backend producer-backend-svc --network-endpoint-group=smtp-internet-neg --network-endpoint-group-region=$region --region=$region

В Cloud Shell создайте целевой TCP-прокси для маршрутизации запросов к внутренней службе:

gcloud compute target-tcp-proxies create producer-lb-tcp-proxy \
      --backend-service=producer-backend-svc  \
      --region=$region

В следующем синтаксисе создайте правило переадресации (внутренний балансировщик нагрузки TCP-прокси).

В Cloud Shell выполните следующие действия:

gcloud compute forwarding-rules create producer-smtp-fr \
     --load-balancing-scheme=INTERNAL_MANAGED \
     --network-tier=PREMIUM \
     --network=looker-psc-demo \
     --subnet=producer-psc-fr-subnet \
     --address=internet-neg-lb-ip \
     --target-tcp-proxy=producer-lb-tcp-proxy \
     --target-tcp-proxy-region=$region \
     --region=$region \
     --ports=443

Создать служебное приложение

Внутри Cloud Shell создайте вложение службы smtp-svc-attachment:

gcloud compute service-attachments create smtp-svc-attachment --region=$region --producer-forwarding-rule=producer-smtp-fr --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=producer-psc-nat-subnet

Затем получите и запишите вложение службы, указанное в URI selfLink, начиная с проектов, для настройки конечной точки PSC в Looker.

selfLink: projects/<your-project-id>/regions/<your-region>/serviceAttachments/github-svc-attachment-https

Внутри Cloud Shell выполните следующие действия:

gcloud compute service-attachments describe smtp-svc-attachment --region=$region

Пример:

connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2024-10-04T14:56:50.409-07:00'
description: ''
enableProxyProtocol: false
fingerprint: KUPXTZjrGkw=
id: '8947818105173563981'
kind: compute#serviceAttachment
name: smtp-svc-attachment
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$project/regions/$region/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
  high: '23100082169578472'
  low: '8947818105173563981'
reconcileConnections: false
region: https://www.googleapis.com/compute/v1/projects/$project/regions/$region
selfLink: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/serviceAttachments/smtp-svc-attachment
targetService: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/producer-smtp-fr

В Cloud Console перейдите к:

Сетевые службы → Подключение частных служб → Опубликованные службы

b847b5ee22e3582e.png

b9a7d46c8dea4476.png

9. Установите соединение с конечной точкой PSC в Looker.

В следующем разделе вы свяжете вложение службы Producers с Looker Core PSC с помощью флагов –psc-service-attachment в Cloud Shell для одного домена.

В Cloud Shell создайте ассоциацию psc, обновив следующие параметры в соответствии с вашей средой:

  • INSTANCE_NAME: имя вашего экземпляра Looker (ядро Google Cloud).
  • DOMAIN_1: уведомления-pa.googleapis.com
  • SERVICE_ATTACHMENT_1: URI, полученный при описании вложения службы, smtp-svc-attachment.
  • РЕГИОН: регион, в котором размещен ваш экземпляр Looker (ядро Google Cloud).

Внутри Cloud Shell выполните следующие действия:

gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment  domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION

Пример:

gcloud looker instances update looker-psc-instance \
--psc-service-attachment  domain=notifications-pa.googleapis.com,attachment=projects/$project/regions/$region/serviceAttachments/smtp-svc-attachment \
--region=$region

В Cloud Shell убедитесь, что статус подключения serviceAttachments имеет значение «ACCEPTED», обновите его с помощью Looker PSC INSTANCE_NAME.

gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json

Пример:

gcloud looker instances describe looker-psc-instance --region=$region --format=json

Пример:

{
...........................
    "serviceAttachments": [
      {
        "connectionStatus": "ACCEPTED",
        "localFqdn": "notifications-pa.googleapis.com",
        "targetServiceAttachmentUri": "projects/$project/regions/$region/serviceAttachments/smtp-svc-attachment"
      }
    ]
  },
  "pscEnabled": true,
  "state": "ACTIVE",
  "updateTime": "2024-10-04T22:02:31.445761128Z"
}

Проверьте конечную точку PSC в Cloud Console.

В Cloud Console вы можете проверить соединение PSC.

В Cloud Console перейдите к:

Looker → Экземпляр Looker → Подробности

2d4684d722d31e4b.png

а7593db722f86642.png

10. Проверка подключения SMTP

На следующих шагах вы будете использовать консоль Looker для проверки подключения SMTP путем создания теста и отчета SMTP.

Тестовое письмо

Looker отправляет электронную почту, используя SMTP-сервер по умолчанию, Notifications-pa.googleapis.com. Никаких дополнительных действий в этом случае не требуется. Если вы хотите использовать другой SMTP-сервер для уведомлений, обратитесь к разделу «Пользовательская конфигурация SMTP».

Откройте консоль Looker и перейдите к следующему:

Администратор → Платформа → SMTP → Выберите «Отправить тестовое письмо».

aacb31e399cec9b7.png

Ниже приведено тестовое письмо, полученное от Looker:

ff75669fb6993d58.png

Сгенерированный отчет по электронной почте

Перейдите к следующему:

Исследуйте → Активность системы → Использование API → Тип запроса API → Выполнить.

788f6d6d08f5f055.png

Пример вывода:

cebecdf5f2e968d1.png

Чтобы отправить результаты на свою электронную почту, выберите значок шестеренки.

c6ddb0b234b58ed4.png

Выберите Отправить, чтобы открыть новое окно.

15b45c5c1bc1b09b.png

Введите свой адрес электронной почты и выберите «Отправить».

86970bb94247ed62.png

Ниже приведено тестовое письмо, полученное от Looker:

c925c8917f8078b3.png

11. Пользовательская конфигурация SMTP

В этом руководстве SMTP-сервер Looker используется для отправки уведомлений по электронной почте через полное доменное имя Notifications-pa.googleapis.com и Cloud NAT, выполняющий выход в Интернет. Чтобы использовать собственный SMTP-сервер, создайте новое служебное вложение со следующими изменениями:

Обновите NEG в Интернете, указав полное доменное имя SMTP-сервера:

gcloud compute network-endpoint-groups update smtp-internet-neg \
    --add-endpoint="fqdn=<your SMTP FQDN>,port=443" \
    --region=$region

Укажите свой SMTP-домен при обновлении экземпляра Looker PSC:

  • INSTANCE_NAME: имя вашего экземпляра Looker (ядро Google Cloud).
  • DOMAIN_1: <полное доменное имя вашего SMTP-сервера>
  • SERVICE_ATTACHMENT_1: URI, полученный при описании вложения службы, smtp-svc-attachment.
  • РЕГИОН: регион, в котором размещен ваш экземпляр Looker (ядро Google Cloud).
gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment  domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION

Чтобы использовать другую службу электронной почты, выберите «Использовать пользовательские настройки почты».

a3fe7a0b66c80402.png

12. Очистка

Удаление компонентов лаборатории из одного терминала Cloud Shell

gcloud compute service-attachments delete smtp-svc-attachment --region=$region -q

gcloud compute forwarding-rules delete producer-smtp-fr --region=$region -q

gcloud compute target-tcp-proxies delete producer-lb-tcp-proxy --region=$region -q

gcloud compute backend-services delete producer-backend-svc --region=$region -q

gcloud compute network-firewall-policies rules delete 2001 --firewall-policy looker-psc-demo-policy --global-firewall-policy -q

gcloud compute network-firewall-policies associations delete --firewall-policy=looker-psc-demo-policy  --name=looker-psc-demo --global-firewall-policy -q

gcloud compute network-firewall-policies delete looker-psc-demo-policy --global -q

gcloud compute routers nats delete looker-psc-demo-natgw --router=looker-psc-demo-cloud-router --router-region=$region -q

gcloud compute routers delete looker-psc-demo-cloud-router --region=$region -q

gcloud compute network-endpoint-groups delete smtp-internet-neg --region=$region -q

gcloud compute addresses delete internet-neg-lb-ip --region=$region -q

gcloud compute networks subnets delete producer-psc-fr-subnet producer-psc-nat-subnet $region-proxy-only-subnet --region=$region -q

gcloud compute networks delete looker-psc-demo -q

13. Поздравления

Поздравляем, вы успешно настроили и проверили подключение к SMTP-сервису Lookers с помощью консоли Looker на базе Private Service Connect.

Вы создали инфраструктуру производителя, узнали, как создать Интернет NEG, службу производителя и конечную точку Looker PSC, которая позволяла бы подключаться к службе источника.

Cosmopup считает, что кодлабы — это здорово!!

c911c127bffdee57.jpeg

Что дальше?

Посмотрите некоторые из этих кодовых лабораторий...

Дальнейшее чтение и видео

Справочная документация