1. Giới thiệu
Trong lớp học lập trình này, bạn sẽ triển khai một tác nhân / nhiều công cụ một cách an toàn bằng Bộ công cụ phát triển tác nhân (ADK), Agent Engine và Google Kubernetes Engine. Bạn sẽ tìm hiểu cách một tác nhân AI do người dùng khởi tạo trong Gemini Enterprise điều hướng Google Cloud một cách an toàn, dựa vào Cổng GKE có Tiện ích dịch vụ để chỉnh sửa dữ liệu nhạy cảm trong quá trình truyền dữ liệu từ các phản hồi của công cụ MCP.
Kiến thức bạn sẽ học được
- Triển khai tác nhân trợ lý thế chấp ADK vào Agent Engine bằng tính năng đo lường OpenTelemetry
- Triển khai các máy chủ MCP phụ trợ vào Google Kubernetes Engine (GKE) đằng sau một Cổng nội bộ
- Kết nối Agent Engine với một VPC dự án bằng Giao diện PSC và kết nối ngang hàng DNS
- Hiển thị API REST dưới dạng công cụ MCP bằng cách sử dụng Apigee MCP Discovery Proxy
- Định cấu hình Cổng GKE để kiểm soát lưu lượng truy cập của tác nhân bằng Tiện ích dịch vụ cho tính năng biên tập DLP và uỷ quyền MCP
- Áp dụng các biện pháp bảo vệ AI bằng Model Armor để sàng lọc câu lệnh và câu trả lời
Bạn cần có
- Một trình duyệt web như Chrome
- Một dự án trên Google Cloud đã bật tính năng thanh toán
- Quen thuộc cơ bản với Terraform, Kubernetes và Python
Lớp học lập trình này dành cho các nhà phát triển và chuyên gia bảo mật muốn triển khai và bảo mật quy trình làm việc dựa trên tác nhân trong môi trường doanh nghiệp.
2. Trước khi bắt đầu
Tạo một dự án trên Google Cloud và bật các API bắt buộc.
- Trong Google Cloud Console, trên trang chọn dự án, hãy chọn hoặc tạo một dự án trên Google Cloud .
- Đảm bảo bạn đã bật tính năng thanh toán cho dự án trên Cloud. Tìm hiểu cách kiểm tra xem tính năng thanh toán có được bật trên một dự án hay không.
Các vai trò IAM bắt buộc
Lớp học lập trình này giả định rằng bạn có vai trò Chủ sở hữu dự án cho dự án Google Cloud của mình.
Bật API
- Trong bảng điều khiển Google Cloud, hãy nhấp vào Kích hoạt Cloud Shell: Nếu bạn chưa từng sử dụng Cloud Shell, một ngăn sẽ xuất hiện để bạn chọn khởi động Cloud Shell trong một môi trường đáng tin cậy có hoặc không có chế độ tăng tốc. Nếu được yêu cầu uỷ quyền cho Cloud Shell, hãy nhấp vào Uỷ quyền.
- Trong Cloud Shell, hãy bật tất cả các API bắt buộc:
gcloud services enable \ compute.googleapis.com \ container.googleapis.com \ dns.googleapis.com \ certificatemanager.googleapis.com \ dlp.googleapis.com \ aiplatform.googleapis.com \ discoveryengine.googleapis.com \ apigee.googleapis.com
Cài đặt các phần phụ thuộc
Trong Cloud Shell, hãy đảm bảo bạn đã cài đặt các công cụ cần thiết. Terraform, kubectl và Go thường được cài đặt sẵn. Bạn cần cài đặt uv (trình quản lý gói Python) và Skaffold:
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install Skaffold
curl -Lo skaffold https://storage.googleapis.com/skaffold/releases/latest/skaffold-linux-amd64 && \
sudo install skaffold /usr/local/bin/
Đặt các biến môi trường
Thiết lập các biến môi trường sau đây được dùng trong suốt lớp học lập trình này:
export PROJECT_ID=$(gcloud config get project)
export REGION=us-central1
export LOCATION=${REGION}
Tạo một vùng DNS công khai
Lớp học lập trình này yêu cầu phải có một vùng DNS công khai trong dự án trước khi bạn áp dụng cấu hình Terraform. Vùng này là cần thiết cho việc uỷ quyền máy chủ tên để quá trình thiết lập có thể tự động hoá việc tạo các bản ghi bắt buộc cho Certificate Manager.
Chạy lệnh sau trong Cloud Shell để tạo vùng:
gcloud dns managed-zones create "inference-gateway-zone" \
--dns-name="gateway.example.com." \
--description="Public zone for Inference Gateway" \
--visibility="public" \
--project="${PROJECT_ID}"
3. Sao chép kho lưu trữ GitHub
- Trong một cửa sổ dòng lệnh trên máy cục bộ, hãy sao chép kho lưu trữ
cloud-networking-solutions:git clone https://github.com/googleCloudPlatform/cloud-networking-solutions.git - Chuyển đến thư mục kho lưu trữ đã tải xuống:
cd cloud-networking-solutions/demos/service-extensions-gke-gateway
4. Triển khai cơ sở hạ tầng bằng Terraform
Bạn sẽ sử dụng Terraform để cung cấp mạng cơ sở, cụm GKE và các cấu hình danh tính bắt buộc.
- Chuyển đến thư mục
terraformtrong kho lưu trữ đã sao chép:cd terraform - Định cấu hình phần phụ trợ Terraform. Tạo tệp
backend.confđể định cấu hình một phần phụ trợ. Thay thếbằng một tên bộ chứa duy nhất trên toàn cầu.cat <<EOF > backend.conf bucket = "<YOUR_TERRAFORM_STATE_BUCKET>" prefix = "terraform" EOF
- Sao chép tệp biến mẫu và cập nhật tệp đó bằng các giá trị dự án của bạn:
cp example.tfvars terraform.tfvars - Chỉnh sửa
terraform.tfvarsvà thay thế các giá trị trình giữ chỗ.Thay thế nội dung sau:- project_id: mã dự án trên đám mây của bạn.
- organization_id: mã nhận dạng tổ chức GCP dạng số của bạn.
- dns_zone_domain: một miền mà bạn kiểm soát (ví dụ:
demo.example.com.). Phải kết thúc bằng dấu chấm.
enable_certificate_manager = trueenable_model_armor = trueenable_agent_engine = trueenable_psc_interface = true
- Khởi chạy và áp dụng cấu hình Terraform:
terraform init -backend-config=backend.conf terraform plan -out=tfplan terraform apply "tfplan"
5. Triển khai khối lượng công việc mẫu bằng Skaffold
Tiếp theo, hãy triển khai các máy chủ MCP và dịch vụ xử lý bên ngoài vào cụm GKE của bạn.
- Kết nối với cụm GKE do Terraform tạo:
gcloud container clusters get-credentials gateway-cluster \ --region=${REGION} \ --project=${PROJECT_ID} - Quay lại thư mục gốc của dự án và định cấu hình các mẫu tệp kê khai Kubernetes. Sao chép cấu hình mẫu và đặt mã dự án cũng như miền cơ sở:Đặt
BASE_DOMAINsao cho phù hợp với môi trường của bạn.BASE_DOMAINphải khớp với biếndns_zone_domainTerraform (không có dấu chấm ở cuối).export BASE_DOMAIN=example.com - Tạo tệp kê khai Kubernetes và
skaffold.yamltừ các mẫu:bash k8s/generate.sh envsubst '${PROJECT_ID}' < skaffold.yaml.tmpl > skaffold.yaml - Triển khai tất cả các dịch vụ phụ trợ:
skaffold run -m legacy-dms,income-verification-api,corporate-email,dlp-ext-proc - Triển khai cấu hình Gateway và HTTPRoute:
kubectl apply -k k8s/gateway-internal/
6. Áp dụng các biện pháp bảo vệ AI bằng Model Armor
Bạn có thể uỷ quyền cho Model Armor đưa ra các quyết định về bảo mật nội dung, chẳng hạn như xoá các câu lệnh gây hại hoặc ngăn chặn rò rỉ dữ liệu.
Điều kiện tiên quyết: Cấp vai trò IAM
Bạn phải cấp các vai trò bắt buộc cho tài khoản dịch vụ GKE Gateway. Tài khoản dịch vụ có định dạng: service-GATEWAY_PROJECT_NUMBER@gcp-sa-dep.iam.gserviceaccount.com.
Chạy các lệnh sau để cấp các quyền cần thiết:
export GATEWAY_PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
# Grant roles in the Gateway project
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member=serviceAccount:service-${GATEWAY_PROJECT_NUMBER}@gcp-sa-dep.iam.gserviceaccount.com \
--role=roles/modelarmor.calloutUser
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member=serviceAccount:service-${GATEWAY_PROJECT_NUMBER}@gcp-sa-dep.iam.gserviceaccount.com \
--role=roles/serviceusage.serviceUsageConsumer
# Grant role in the project containing Model Armor templates
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member=serviceAccount:service-${GATEWAY_PROJECT_NUMBER}@gcp-sa-dep.iam.gserviceaccount.com \
--role=roles/modelarmor.user
Tạo tiện ích uỷ quyền Model Armor
Xác định một tiện ích trỏ đến dịch vụ Model Armor ở khu vực của bạn. Lưu cấu hình này dưới dạng ma-content-authz-extension.yaml.
Xuất Mã mẫu Model Armor do Terraform tạo.
export MA_TEMPLATE_ID=$(cd terraform && terraform output -raw model_armor_template_id)
cat >ma-content-authz-extension.yaml <<EOF
name: ma-ext
service: modelarmor.$LOCATION.rep.googleapis.com
metadata:
model_armor_settings: '[
{
"response_template_id": "projects/${PROJECT_ID}/locations/$LOCATION/templates/${MA_TEMPLATE_ID}",
"request_template_id": "projects/${PROJECT_ID}/locations/$LOCATION/templates/${MA_TEMPLATE_ID}"
}
]'
failOpen: true
EOF
gcloud beta service-extensions authz-extensions import ma-ext \
--source=ma-content-authz-extension.yaml \
--location=$LOCATION
Tạo Chính sách uỷ quyền Model Armor
Tạo một chính sách liên kết tiện ích Model Armor với Agent Gateway. Lưu cấu hình này dưới dạng ma-content-authz-policy.yaml.
cat >ma-content-authz-policy.yaml <<EOF
name: ma-content-authz-policy
target:
resources:
- "projects/$PROJECT_ID/locations/$LOCATION/gateways/mortgage-gateway"
policyProfile: CONTENT_AUTHZ
action: CUSTOM
customProvider:
authzExtension:
resources:
- "projects/$PROJECT_ID/locations/$LOCATION/authzExtensions/ma-ext"
EOF
gcloud network-security authz-policies import ma-content-authz-policy \
--source=ma-content-authz-policy.yaml \
--location=$LOCATION
7. Định cấu hình Gemini Enterprise
Bật khả năng ghi nhận
Tác nhân thế chấp được triển khai bằng khả năng đo lường OpenTelemetry và các biến môi trường đo từ xa sau đây được bật theo mặc định:
GOOGLE_CLOUD_AGENT_ENGINE_ENABLE_TELEMETRY=trueOTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=trueOTEL_TRACES_SAMPLER=parentbased_traceidratio
Để biết thông tin chi tiết về cách định cấu hình dấu vết và khoảng thời gian trong Gemini Enterprise, hãy xem phần Quản lý chế độ cài đặt khả năng quan sát.
Bật Model Armor trong Gemini Enterprise
Áp dụng tính năng lọc Model Armor cho trợ lý Gemini Enterprise để sàng lọc cả câu lệnh của người dùng và câu trả lời của mô hình. Các ứng dụng Gemini Enterprise trên toàn cầu yêu cầu một mẫu Model Armor trong us nhiều khu vực, vì vậy Terraform triển khai một mẫu riêng cho mục đích này.
Truy xuất tên mẫu từ đầu ra của Terraform:
cd terraform
export GE_MA_TEMPLATE_NAME=$(terraform output -raw model_armor_gemini_enterprise_template_name)
Tìm nạp mã ứng dụng của phiên bản Gemini Enterprise:
- Trong bảng điều khiển Cloud, hãy chuyển đến trang Gemini Enterprise.
- Trong trình đơn điều hướng, hãy nhấp vào Ứng dụng.
- Sao chép mã của phiên bản Gemini Enterprise
Xuất mã nhận dạng dưới dạng một biến môi trường.
export APP_ID=<PASTE_APP_ID>
Vá trợ lý để bật Model Armor:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-H "X-Goog-User-Project: ${PROJECT_ID}" \
"https://global-discoveryengine.googleapis.com/v1/projects/${PROJECT_ID}/locations/global/collections/default_collection/engines/${APP_ID}/assistants/default_assistant?update_mask=customerPolicy" \
-d '{
"customerPolicy": {
"modelArmorConfig": {
"userPromptTemplate": "'"$GE_MA_TEMPLATE_NAME"'",
"responseTemplate": "'"$GE_MA_TEMPLATE_NAME"'",
"failureMode": "FAIL_OPEN"
}
}
}'
Đặt failureMode thành FAIL_OPEN để cho phép các yêu cầu đi qua khi Model Armor không hoạt động hoặc đặt thành FAIL_CLOSED để chặn các yêu cầu đó.
8. Triển khai tác nhân và thêm tác nhân trong Gemini Enterprise
Lấy thông tin uỷ quyền
Hãy làm theo các bước sau để lấy thông tin uỷ quyền.
- Trong bảng điều khiển Cloud, trên trang API và dịch vụ, hãy chuyển đến trang Thông tin xác thực.
- Chuyển đến phần Thông tin đăng nhập
- Nhấp vào Tạo thông tin xác thực rồi chọn Mã ứng dụng OAuth.
- Trong phần Loại ứng dụng, hãy chọn Ứng dụng web.
- Trong phần URI chuyển hướng được uỷ quyền, hãy thêm các URI sau:
- https://vertexaisearch.cloud.google.com/oauth-redirect
- https://vertexaisearch.cloud.google.com/static/oauth/oauth.html
- Nhấp vào Tạo.
- Xuất Mã ứng dụng khách và Khoá bí mật của ứng dụng khách để triển khai.
export OAUTH_CLIENT_ID=<Client ID>
export OAUTH_CLIENT_SECRET=<Client Secret>
Triển khai trợ lý ảo về thế chấp
Tập lệnh src/mortgage-agent/deploy_agent.py sẽ triển khai tác nhân ADK vào Agent Engine và tuỳ ý đăng ký tác nhân đó trong Gemini Enterprise. Hãy xem phần Đăng ký và quản lý tác nhân A2A để biết thông tin cơ bản về quy trình đăng ký Gemini Enterprise.
Xuất các biến từ quá trình triển khai Terraform.
export VPC_NAME=$(cd terraform && terraform output -raw vpc_name)
export PSC_ATTACHMENT=$(cd terraform && terraform output -raw psc_interface_network_attachment_id)
export DNS_PEERING_DOMAIN=$(cd terraform && terraform output -raw psc_interface_dns_peering_domain)
Cài đặt các phần phụ thuộc và triển khai:
cd src/mortgage-agent
uv sync
Triển khai Tác nhân vào Vertex Agent Engine và đăng ký với Gemini Enterprise:
uv run python deploy_agent.py \
--project=${PROJECT_ID} \
--dms-mcp-url=https://dms.${DNS_PEERING_DOMAIN%%.}/mcp \
--income-verification-url=https://income-verification.${DNS_PEERING_DOMAIN%%.} \
--email-mcp-url=https://email.${DNS_PEERING_DOMAIN%%.}/mcp \
--network-attachment=projects/${PROJECT_ID}/regions/${REGION}/networkAttachments/${PSC_ATTACHMENT} \
--dns-peering-domain=${DNS_PEERING_DOMAIN} \
--dns-peering-target-project=${PROJECT_ID} \
--dns-peering-target-network=${VPC_NAME} \
--enable-agent-identity \
--ge-deploy \
--app-id=${APP_ID} \
--oauth-client-id=${OAUTH_CLIENT_ID} \
--agent-name=mortgage-agent
Tham chiếu cờ
Cờ | Mặc định | Mô tả |
|
| Mã dự án GCP |
| (bắt buộc) | URL máy chủ DMS MCP |
| (bắt buộc) | URL cơ sở của Income Verification API; |
| (bắt buộc) | URL máy chủ MCP của email |
|
| Vùng GCP |
|
| Bộ chứa GCS để dàn dựng |
|
| Tên hiển thị của nhân viên hỗ trợ được triển khai |
| (không bắt buộc) | Cập nhật một tác nhân hiện có tại chỗ (truyền tên tài nguyên đầy đủ) |
| (không bắt buộc) | Thiết bị mạng cho Giao diện PSC (đường dẫn hoặc tên đầy đủ) |
| (không bắt buộc) | Miền DNS cho hoạt động ngang hàng DNS PSC-I (phải kết thúc bằng dấu chấm) |
| (không bắt buộc) | Dự án lưu trữ mạng VPC mục tiêu để kết nối ngang hàng DNS |
| (không bắt buộc) | Tên mạng VPC để kết nối ngang hàng DNS |
|
| Bật thông tin đăng nhập có đặc quyền tối thiểu cho mỗi tác nhân |
|
| Đăng ký tác nhân trong Gemini Enterprise sau khi triển khai |
| (không bắt buộc) | Mã công cụ Gemini Enterprise (bắt buộc khi dùng |
|
| Mã ứng dụng OAuth2 (bắt buộc đối với |
|
| Khoá bí mật của ứng dụng OAuth2 (bắt buộc đối với |
|
| Tên mô hình Gemini cho tác nhân |
|
| Uỷ quyền Gemini Enterprise và tên tác nhân |
| (không bắt buộc) | Đăng ký một công cụ suy luận hiện có trong Gemini Enterprise mà không cần triển khai lại (truyền tên tài nguyên đầy đủ) |
Thêm người dùng được cấp quyền
Để thêm người dùng được cấp quyền vào một tác nhân ADK bằng Bảng điều khiển Cloud, hãy xem phần Thêm hoặc sửa đổi người dùng và quyền của họ.
9. Thử nghiệm Nhân viên hỗ trợ
Giờ đây, sau khi bạn triển khai và định cấu hình tác nhân, Cổng GKE và tất cả các dịch vụ phụ trợ, hãy kiểm thử quy trình từ đầu đến cuối để xác minh rằng các chính sách bảo mật đang hoạt động như mong đợi. Bạn sẽ tương tác với "mortgage-agent" trong giao diện Gemini Enterprise.
Truy cập vào Trợ lý
- Chuyển đến trang Gemini Enterprise trong Google Cloud Console.
- Chọn Ứng dụng Gemini Enterprise mà bạn đã định cấu hình trước đó, nơi "mortgage-agent" được đăng ký.
- Trên thẻ Tổng quan, hãy duyệt đến URL xuất hiện trong phần "Ứng dụng Gemini Enterprise trên web đã sẵn sàng".
- Chọn thẻ Agent Gallery (Thư viện về các trợ lý ảo) trong trình đơn bên trái
- Giờ đây, bạn có thể trò chuyện với "Trợ lý thế chấp".
Trường hợp kiểm thử 1: "Lộ trình phù hợp" – Tóm tắt dữ liệu bằng tính năng loại bỏ thông tin nhận dạng cá nhân
Thử nghiệm này xác minh rằng tác nhân có thể truy cập vào các hệ thống phụ trợ thông qua Cổng tác nhân và các chính sách Ngăn chặn mất dữ liệu (DLP) được thực thi để biên tập thông tin nhạy cảm.
- Gửi câu lệnh sau cho Trợ lý thế chấp:
I'm reviewing the Sterling family's current application. Can you summarize their 2024 and 2025 tax returns and verify if their total household income meets our 2026 debt-to-income requirements? - Những điều đang diễn ra ở hậu trường:
- Tác nhân trong Gemini Enterprise sẽ đưa ra yêu cầu đối với các công cụ cần thiết (ví dụ: Hệ thống quản lý tài liệu (DMS) cho tờ khai thuế, API Xác minh thu nhập).
- Model Armor kiểm tra các tải trọng yêu cầu và phản hồi để phát hiện các mối đe doạ.
- "Chính sách uỷ quyền dựa trên nội dung" mà bạn đã định cấu hình sẽ kích hoạt tiện ích DLP tuỳ chỉnh (
dlp-content-authz-ext). Tiện ích này kiểm tra dữ liệu được tìm nạp từ các hệ thống phụ trợ. - Dịch vụ DLP sẽ loại bỏ mọi Thông tin nhận dạng cá nhân (PII), chẳng hạn như Số an sinh xã hội (SSN), khỏi dữ liệu tờ khai thuế trước khi dữ liệu đó đến được với nhân viên hỗ trợ.
- Kết quả dự kiến: Trợ lý sẽ trả về thông tin tóm tắt về tờ khai thuế và trạng thái xác minh thu nhập. Kiểm tra kỹ thông tin tóm tắt do trợ lý ảo cung cấp. Bạn nên lưu ý rằng thông tin nhạy cảm, chẳng hạn như Mã số nhận dạng người nộp thuế (SSN), đã được thay thế bằng các phần giữ chỗ (ví dụ:
[REDACTED]). Điều này xác nhận việc thực thi chính sách DLP thông qua cổng.
Khả năng ghi nhận và kiểm tra
Trong suốt quá trình kiểm thử này, Nền tảng đại lý và các dịch vụ liên quan sẽ thu thập dữ liệu đo từ xa:
- Cloud Logging: Nhật ký chi tiết từ Cổng GKE, tải GKE và các dịch vụ khác cung cấp nhật ký kiểm tra về các yêu cầu, hoạt động đánh giá chính sách và kết quả.
- Cloud Trace: Khả năng đo lường OpenTelemetry được định cấu hình trong các dịch vụ tác nhân và phụ trợ cho phép bạn trực quan hóa toàn bộ quy trình gọi, từ Gemini Enterprise thông qua Cổng GKE đến các công cụ phụ trợ. Điều này rất hữu ích cho việc gỡ lỗi và tìm hiểu vòng đời của yêu cầu.
Xem Dấu vết cho các phiên của bạn:
- Trong bảng điều khiển Cloud, hãy chuyển đến trang Vertex AI Agent Engine.
- Chuyển đến Agent Engine. Các phiên bản Agent Engine thuộc dự án đã chọn sẽ xuất hiện trong danh sách. Bạn có thể sử dụng trường Bộ lọc để lọc danh sách theo cột mà bạn chỉ định.
- Nhấp vào tên của phiên bản Agent Engine.
- Nhấp vào thẻ Dấu vết.
- Bạn có thể chọn chế độ xem Phiên hoặc chế độ xem Khoảng thời gian.
- Nhấp vào một phiên hoặc khoảng thời gian để kiểm tra thông tin chi tiết về dấu vết, bao gồm cả biểu đồ có hướng không có chu trình (DAG) của các khoảng thời gian, đầu vào và đầu ra cũng như các thuộc tính siêu dữ liệu.
10. Không bắt buộc: Chuyển mã API REST sang MCP bằng Apigee
Mặc dù dịch vụ xác minh thu nhập của chúng tôi hỗ trợ Giao thức bối cảnh mô hình một cách tự nhiên, nhưng nhiều hệ thống cũ của doanh nghiệp chỉ cung cấp API RESTful. Trong bước không bắt buộc này, bạn sẽ sử dụng Apigee MCP Discovery Proxy để chuyển mã điểm cuối REST của dịch vụ xác minh thu nhập thành một công cụ MCP. Nhờ đó, bạn có thể áp dụng các chính sách bảo mật, giới hạn tốc độ và quản trị nâng cao của Apigee cho các công cụ cũ.
Để biết thêm thông tin, hãy xem bài viết Tổng quan về MCP của Apigee.
Điều kiện tiên quyết
Trước khi tiếp tục, hãy đảm bảo bạn đã cung cấp và định cấu hình Apigee API Hub. Làm theo các bước trong tài liệu Cung cấp API Hub để thiết lập và đính kèm phiên bản Apigee của bạn.
Bước 1: Tạo tệp đính kèm dịch vụ cho Apigee
Để cho phép Apigee truy cập vào các dịch vụ nội bộ đang chạy trên GKE, bạn phải tạo một tệp đính kèm dịch vụ.
- Tìm quy tắc chuyển tiếp GKE Gateway nội bộ:
export RULE_URI=$(gcloud compute forwarding-rules list \ --filter="loadBalancingScheme=INTERNAL_MANAGED AND target~targetHttpsProxies" \ --format="value(selfLink.segment(6), region.basename(), name)" | \ awk '{print "projects/" $1 "/regions/" $2 "/forwardingRules/" $3}') - Tạo tệp đính kèm dịch vụ:
gcloud compute service-attachments create internal-gke-gateway-apigee \ --region=${REGION} \ --target-service=$RULE_URI \ --connection-preference=ACCEPT_AUTOMATIC \ --nat-subnets=gateway-psc-subnet
Bước 2: Bật Apigee bằng Terraform
Bây giờ, hãy cập nhật cấu hình cơ sở hạ tầng để cung cấp tổ chức và phiên bản Apigee.
- Chuyển đến thư mục
terraform:cd terraform - Chỉnh sửa
terraform.tfvarsvà đặtenable_apigee = true. - Áp dụng các thay đổi:
terraform apply
Bước 3: Xác định quy cách OpenAPI
Apigee sử dụng các định nghĩa OpenAPI (OAS) tiêu chuẩn để khám phá và chuyển mã các công cụ. Tạo một tệp có tên là income-verification-oas.yaml với nội dung sau:
openapi: 3.0.0
info:
title: Income Verification API
description: Verify applicant income through third-party employer records.
version: 1.0.0
servers:
- url: https://income-verification.internal.${DNS_PEERING_DOMAIN%%.}/api
paths:
/income-verification/verify:
post:
summary: Verify applicant income
operationId: verifyApplicant
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
first_name:
type: string
last_name:
type: string
responses:
'200':
description: Successful verification
content:
application/json:
schema:
type: object
Bước 4: Triển khai Apigee MCP Discovery Proxy
MCP Discovery Proxy là một proxy Apigee chuyên biệt, đóng vai trò là máy chủ MCP.
- Trong giao diện người dùng Apigee, hãy chuyển đến Phát triển > API Proxy.
- Nhấp vào Create New (Tạo mới) rồi chọn MCP Discovery Proxy (MCP Discovery Proxy).
- Đặt tên cho proxy
income-verification-discovery. - Trong phần OpenAPI Spec, hãy tải tệp
income-verification-oas.yamlmà bạn đã tạo lên. - Đặt Nhóm môi trường thành nhóm mà bạn có thể truy cập vào cổng nội bộ.
- Nhấp vào Triển khai.
(Không bắt buộc) Thêm chính sách bảo mật
Bạn nên bảo mật proxy trước khi triển khai hoặc chia sẻ. Bạn có thể thêm các chính sách để thực thi các yêu cầu về bảo mật, chẳng hạn như mã thông báo OAuth hoặc khoá API. Để biết hướng dẫn về cách thêm chính sách bảo mật, hãy xem tài liệu của Apigee về cách bảo mật API.
Bước 5: Xác minh quyền truy cập vào công cụ chuyển mã
Sau khi triển khai, Apigee sẽ tự động chuyển mã điểm cuối POST /verify thành công cụ verifyApplicant MCP.
- Liệt kê các công cụ có sẵn thông qua điểm cuối MCP của Apigee:
curl -X POST https://api.internal.${DNS_PEERING_DOMAIN%%.}/income-verification-discovery/mcp \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {} }' - Bạn sẽ thấy công cụ
verifyApplicanttrong phản hồi, được chuyển mã từ quy cách REST của bạn. Giờ đây, bạn có thể gọi công cụ này thông qua Apigee và Apigee sẽ xử lý việc dịch sang dịch vụ REST cơ bản trong khi áp dụng mọi chính sách bảo mật mà bạn đã định cấu hình.
Bước 6: Cập nhật Mortgage Agent để sử dụng Apigee
Vì Apigee đã chuyển mã thành công API REST của bạn thành một công cụ tuân thủ MCP, nên bạn phải cập nhật cấu hình triển khai của tác nhân. Bằng cách trỏ tác nhân đến điểm cuối Apigee, tất cả các yêu cầu xác minh thu nhập hiện sẽ được hưởng lợi từ tính năng bảo mật, ghi nhật ký và quản lý lưu lượng truy cập cấp doanh nghiệp của Apigee.
- Xác định URL MCP của Apigee: Điểm cuối của bạn phải tuân theo mẫu:
https://api.internal.${DNS_PEERING_DOMAIN%%.}/income-verification-discovery/mcp. - Chạy lại tập lệnh triển khai: Sử dụng cờ
--updatecùng với--income-verification-urlmới. Thao tác này sẽ cập nhật tác nhân hiện có trong Agent Engine mà không cần xoá hoàn toàn.cd src/mortgage-agent # Update the agent to route income verification through Apigee uv run python deploy_agent.py \ --project=${PROJECT_ID} \ --update \ --agent-name=mortgage-agent \ --dms-mcp-url=https://dms.${DNS_PEERING_DOMAIN%%.}/mcp \ --income-verification-url=https://api.internal.${DNS_PEERING_DOMAIN%%.}/income-verification-discovery/mcp \ --email-mcp-url=https://email.${DNS_PEERING_DOMAIN%%.}/mcp \ --network-attachment=projects/${PROJECT_ID}/regions/${REGION}/networkAttachments/${PSC_ATTACHMENT} \ --dns-peering-domain=${DNS_PEERING_DOMAIN} \ --dns-peering-target-project=${PROJECT_ID} \ --dns-peering-target-network=${VPC_NAME} \ --ge-deploy \ --app-id=${APP_ID} \ --oauth-client-id=${OAUTH_CLIENT_ID}
- Xác minh nội dung thay đổi: Quay lại giao diện Gemini Enterprise và yêu cầu tác nhân xác minh thu nhập của người đăng ký.
Trong thẻ Apigee Debug, giờ đây, bạn sẽ thấy yêu cầu JSON-RPC đến từ GKE Gateway đang được chuyển đổi thành yêu cầu REST"Can you verify the joint income for the Sterlings using the verification service?"POSTtiêu chuẩn cho dịch vụ GKE phụ trợ của bạn.
11. Dọn dẹp
Để tránh bị tính phí vào tài khoản Google Cloud cho các tài nguyên được tạo trong lớp học lập trình này, hãy xoá các tài nguyên đó khi bạn hoàn tất.
- Xoá tệp đính kèm dịch vụ nếu bạn tạo tệp này theo cách thủ công:
gcloud compute service-attachments delete internal-gke-gateway \ --region=${REGION} --quiet - Chuyển đến thư mục
terraformvà huỷ tất cả tài nguyên:cd terraform terraform destroy - Bạn có thể xoá hoàn toàn dự án trên Google Cloud:
gcloud projects delete ${PROJECT_ID}
12. Xin chúc mừng
Bạn đã hoàn thành lớp học lập trình này và học được cách bảo mật các hoạt động triển khai doanh nghiệp có tác nhân trên nhiều đám mây.
Nội dung bạn đã đề cập
- Triển khai một tác nhân trợ lý thế chấp ADK vào Agent Engine bằng tính năng đo lường OpenTelemetry
- Triển khai các máy chủ MCP phụ trợ cho GKE đằng sau một Cổng nội bộ
- Kết nối Agent Engine với một VPC dự án bằng Giao diện PSC và tính năng kết nối ngang hàng DNS
- Đã định cấu hình Cổng GKE để kiểm soát lưu lượng truy cập ra của tác nhân bằng tính năng biên tập DLP và uỷ quyền MCP
- Áp dụng các biện pháp bảo vệ AI bằng Model Armor để sàng lọc câu lệnh và câu trả lời
- Tuỳ chọn chuyển mã các API REST sang MCP bằng Apigee MCP Discovery Proxy
Các bước tiếp theo
- Khám phá Model Armor
- Đọc về Công cụ tác nhân
- Khám phá Gemini Enterprise