Vertex AI به طور خصوصی با استفاده از PSC به نقاط پایانی پیش بینی آنلاین دسترسی دارد

1. مقدمه

میزبان‌های داخلی می‌توانند به صورت بومی از طریق اینترنت عمومی (گزینه 1) یا با استفاده از Cloud VPN یا Cloud Interconnect با Private Service Connect (PSC) (گزینه 2) از شبکه داخلی شما به یک پیش‌بینی آنلاین برسند، که هر دو رمزگذاری SSL/TLS را ارائه می‌کنند. . اتصال ترکیبی به پیش‌بینی آنلاین از طریق اتصال متقابل کارایی بیشتری نسبت به اینترنت دارد، بنابراین برای کاربردهای حیاتی همانطور که در شکل 1 نشان داده شده است توصیه می‌شود.

در این آموزش نحوه استفاده از VPN با قابلیت دسترسی بالا (HA VPN) برای دسترسی به پیش‌بینی آنلاین خصوصی بین دو شبکه VPC را نشان خواهیم داد که می‌تواند به عنوان پایه‌ای برای اتصال خصوصی چند ابری و داخلی باشد.

توجه داشته باشید، Vertex Online Prediction یک نقطه پایانی عمومی است، بنابراین می‌خواهید دسترسی را با استفاده از کنترل‌های سرویس VPC (VPC-SC) برای ایجاد محیط‌های امن برای اجازه یا رد دسترسی به Vertex و سایر Googleapis محدود کنید. این آموزش VPC-SC را پوشش نمی دهد، برای جزئیات بیشتر به کنترل های سرویس VPC با Vertex AI مراجعه کنید.

24a07ba49a7bcb16.png

چیزی که خواهی ساخت

شما یک شبکه VPC به نام on-prem-vpc راه اندازی خواهید کرد تا یک محیط داخلی را نشان دهد. برای استقرار شما، on-prem-vpc وجود نخواهد داشت، در عوض از شبکه ترکیبی به مرکز داده داخلی یا ارائه‌دهنده ابری شما استفاده می‌شود.

شما می خواهید یک معماری جامع Private Service Connect ایجاد کنید که دسترسی به پیش بینی آنلاین به صورت عمومی از طریق Cloud NAT و خصوصی با استفاده از PSC از طریق HA VPN را با توجه به جزئیات زیر نشان می دهد.

b545c808b366341a.png

هنگامی که پیش‌بینی آنلاین در پروژه Google Cloud مستقر شد، موارد استفاده زیر بررسی می‌شوند:

دسترسی عمومی به پیش بینی آنلاین شامل موارد زیر است:

  • یک نمونه GCE (nat-client) ایجاد کنید که از NAT برای دسترسی به اینترنت خروجی استفاده کند
  • از CURL برای استنتاج در برابر مدل استفاده کنید
  • از TCPDUMP برای تأیید اینکه پیش بینی آنلاین از طریق یک VIP عمومی قابل دسترسی است استفاده کنید

دسترسی خصوصی به پیش بینی آنلاین شامل موارد زیر است:

  • یک مدل را در نقطه پایانی پیش‌بینی آنلاین aVertex در پروژه مستقر کنید
  • یک نقطه پایانی Private Service Connect (Googleapis) در aiml-vpc ایجاد کنید
  • آدرس IP PSC را از طریق روتر ابری به عنوان یک تبلیغ سفارشی به VPC اولیه صادر کنید
  • یک نمونه GCE (مشتری خصوصی) ایجاد کنید و فایل etc/hosts را با IP نقطه پایانی PSC به روز کنید.
  • از CURL برای استنتاج در برابر مدل استفاده کنید
  • از TCPDUMP استفاده کنید تا تأیید کنید که پیش‌بینی آنلاین از طریق آدرس IP نقطه پایانی PSC قابل دسترسی است

چیزی که یاد خواهید گرفت

  • نحوه ایجاد یک نقطه پایانی اتصال سرویس خصوصی
  • چگونه IP Endpoint PSC را از طریق Cloud Router تبلیغ کنیم
  • نحوه استفاده از TCPDUMP برای اعتبارسنجی دسترسی پیش‌بینی آنلاین، هم عمومی و هم خصوصی

آنچه شما نیاز دارید

  • پروژه Google Cloud

مجوزهای IAM

مدیریت شبکه محاسباتی

ویرایشگر فهرست خدمات

مدیر DNS

مدیر شبکه

مدیر سهمیه

ادمین نوت بوک

کاربر حساب سرویس

مدیر ذخیره سازی

کاربر Vertex AI

مدیریت حساب خدمات

2. قبل از شروع

برای پشتیبانی از آموزش، پروژه را به روز کنید

این آموزش از $variables برای کمک به پیاده سازی پیکربندی gcloud در Cloud Shell استفاده می کند.

در داخل Cloud Shell موارد زیر را انجام دهید:

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid

3. Services را فعال کنید

در داخل Cloud Shell موارد زیر را انجام دهید:

gcloud services enable dns.googleapis.com
gcloud services enable aiplatform.googleapis.com
gcloud services enable iam.googleapis.com 
gcloud services enable compute.googleapis.com 
gcloud services enable notebooks.googleapis.com

4. راه اندازی aiml-vpc

aiml-vpc را ایجاد کنید

در داخل Cloud Shell موارد زیر را انجام دهید:

gcloud compute networks create aiml-vpc --project=$projectid --subnet-mode=custom

زیرشبکه نوت بوک مدیریت شده توسط کاربر را ایجاد کنید

در داخل Cloud Shell موارد زیر را انجام دهید:

gcloud compute networks subnets create workbench-subnet --project=$projectid --range=172.16.10.0/28 --network=aiml-vpc --region=us-central1 --enable-private-ip-google-access

روتر ابری و پیکربندی NAT

Cloud NAT در آموزش برای دانلود بسته نرم افزار نوت بوک استفاده می شود زیرا نمونه نوت بوک مدیریت شده توسط کاربر یک آدرس IP خارجی ندارد. Cloud NAT همچنین قابلیت‌های egress NAT را ارائه می‌کند، به این معنی که میزبان‌های اینترنتی مجاز به برقراری ارتباط با یک نوت بوک مدیریت‌شده توسط کاربر نیستند و این امر باعث امنیت بیشتر آن می‌شود.

در داخل Cloud Shell، روتر ابر منطقه ای ایجاد کنید.

gcloud compute routers create cloud-router-us-central1-aiml-nat --network aiml-vpc --region us-central1

در داخل Cloud Shell، دروازه منطقه ای ابر nat را ایجاد کنید.

gcloud compute routers nats create cloud-nat-us-central1 --router=cloud-router-us-central1-aiml-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1

5. راه اندازی on-prem-vpc

on-prem-vpc را ایجاد کنید

در داخل Cloud Shell موارد زیر را انجام دهید:

gcloud compute networks create on-prem-vpc --project=$projectid --subnet-mode=custom

nat-subnet را ایجاد کنید

در داخل Cloud Shell موارد زیر را انجام دهید:

gcloud compute networks subnets create nat-subnet --project=$projectid --range=192.168.10.0/28 --network=on-prem-vpc --region=us-central1

خصوصی-ip-subnet را ایجاد کنید

در داخل Cloud Shell موارد زیر را انجام دهید:

gcloud compute networks subnets create private-ip-subnet --project=$projectid --range=192.168.20.0/28 --network=on-prem-vpc --region=us-central1

روتر ابری و پیکربندی NAT

Cloud NAT در آموزش برای دانلود بسته نرم افزاری استفاده شده است. Cloud NAT همچنین قابلیت‌های egress NAT را ارائه می‌کند، به این معنی که میزبان‌های اینترنتی مجاز به شروع ارتباط با محاسبات نیستند و این امر باعث امنیت بیشتر آن می‌شود.

در داخل Cloud Shell، روتر ابر منطقه ای ایجاد کنید.

gcloud compute routers create cloud-router-us-central1-on-prem-nat --network on-prem-vpc --region us-central1

در داخل Cloud Shell، دروازه منطقه ای ابر nat را ایجاد کنید.

gcloud compute routers nats create cloud-nat-us-central1 --router=cloud-router-us-central1-on-prem-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1

6. نقطه پایانی Private Service Connect را ایجاد کنید

در بخش زیر، یک نقطه پایانی Private Service Connect (PSC) ایجاد می‌کنید که برای دسترسی به Vertex API از on-prem-vpc استفاده می‌شود. آدرس IP PSC 100.100.10.10 از aiml-vpc-cloud-router-vpn به عنوان یک تبلیغ روتر سفارشی در شبکه داخلی در مرحله آتی تبلیغ خواهد شد.

از Cloud Shell

gcloud compute addresses create psc-ip \
    --global \
    --purpose=PRIVATE_SERVICE_CONNECT \
    --addresses=100.100.10.10 \
    --network=aiml-vpc

نقطه پایانی PSC را ایجاد کنید

از Cloud Shell

gcloud compute forwarding-rules create pscvertex \
    --global \
    --network=aiml-vpc \
    --address=psc-ip \
    --target-google-apis-bundle=all-apis

نقاط پایانی پیکربندی شده Private Service Connect را فهرست کنید

از Cloud Shell

gcloud compute forwarding-rules list  \
--filter target="(all-apis OR vpc-sc)" --global

نقاط پایانی پیکربندی شده Private Service Connect را شرح دهید

از Cloud Shell

gcloud compute forwarding-rules describe \
    pscvertex --global

7. اتصال هیبریدی

در بخش زیر، یک Cloud Router ایجاد می کنید که به شما امکان می دهد با استفاده از پروتکل دروازه مرزی (BGP) مسیرها را بین Virtual Private Cloud (VPC) و شبکه همتای خود به صورت پویا مبادله کنید.

Cloud Router می تواند یک جلسه BGP را روی یک تونل Cloud VPN برای اتصال شبکه های شما راه اندازی کند. به طور خودکار محدوده آدرس IP زیرشبکه جدید را می آموزد و آنها را به شبکه همتای شما اعلام می کند.

در این آموزش شما HA VPN را بین aiml-vpc و on-prem-vpc مستقر خواهید کرد.

دروازه HA VPN را برای aiml-vpc ایجاد کنید

هنگامی که هر دروازه ایجاد می شود، دو آدرس IPv4 خارجی به طور خودکار اختصاص می یابد، یکی برای هر رابط دروازه.

در داخل Cloud Shell، دروازه HA VPN را ایجاد کنید

gcloud compute vpn-gateways create aiml-vpn-gw \
   --network=aiml-vpc\
   --region=us-central1

دروازه HA VPN را برای on-prem-vpc ایجاد کنید

هنگامی که هر دروازه ایجاد می شود، دو آدرس IPv4 خارجی به طور خودکار اختصاص می یابد، یکی برای هر رابط دروازه. این آدرس های IP را یادداشت کنید تا بعداً در مراحل پیکربندی استفاده کنید.

در داخل Cloud Shell، دروازه HA VPN را ایجاد کنید.

gcloud compute vpn-gateways create on-prem-vpn-gw \
   --network=on-prem-vpc\
   --region=us-central1

اعتبار سنجی ایجاد دروازه HA VPN

با استفاده از کنسول، به مسیر HYBRID CONNECTIVITY → VPN → CLOUD VPN GATEWAYS بروید و تأیید کنید که IP های دروازه ایجاد شده اند.

66312b1b53c233d7.png

روتر ابری را برای aiml-vpc ایجاد کنید

در داخل Cloud Shell، Cloud Router واقع در us-central1 را ایجاد کنید

gcloud compute routers create aiml-cr-us-central1 \
   --region=us-central1 \
   --network=aiml-vpc\
   --asn=65001

روتر ابری را برای on-prem-vpc ایجاد کنید

در داخل Cloud Shell، Cloud Router واقع در us-central1 را ایجاد کنید

gcloud compute routers create on-prem-cr-us-central1 \
   --region=us-central1 \
   --network=on-prem-vpc \
   --asn=65002

تونل های VPN را برای aiml-vpc ایجاد کنید

شما دو تونل VPN در هر دروازه HA VPN ایجاد خواهید کرد.

ایجاد VPN tunnel0

در داخل Cloud Shell، tunnel0 ایجاد کنید:

gcloud compute vpn-tunnels create aiml-vpc-tunnel0 \
    --peer-gcp-gateway on-prem-vpn-gw \
    --region us-central1 \
    --ike-version 2 \
    --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
    --router aiml-cr-us-central1 \
    --vpn-gateway aiml-vpn-gw \
    --interface 0

ایجاد VPN tunnel1

در داخل Cloud Shell، tunnel1 ایجاد کنید:

gcloud compute vpn-tunnels create aiml-vpc-tunnel1 \
    --peer-gcp-gateway on-prem-vpn-gw \
    --region us-central1 \
    --ike-version 2 \
    --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
    --router aiml-cr-us-central1 \
    --vpn-gateway aiml-vpn-gw \
    --interface 1

تونل های VPN را برای on-prem-vpc ایجاد کنید

شما دو تونل VPN در هر دروازه HA VPN ایجاد خواهید کرد.

ایجاد VPN tunnel0

در داخل Cloud Shell، tunnel0 ایجاد کنید:

gcloud compute vpn-tunnels create on-prem-tunnel0 \
    --peer-gcp-gateway aiml-vpn-gw \
    --region us-central1 \
    --ike-version 2 \
    --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
    --router on-prem-cr-us-central1 \
    --vpn-gateway on-prem-vpn-gw \
    --interface 0

ایجاد VPN tunnel1

در داخل Cloud Shell، tunnel1 ایجاد کنید:

gcloud compute vpn-tunnels create on-prem-tunnel1 \
    --peer-gcp-gateway aiml-vpn-gw \
    --region us-central1 \
    --ike-version 2 \
    --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
    --router on-prem-cr-us-central1 \
    --vpn-gateway on-prem-vpn-gw \
    --interface 1

اعتبار سنجی ایجاد تونل vpn

با استفاده از کنسول، به مسیر HYBRID CONNECTIVITY → VPN → CLOUD VPN TUNNELS بروید.

e8e13ebaed09f1.png

8. همسایگان BGP را ایجاد کنید

ایجاد جلسات BGP

در این بخش، رابط های Cloud Router و همتایان BGP را پیکربندی می کنید.

یک رابط BGP و peering برای aiml-vpc ایجاد کنید

در داخل Cloud Shell، رابط BGP را ایجاد کنید:

gcloud compute routers add-interface aiml-cr-us-central1 \
    --interface-name if-tunnel0-to-onprem \
    --ip-address 169.254.1.1 \
    --mask-length 30 \
    --vpn-tunnel aiml-vpc-tunnel0 \
    --region us-central1

در داخل Cloud Shell، همتای BGP را ایجاد کنید:

gcloud compute routers add-bgp-peer aiml-cr-us-central1 \
    --peer-name bgp-on-premises-tunnel0 \
    --interface if-tunnel1-to-onprem \
    --peer-ip-address 169.254.1.2 \
    --peer-asn 65002 \
    --region us-central1

در داخل Cloud Shell، رابط BGP را ایجاد کنید:

gcloud compute routers add-interface aiml-cr-us-central1 \
    --interface-name if-tunnel1-to-onprem \
    --ip-address 169.254.2.1 \
    --mask-length 30 \
    --vpn-tunnel aiml-vpc-tunnel1 \
    --region us-central1

در داخل Cloud Shell، همتای BGP را ایجاد کنید:

gcloud compute routers add-bgp-peer aiml-cr-us-central1 \
    --peer-name bgp-on-premises-tunnel1 \
    --interface if-tunnel2-to-onprem \
    --peer-ip-address 169.254.2.2 \
    --peer-asn 65002 \
    --region us-central1

یک رابط BGP و همتاسازی برای on-prem-vpc ایجاد کنید

در داخل Cloud Shell، رابط BGP را ایجاد کنید:

gcloud compute routers add-interface on-prem-cr-us-central1 \
    --interface-name if-tunnel0-to-aiml-vpc\
    --ip-address 169.254.1.2 \
    --mask-length 30 \
    --vpn-tunnel on-prem-tunnel0 \
    --region us-central1

در داخل Cloud Shell، همتای BGP را ایجاد کنید:

gcloud compute routers add-bgp-peer on-prem-cr-us-central1 \
    --peer-name bgp-aiml-vpc-tunnel0 \
    --interface if-tunnel1-to-aiml-vpc\
    --peer-ip-address 169.254.1.1 \
    --peer-asn 65001 \
    --region us-central1

در داخل Cloud Shell، رابط BGP را ایجاد کنید:

gcloud compute routers add-interface on-prem-cr-us-central1 \
    --interface-name if-tunnel1-to-aiml-vpc\
    --ip-address 169.254.2.2 \
    --mask-length 30 \
    --vpn-tunnel on-prem-tunnel1 \
    --region us-central1

در داخل Cloud Shell، همتای BGP را ایجاد کنید:

gcloud compute routers add-bgp-peer on-prem-cr-us-central1 \
    --peer-name bgp-aiml-vpc-tunnel1\
    --interface if-tunnel2-to-aiml-vpc\
    --peer-ip-address 169.254.2.1 \
    --peer-asn 65001 \
    --region us-central1

برای مشاهده جزئیات تونل VPN به مسیر Hybrid CONNECTIVITY → VPN بروید.

cb91b4476a88acd3.png

اعتبارسنجی مسیرهای آموخته شده aiml-vpc از طریق HA VPN

با استفاده از کنسول، به شبکه VPC → شبکه های VPC → aiml-vpc → ROUTES → REGION → US-CENTRAL1 → VIEW بروید.

مشاهده مسیرهای aiml-vpc از nat-subnet on-prem-vpc و private-ip-subnet

f407ed6e1a6233db.png

تأیید کنید که on-prem-vpc زیرشبکه workbench را از طریق HA-VPN یاد گرفته است

با استفاده از کنسول، به شبکه VPC → شبکه های VPC → on-prem-vpc → ROUTES → REGION → US-CENTRAL1 → VIEW بروید.

7957e5d898a9e7e0.png

9. تبلیغات مسیر سفارشی aiml-vpc را ایجاد کنید

Private Service Connect Endpoint IP به طور خودکار توسط روتر ابری aiml-cr-us-central1 تبلیغ نمی شود زیرا زیرشبکه در VPC پیکربندی نشده است.

در عوض، باید یک تبلیغ مسیر سفارشی از مسیریاب ابر مرکزی aiml-cr-us برای آدرس IP پایانی 100.100.10.10 ایجاد کنید که در محیط داخلی از طریق BGP به on-prem-vpc تبلیغ می شود.

از کنسول به مسیر HYBRID CONNECTIVITY → CLOUD ROUTERS → aiml-cr-us-central1 بروید، سپس EDIT را انتخاب کنید.

c8fb02ed59a5b068.png

در قسمت Advertised routes گزینه Create custom routes را انتخاب کنید و فیلدها را بر اساس مثال زیر به روز کنید و DONE را انتخاب کنید و سپس SAVE را بزنید.

5996464e3aae0665.png

f799082ab2cd7e31.png

اعتبار سنجی

تأیید کنید که on-prem-vpc آدرس IP پایانی PSC را از طریق HA-VPN یاد گرفته است

با استفاده از کنسول، به شبکه VPC → شبکه های VPC → on-prem-vpc → ROUTES → REGION → US-CENTRAL1 → VIEW بروید.

1b42673e6f940bf2.png

10. تبلیغات مسیر سفارشی را روی prem-vpc ایجاد کنید

روتر ابری on-prem-vpc همه زیرشبکه ها را به طور پیش فرض تبلیغ می کند، اما فقط به زیرشبکه خصوصی IP نیاز است.

در بخش زیر، تبلیغات مسیر را از روتر ابری on-prem-cr-us-central1 به روز کنید.

از کنسول به مسیر HYBRID CONNECTIVITY → CLOUD ROUTERS → on-prem-cr-us-central1 بروید، سپس EDIT را انتخاب کنید.

bd96bde9550d516a.png

در قسمت Advertised routes گزینه Create custom routes را انتخاب کنید و فیلدها را بر اساس مثال زیر به روز کنید و DONE را انتخاب کنید و سپس SAVE را بزنید.

f8b61f669a9cfeef.png

اعتبار سنجی

تأیید کنید که aiml-vpc مسیر private-ip-subnet را از on-prem-vpc یاد گرفته است.

با استفاده از کنسول، به شبکه VPC → شبکه های VPC → aiml-vpc → ROUTES → REGION → US-CENTRAL1 → VIEW بروید.

2b1a7a5f918e9f50.png

۱۱. یک حساب سرویس مدیریت شده توسط کاربر (نمونه‌های GCE) ایجاد کنید

برای ارائه یک سطح خوب از کنترل به Vertex API یک حساب سرویس مدیریت شده توسط کاربر مورد نیاز است که برای نمونه های nat و کلاینت خصوصی اعمال می شود. پس از ایجاد، مجوزهای حساب سرویس را می توان بر اساس نیازهای تجاری تغییر داد. در این آموزش، حساب سرویس مدیریت شده توسط کاربر، vertex-sa، نقش های زیر اعمال می شود:

قبل از ادامه، باید API حساب سرویس .

در داخل Cloud Shell، حساب سرویس را ایجاد کنید.

gcloud iam service-accounts create gce-vertex-sa \
    --description="service account for vertex" \
    --display-name="gce-vertex-sa"

در داخل Cloud Shell، حساب سرویس را با مدیر نمونه محاسبه نقش به‌روزرسانی کنید

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:gce-vertex-sa@$projectid.iam.gserviceaccount.com" --role="roles/compute.instanceAdmin.v1"

در داخل Cloud Shell، حساب سرویس را با نقش Vertex AI User به روز کنید

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:gce-vertex-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"

12. ایجاد یک حساب سرویس مدیریت شده توسط کاربر (Notebook)

در بخش زیر، یک حساب کاربری سرویس مدیریت شده توسط کاربر ایجاد می‌کنید که با Vertex Workbench (Notebook) مورد استفاده در آموزش مرتبط می‌شود.

در آموزش، حساب سرویس دارای نقش های زیر خواهد بود:

در داخل Cloud Shell، حساب سرویس را ایجاد کنید.

gcloud iam service-accounts create user-managed-notebook-sa \
    --display-name="user-managed-notebook-sa"

در داخل Cloud Shell، حساب سرویس را با نقش Storage Admin به‌روزرسانی کنید.

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/storage.admin"

در داخل Cloud Shell، حساب سرویس را با نقش Vertex AI User به روز کنید.

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"

در داخل Cloud Shell، حساب سرویس را با نقش Artifact Registry Admin به‌روزرسانی کنید.

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/artifactregistry.admin"

در داخل Cloud Shell، حساب سرویس را فهرست کنید و آدرس ایمیلی را که هنگام ایجاد نوت بوک مدیریت شده توسط کاربر استفاده می شود، یادداشت کنید.

gcloud iam service-accounts list

13. نمونه های آزمایشی را ایجاد کرد

در بخش زیر، نمونه‌های آزمایشی برای اعتبارسنجی روش‌های مختلف برای دستیابی به Vertex API ایجاد می‌کنید، به‌ویژه:

  • نمونه، nat-client, از Cloud NAT برای حل و فصل Vertex AI استفاده می کند، بنابراین به نقطه پایانی پیش بینی آنلاین از طریق اینترنت دسترسی خواهد داشت.
  • به عنوان مثال، private-client ، از Private Service Connect IP 100.100.10.10 برای دسترسی به نقطه پایانی پیش بینی آنلاین از طریق HA-VPN استفاده می کند.

در داخل Cloud Shell نمونه nat-client را ایجاد کنید.

gcloud compute instances create nat-client \
    --zone=us-central1-a \
    --image-family=debian-11 \
    --image-project=debian-cloud \
    --subnet=nat-subnet \
    --service-account=vertex-sa@$projectid.iam.gserviceaccount.com \
    --scopes=https://www.googleapis.com/auth/cloud-platform \
    --no-address \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt-get install tcpdump dnsutils -y"

Inside Cloud Shell نمونه private-client را ایجاد کنید.

gcloud compute instances create private-client \
    --zone=us-central1-a \
    --image-family=debian-11 \
    --image-project=debian-cloud \
    --subnet=private-ip-subnet \
    --service-account=vertex-sa@$projectid.iam.gserviceaccount.com \
    --scopes=https://www.googleapis.com/auth/cloud-platform \
    --no-address \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt-get install tcpdump dnsutils -y"

برای اجازه دادن به پروکسی آگاه از هویت (IAP) برای اتصال به نمونه های VM شما ، یک قانون فایروال ایجاد کنید که:

  • برای تمام نمونه های VM که می خواهید با استفاده از IAP در دسترس باشند، اعمال می شود.
  • به ترافیک ورودی از محدوده IP 35.235.240.0/20 اجازه می دهد. این محدوده شامل تمام آدرس های IP است که IAP برای ارسال TCP استفاده می کند.

در داخل Cloud Shell، قانون فایروال IAP را ایجاد کنید.

gcloud compute firewall-rules create ssh-iap-on-prem-vpc \
    --network on-prem-vpc \
    --allow tcp:22 \
    --source-ranges=35.235.240.0/20

14. یک نوت بوک مدیریت شده توسط کاربر ایجاد کنید

API نوت بوک را

در بخش زیر، یک نوت بوک مدیریت شده توسط کاربر ایجاد کنید که دارای حساب کاربری سرویس قبلی، user-managed-notebook-sa ​​باشد.

Inside Cloud Shell نمونه خصوصی مشتری را ایجاد کنید.

gcloud notebooks instances create workbench-tutorial \
      --vm-image-project=deeplearning-platform-release \
      --vm-image-family=common-cpu-notebooks \
      --machine-type=n1-standard-4 \
      --location=us-central1-a \
      --subnet-region=us-central1 \
      --subnet=workbench-subnet \
      --no-public-ip    --service-account=user-managed-notebook-sa@$projectid.iam.gserviceaccount.com

15. مدل و پیش بینی آنلاین را مستقر کنید

در بخش زیر، از نرم‌افزار کد ارائه‌شده، Vertex AI: استفاده از روتین‌های پیش‌بینی سفارشی با Sklearn برای پیش‌پردازش و ارسال داده‌های فرآیند برای پیش‌بینی‌ها با بخش 7 شروع می‌شود، زیرا قبلاً یک دفترچه در مرحله قبل ایجاد کرده‌اید. پس از استقرار مدل، برای شروع بخش بعدی به آموزش بازگردید.

ee68b7ba0cfd2746.png

16. اعتبار دسترسی به Vertex API را از طریق اینترنت تأیید کنید

در بخش زیر، وارد instance، nat-client می‌شوید و اتصال به Vertex AI را از طریق استفاده از dig و tcpdump در برابر دامنه us-central1-aiplatform.googleapis.com مورد استفاده برای حل و فصل Vertex AI تأیید می‌کنید.

با استفاده از IAP در Cloud Shell به nat-client وارد شوید تا اتصال به Vertex API را با انجام حفاری در برابر دامنه راس us-central1-aiplatform.googleapis.com تأیید کنید.

gcloud compute ssh nat-client --project=$projectid --zone=us-central1-a --tunnel-through-iap

حفاری را اجرا کنید.

dig us-central1-aiplatform.googleapis.com

به عنوان مثال، به IP های عمومی در پاسخ DNS توجه کنید.

user@nat-client:~$ dig us-central1-aiplatform.googleapis.com

; <<>> DiG 9.16.42-Debian <<>> us-central1-aiplatform.googleapis.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56761
;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;us-central1-aiplatform.googleapis.com. IN A

;; ANSWER SECTION:
us-central1-aiplatform.googleapis.com. 300 IN A 108.177.111.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.250.1.95
us-central1-aiplatform.googleapis.com. 300 IN A 108.177.121.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.250.103.95
us-central1-aiplatform.googleapis.com. 300 IN A 108.177.120.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.251.171.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.250.159.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.251.120.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.251.161.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.251.172.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.126.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.70.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.132.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.201.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.202.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.69.95

;; Query time: 4 msec
;; SERVER: 169.254.169.254#53(169.254.169.254)
;; WHEN: Thu Jun 29 01:35:57 UTC 2023
;; MSG SIZE  rcvd: 322

از سیستم‌عامل nat-client، tcpdump را اجرا کنید تا رزولوشن DNS را هنگام اجرای یک curl در برابر پیش‌بینی آنلاین تأیید کنید.

 sudo tcpdump -i any port 53 -n

مثال:

user@nat-client:~$ sudo tcpdump -i any port 53 -n 
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes

با انتخاب "+" ترمینال جدید Cloud Shell را باز کنید. پس از باز شدن تب جدید، متغیر نام پروژه را به روز کنید.

در داخل Cloud Shell، متغیر نام پروژه را به روز کنید.

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid

در داخل Cloud Shell دو، یک نمونه ssh به nat-client انجام دهید.

gcloud compute ssh --zone "us-central1-a" "nat-client" --project "$projectid"

در بخش زیر، یک فایل instances.json با استفاده از ویرایشگر sudo VI یا nano ایجاد می‌کنید و رشته داده‌ای را که برای بدست آوردن پیش‌بینی از مدل مستقر شده استفاده می‌شود، وارد می‌کنید.

از سیستم عامل nat-client، یک instances.json f ile با رشته داده زیر ایجاد کنید:

{"instances": [
  [0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
  [0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}

مثال:

user@nat-client:$ more instances.json 
{"instances": [
  [0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
  [0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}

user@nat-client:$

شناسه نقطه پایانی پیش‌بینی آنلاین خود را از کنسول Cloud دریافت کنید که در مراحل بعدی استفاده خواهد شد.

به VERTEX AI → ONLINE PREDICTION بروید

237d413ccde1e95b.png

از سیستم عامل nat-client، متغیرهای زیر را ایجاد کنید:

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"

مثال:

ENDPOINT_ID="3328226095324463104"

از سیستم عامل nat-client، برای به دست آوردن پاسخ از مدل، یک curl انجام دهید.

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json

به عنوان مثال، به پیش بینی موفق توجه کنید.

user@nat-client$ curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json
{
  "predictions": [
    "$479.0",
    "$586.0"
  ],
  "deployedModelId": "1949163636186415104",
  "model": "projects/234086459238/locations/us-central1/models/947543727654567936",
  "modelDisplayName": "diamonds-cpr",
  "modelVersionId": "1"
}

17. اعتبار سنجی - دسترسی به اینترنت به Vertex API

اکنون که پیش‌بینی را اجرا کردید، بیایید نگاهی به نتایج TCPDUMP (ترمینال 1) بیندازیم که نمونه nat-client (192.168.10.2) را نشان می‌دهد که یک پرس و جو DNS را در سرور dns محلی 169.254.169.254 برای دامنه Vertex AI us- انجام می‌دهد. central1-aiplatform.googleapis.com . نتیجه پرس و جو DNS آدرس های IP مجازی عمومی (VIPS) برای Vertex API است که در زیر ذکر شده است:

user@nat-client:~$ sudo tcpdump -i any port 53 -n
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
20:05:09.260937 ens4  Out IP 192.168.10.2.40782 > 169.254.169.254.53: 47190+ A? oauth2.googleapis.com. (39)
20:05:09.260946 ens4  Out IP 192.168.10.2.40782 > 169.254.169.254.53: 28075+ AAAA? oauth2.googleapis.com. (39)
20:05:09.263556 ens4  In  IP 169.254.169.254.53 > 192.168.10.2.40782: 28075 4/0/0 AAAA 2607:f8b0:4001:c34::5f, AAAA 2607:f8b0:4001:c54::5f, AAAA 2607:f8b0:4001:c16::5f, AAAA 2607:f8b0:4001:c17::5f (151)
20:05:09.265018 ens4  In  IP 169.254.169.254.53 > 192.168.10.2.40782: 47190 16/0/0 A 74.125.201.95, A 74.125.202.95, A 74.125.69.95, A 64.233.183.95, A 173.194.193.95, A 173.194.194.95, A 173.194.195.95, A 173.194.196.95, A 173.194.197.95, A 64.233.191.95, A 173.194.74.95, A 173.194.192.95, A 209.85.145.95, A 209.85.146.95, A 209.85.147.95, A 142.250.125.95 (295)
20:05:09.474478 ens4  Out IP 192.168.10.2.57356 > 169.254.169.254.53: 36008+ A? us-central1-aiplatform.googleapis.com. (55)
20:05:09.474488 ens4  Out IP 192.168.10.2.57356 > 169.254.169.254.53: 47020+ AAAA? us-central1-aiplatform.googleapis.com. (55)
20:05:09.477190 ens4  In  IP 169.254.169.254.53 > 192.168.10.2.57356: 36008 16/0/0 A 173.194.194.95, A 173.194.195.95, A 173.194.196.95, A 173.194.197.95, A 173.194.74.95, A 173.194.192.95, A 209.85.145.95, A 209.85.146.95, A 209.85.147.95, A 142.250.125.95, A 142.250.136.95, A 142.250.148.95, A 209.85.200.95, A 209.85.234.95, A 142.250.152.95, A 142.250.128.95 (311)
20:05:09.478607 ens4  In  IP 169.254.169.254.53 > 192.168.10.2.57356: 47020 4/0/0 AAAA 2607:f8b0:4001:c1b::5f, AAAA 2607:f8b0:4001:c0c::5f, AAAA 2607:f8b0:4001:c0e::5f, AAAA 2607:f8b0:4001:c1e::5f (167)

18. دسترسی خصوصی به APIهای Vertex را فعال کنید

در بخش زیر، با استفاده از Private Service Connect از طریق شبکه ترکیبی (HA VPN) به API های Vertex دسترسی خواهید داشت تا به صورت خصوصی به پیش بینی آنلاین برسید. در مثال استفاده شده در آموزش، فایل /etc/hosts را در نمونه private-client به روز خواهید کرد.

در محیط داخلی خود، به‌روزرسانی یک یا تعداد انگشت شماری از فایل‌های /etc/hosts ماشین‌ها برای آزمایش مناسب است، اما برای محیط‌های تولیدی و مقیاس بزرگ، ایجاد یک منطقه ارسال جدید با استفاده از نقطه پایانی PSC FQDN مطلوب‌تر است.

به عنوان مثال، نقطه پایانی psc ایجاد شده در آموزش، pscvertex نامیده می شود که به pscvertex.p.googleapis.com ترجمه می شود، هنگام استفاده از نقطه پایانی برای راس، FQDN را با سرویسی به عنوان مثال us-central1-aiplatform-pscvertex.p.googleapis اضافه کنید. com

به‌روزرسانی DNS داخلی با نقطه پایانی PSC همچنین مستلزم بازسازی برنامه‌های محلی برای فراخوانی FDQN است .

مشتریانی که می توانند برای استفاده از یک نقطه پایانی سفارشی پیکربندی شوند، می توانند از نام های DNS p.googleapis.com برای ارسال درخواست ها به نقطه پایانی استفاده کنند.

برای اطلاعات در مورد پیکربندی آن برای استفاده از نقاط پایانی سفارشی، به مستندات کتابخانه مشتری یا مشتری خود مراجعه کنید. به عنوان مثال:

  • Python: می توانید api_endpoint را در کلاس Client options در بسته google-api-core پیکربندی کنید.
  • Go: می توانید WithEndpoint را در بسته Client options در بسته api پیکربندی کنید.
  • gcloud: می توانید api_endpoint_overrides را پیکربندی کنید

با انتخاب "+" ترمینال جدید Cloud Shell را باز کنید. پس از باز شدن تب جدید، متغیر نام پروژه را به روز کنید.

از Cloud Shell.

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid

با استفاده از IAP در یک Cloud Shell جدید به سرویس گیرنده خصوصی وارد شوید تا اتصال به Vertex API را با انجام حفاری در برابر دامنه راس us-central1-aiplatform.googleapis.com اعتبار سنجی کنید.

از Cloud Shell، وارد نمونه سیستم عامل خصوصی مشتری شوید.

gcloud compute ssh private-client --project=$projectid --zone=us-central1-a --tunnel-through-iap

حفاری را اجرا کنید.

dig us-central1-aiplatform.googleapis.com

به عنوان مثال، به IP های عمومی بر اساس پاسخ DNS توجه کنید.

user@private-client:~$ dig us-central1-aiplatform.googleapis.com

; <<>> DiG 9.16.42-Debian <<>> us-central1-aiplatform.googleapis.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33311
;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;us-central1-aiplatform.googleapis.com. IN A

;; ANSWER SECTION:
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.132.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.201.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.202.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.69.95
us-central1-aiplatform.googleapis.com. 300 IN A 64.233.182.95
us-central1-aiplatform.googleapis.com. 300 IN A 64.233.183.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.193.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.194.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.195.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.196.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.197.95
us-central1-aiplatform.googleapis.com. 300 IN A 64.233.191.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.74.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.192.95
us-central1-aiplatform.googleapis.com. 300 IN A 209.85.145.95
us-central1-aiplatform.googleapis.com. 300 IN A 209.85.146.95

;; Query time: 4 msec
;; SERVER: 169.254.169.254#53(169.254.169.254)
;; WHEN: Sun Jul 02 20:5

برای ایجاد رکوردی از Vertext AI FQDN us-central1-aiplatform.googleapis.com که به نقطه پایانی PSC 100.100.10.10 اشاره می کند، با استفاده از ویرایشگر sudo VI یا nano، نمونه سرویس گیرنده خصوصی /etc/hosts را به روز کنید، نیازی به تغییر بیشتر نیست.

مثال:

user@private-client:~$ more /etc/hosts
127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

100.100.10.10 us-central1-aiplatform.googleapis.com
192.168.20.2 private-client.c.$projectid.internal private-client  # Added by Google
169.254.169.254 metadata.google.internal  # Added by Google

از سیستم‌عامل سرویس گیرنده خصوصی، یک PING به نقطه پایانی Vertex API انجام دهید.

ping us-central1-aiplatform.googleapis.com

به عنوان مثال، PING IP نقطه پایانی PSC را برمی‌گرداند اما هیچ پاسخی انتظار نمی‌رود.

user@private-client:~$ ping us-central1-aiplatform.googleapis.com
PING us-central1-aiplatform.googleapis.com (100.100.10.10) 56(84) bytes of data.

از سیستم‌عامل کلاینت خصوصی، tcpdump را برای اعتبارسنجی رزولوشن DNS و مسیر داده IP به نقطه پایانی PSC هنگام اجرای یک پیچ در برابر پیش‌بینی آنلاین اجرا کنید.

 sudo tcpdump -i any port 53 -n or host 100.100.10.10

چهارمین ترمینال Cloud Shell را با انتخاب "+" باز کنید. پس از باز شدن تب جدید، متغیر نام پروژه را به روز کنید.

در داخل Cloud Shell، متغیر نام پروژه را به روز کنید.

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid

در داخل Cloud Shell 4، یک نمونه ssh به سرویس گیرنده خصوصی انجام دهید.

gcloud compute ssh --zone "us-central1-a" "private-client" --project "$projectid"

در بخش زیر، یک فایل instances.json با استفاده از ویرایشگر sudo VI یا nano ایجاد می‌کنید و رشته داده‌ای را که برای بدست آوردن پیش‌بینی از مدل مستقر شده استفاده می‌شود، وارد می‌کنید.

از سیستم عامل private-client، یک instances.json f ile با رشته داده زیر ایجاد کنید:

{"instances": [
  [0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
  [0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}

مثال:

user@private-client:$ more instances.json 
{"instances": [
  [0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
  [0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}

user@private-client:$

از سیستم عامل private-client، متغیرهای زیر را ایجاد کنید:

gcloud config list project
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"

مثال:

ENDPOINT_ID="3328226095324463104"

از سیستم‌عامل سرویس گیرنده خصوصی در Cloud Shell 4، برای دریافت پاسخ از مدل، یک پیچ‌شدن انجام دهید.

curl -v -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json

19. اعتبارسنجی - دسترسی خصوصی به Vertex API

از سیستم‌عامل سرویس گیرنده خصوصی در Cloud Shell 4، توجه داشته باشید که IP نقطه پایانی PSC (100.100.10.10) برای دسترسی به Vertex API استفاده شده است.

user@private-client$ curl -v -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json
Note: Unnecessary use of -X or --request, POST is already inferred.
*   Trying 100.100.10.10:443...
* Connected to us-central1-aiplatform.googleapis.com (100.100.10.10) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
*  subject: CN=upload.video.google.com
*  start date: May 29 08:21:36 2023 GMT
*  expire date: Aug 21 08:21:35 2023 GMT
*  subjectAltName: host "us-central1-aiplatform.googleapis.com" matched cert's "*.googleapis.com"
*  issuer: C=US; O=Google Trust Services LLC; CN=GTS CA 1C3
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x55f2ab65c2c0)
> POST /v1/projects/$projectid/locations/us-central1/endpoints/3328226095324463104:predict HTTP/2
> Host: us-central1-aiplatform.googleapis.com
> user-agent: curl/7.74.0
> accept: */*
> authorization: Bearer ya29.a0AbVbY6NdCbIJYj0mQROeq-xYgQCw534TTtjRc1kBAEOimKCFxb3gqgD5AvhfefJatSNr33eW1YJirfQVMptFoqfjRoB-i8zEJJ_GGCVqhsVnpSOjK0hzJQSuo2YGjIiSe1o1zdo7lWmh1Px-vLe8FImieGkrQ1hqVaa6aCgYKAXgSARESFQFWKvPlUQ_FuKB2hrDJRyFDjupL1g0171
> content-type: application/json
> content-length: 154
> 
* Connection state changed (MAX_CONCURRENT_STREAMS == 100)!
* We are completely uploaded and fine
< HTTP/2 200 
< content-type: application/json; charset=UTF-8
< x-vertex-ai-internal-prediction-backend: harpoon
< date: Mon, 03 Jul 2023 22:13:35 GMT
< vary: X-Origin
< vary: Referer
< vary: Origin,Accept-Encoding
< server: scaffolding on HTTPServer2
< cache-control: private
< x-xss-protection: 0
< x-frame-options: SAMEORIGIN
< x-content-type-options: nosniff
< accept-ranges: none
< 
{
  "predictions": [
    "$479.0",
    "$586.0"
  ],
  "deployedModelId": "1949163636186415104",
  "model": "projects/234086459238/locations/us-central1/models/947543727654567936",
  "modelDisplayName": "diamonds-cpr",
  "modelVersionId": "1"
}
* Connection #0 to host us-central1-aiplatform.googleapis.com left intact

از ترمینال TCPDUMP در Cloud Shell 3، می‌توانیم تأیید کنیم که جستجوی DNS به us-central1-aiplatform.googleapis.com مشاهده نشده است زیرا فایل /etc/host اولویت داشت، اما آدرس IP PSC 100.100.10.10 در مسیر داده

user@private-client:~$ sudo tcpdump -i any port 53 -n or host 100.100.10.10
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
22:13:35.507625 ens4  Out IP 192.168.20.2.37004 > 169.254.169.254.53: 58585+ A? oauth2.googleapis.com. (39)
22:13:35.507631 ens4  Out IP 192.168.20.2.37004 > 169.254.169.254.53: 15580+ AAAA? oauth2.googleapis.com. (39)
22:13:35.511796 ens4  In  IP 169.254.169.254.53 > 192.168.20.2.37004: 58585 16/0/0 A 142.251.6.95, A 108.177.112.95, A 74.125.124.95, A 172.217.212.95, A 172.217.214.95, A 172.253.114.95, A 172.253.119.95, A 108.177.111.95, A 142.250.1.95, A 108.177.121.95, A 142.250.103.95, A 108.177.120.95, A 142.251.171.95, A 142.250.159.95, A 142.251.120.95, A 142.251.161.95 (295)
22:13:35.512002 ens4  In  IP 169.254.169.254.53 > 192.168.20.2.37004: 15580 4/0/0 AAAA 2607:f8b0:4001:c2b::5f, AAAA 2607:f8b0:4001:c18::5f, AAAA 2607:f8b0:4001:c5f::5f, AAAA 2607:f8b0:4001:c58::5f (151)
22:13:35.722145 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [S], seq 1951267724, win 65320, options [mss 1420,sackOK,TS val 1371205990 ecr 0,nop,wscale 7], length 0
22:13:35.730727 ens4  In  IP 100.100.10.10.443 > 192.168.20.2.47304: Flags [S.], seq 3198878726, ack 1951267725, win 65535, options [mss 1366,sackOK,TS val 67847676 ecr 1371205990,nop,wscale 8], length 0
22:13:35.730760 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [.], ack 1, win 511, options [nop,nop,TS val 1371205999 ecr 67847676], length 0
22:13:35.738339 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 1:518, ack 1, win 511, options [nop,nop,TS val 1371206006 ecr 67847676], length 517
22:13:35.739922 ens4  In  IP 100.100.10.10.443 > 192.168.20.2.47304: Flags [.], ack 518, win 261, options [nop,nop,TS val 67847688 ecr 1371206006], length 0
22:13:35.740860 ens4  In  IP 100.100.10.10.443 > 192.168.20.2.47304: Flags [.], seq 1:2709, ack 518, win 261, options [nop,nop,TS val 67847689 ecr 1371206006], length 2708
22:13:35.740863 ens4  In  IP 100.100.10.10.443 > 192.168.20.2.47304: Flags [P.], seq 2709:4699, ack 518, win 261, options [nop,nop,TS val 67847689 ecr 1371206006], length 1990
22:13:35.740874 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [.], ack 2709, win 497, options [nop,nop,TS val 1371206009 ecr 67847689], length 0
22:13:35.740886 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [.], ack 4699, win 485, options [nop,nop,TS val 1371206009 ecr 67847689], length 0
22:13:35.742709 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 518:598, ack 4699, win 501, options [nop,nop,TS val 1371206011 ecr 67847689], length 80
22:13:35.743996 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 598:644, ack 4699, win 501, options [nop,nop,TS val 1371206012 ecr 67847689], length 46
22:13:35.744011 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 644:693, ack 4699, win 501, options [nop,nop,TS val 1371206012 ecr 67847689], length 49
22:13:35.744082 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 693:728, ack 4699, win 501, options [nop,nop,TS val 1371206012 ecr 67847689], length 35
22:13:35.744165 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 728:1069, ack 4699, win 501, options [nop,nop,TS val 1371206012 ecr 67847689], length 341

اتصال به پیش‌بینی آنلاین را از طریق یک نقطه پایانی عمومی از طریق اینترنت و به صورت خصوصی با استفاده از شبکه ترکیبی و اتصال سرویس خصوصی (googleapis) با موفقیت تأیید کردید. با بازگشت به Cloud Shell از سیستم عامل خارج شوید.

20. پاکسازی کنید

از Cloud Shell، اجزای آموزشی را حذف کنید.

gcloud compute forwarding-rules delete pscvertex --global --quiet

gcloud compute instances delete workbench-tutorial --zone=us-central1-a --quiet 

gcloud compute addresses delete psc-ip --global --quiet

gcloud compute networks subnets delete workbench-subnet --region=us-central1 --quiet 

gcloud compute vpn-tunnels delete aiml-vpc-tunnel0 aiml-vpc-tunnel1 on-prem-tunnel0 on-prem-tunnel1 --region=us-central1 --quiet

gcloud compute vpn-gateways delete aiml-vpn-gw on-prem-vpn-gw --region=us-central1 --quiet 

gcloud compute routers delete aiml-cr-us-central1 cloud-router-us-central1-aiml-nat --region=us-central1 --quiet 

gcloud compute routers delete cloud-router-us-central1-on-prem-nat on-prem-cr-us-central1 --region=us-central1 --quiet

gcloud compute instances delete nat-client private-client --zone=us-central1-a --quiet

gcloud compute firewall-rules delete ssh-iap-on-prem-vpc --quiet

gcloud compute networks subnets delete nat-subnet  private-ip-subnet --region=us-central1 --quiet

gcloud compute networks delete on-prem-vpc --quiet

gcloud compute networks delete aiml-vpc --quiet

اجزای Vertex را حذف کنید

برای حذف تصویر ظرف، به رجیستری مصنوع بروید، مخزن ایجاد شده را انتخاب کنید و حذف را انتخاب کنید.

616a3108bc2e48c8.png

برای حذف Storage Bucket، با استفاده از منوی Navigation در Cloud Console خود، به Storage بروید، سطل خود را انتخاب کنید و روی Delete کلیک کنید:

eddd1f9fdfaede8.png

مدل را از نقطه پایانی خارج کنید. به Vertex AI → پیش بینی آنلاین → انتخاب diamonds-cpr_endpoint → Undeploy Model from endpoint → Undeploy بروید

bc95f092d21d4698.png

مدل را حذف کنید به Vertex AI → Model Registry → Delete Model بروید

ec4afff091e11606.png

نقطه پایانی پیش بینی آنلاین را حذف کنید. به VertexAI → پیش بینی آنلاین → انتخاب diamonds-cpr_endpoint → حذف نقطه پایانی بروید

7453760299bdfb9a.png

21. تبریک می گویم

تبریک می‌گوییم، اتصال به Online Prediction را به صورت بومی با استفاده از اینترنت و به‌صورت خصوصی با Private Service Connect و شبکه ترکیبی با موفقیت پیکربندی و تأیید کردید.

شما یک nat-client و private-client ایجاد کردید و از TCPDUMP برای اعتبارسنجی آدرس های IP استفاده شده برای دسترسی به Vertex API استفاده کردید. علاوه بر این، در مورد Private Service Connect (googleapis) و نحوه استفاده از آن برای جداسازی برنامه‌های داخلی و چند ابری با استفاده از نقطه پایانی PSC مشتری، یاد گرفتید.

Cosmopup فکر می کند آموزش ها عالی هستند!!

e6d3675ca7c6911f.jpeg

بعدش چی؟

برخی از این آموزش ها را ببینید...

ادامه مطلب و ویدیوها

اسناد مرجع