Membuat aplikasi dari resource yang ada
Panduan memulai ini menunjukkan cara mengatur resource Google Cloud yang ada di aplikasi App Hub dengan mendaftarkannya sebagai layanan. Pertama, Anda men-deploy komponen contoh, yang kemudian Anda gunakan untuk menentukan aplikasi web global di Hub Aplikasi.
Panduan memulai ini mendukung pengguna yang ingin menggunakan infrastruktur yang ada untuk mendapatkan visibilitas dan kontrol operasional dengan mengelompokkan resource Google Cloud ke dalam aplikasi logis.
Sebelum memulai
Sebelum memulai panduan memulai cepat ini, lakukan hal berikut:
Pilih model penyiapan aplikasi Anda. Panduan memulai ini mengasumsikan bahwa Anda telah menentukan batas pengelolaan aplikasi tingkat folder dan membuat aplikasi menggunakan project pengelolaan folder. Untuk mengetahui informasi selengkapnya tentang konfigurasi resource ini, lihat model resource App Hub.
Catat project ID project pengelolaan yang akan digunakan di seluruh dokumen ini. Untuk mengetahui informasi selengkapnya, lihat Menemukan nama, nomor, dan ID project.
Pastikan API berikut diaktifkan di project pengelolaan. Saat Anda menyiapkan project pengelolaan, sebagian besar API yang Anda butuhkan untuk panduan memulai cepat ini akan diaktifkan secara otomatis.
- Compute Engine API (
compute.googleapis.com) - Infrastructure Manager API (
config.googleapis.com)
- Compute Engine API (
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan guna mengaktifkan API yang diperlukan dan membuat aplikasi contoh dari resource yang ada, minta administrator Anda untuk memberi Anda peran IAM berikut di project pengelolaan:
-
Untuk mengaktifkan API yang diperlukan:
Service Usage Admin (
roles/serviceusage.serviceUsageAdmin) -
Untuk mendapatkan akses penuh ke layanan yang diperlukan:
-
Admin Hub Aplikasi (
roles/apphub.admin) -
Admin Cloud Run (
roles/run.admin) -
Compute Admin (
roles/compute.admin) -
Cloud Infrastructure Manager Admin (
roles/config.admin)
-
Admin Hub Aplikasi (
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Men-deploy komponen contoh untuk aplikasi
Anda harus men-deploy terlebih dahulu serangkaian resource Google Cloud contoh yang nantinya akan Anda gunakan untuk menentukan aplikasi global di App Hub dengan mendaftarkannya sebagai komponen aplikasi:
- Layanan Cloud Run yang bertindak sebagai layanan backend aplikasi.
- Load Balancer Aplikasi eksternal global yang bertindak sebagai layanan frontend aplikasi dengan mengarahkan traffic ke layanan Cloud Run sebagai aturan penerusan.
Ikuti langkah-langkah berikut untuk men-deploy resource ini:
gcloud
Tetapkan variabel lingkungan yang diperlukan:
export PROJECT_ID="PROJECT_ID" export REGION="REGION"Ganti kode berikut:
PROJECT_ID: ID project pengelolaan Anda.REGION: region yang Anda pilih untuk resource, misalnya,us-central1.
Deploy contoh layanan Cloud Run bernama
hello-run:gcloud run deploy hello-run \ --image=us-docker.pkg.dev/cloudrun/container/hello \ --allow-unauthenticated \ --region=${REGION} \ --project=${PROJECT_ID}Buat Load Balancer Aplikasi eksternal global. Proses ini melibatkan langkah-langkah berikut:
Buat grup endpoint jaringan (NEG) tanpa server yang disebut
hello-run-neg:gcloud compute network-endpoint-groups create hello-run-neg \ --region=${REGION} \ --network-endpoint-type=serverless \ --cloud-run-service=hello-run \ --project=${PROJECT_ID}NEG bertindak sebagai backend untuk load balancer, yang mengarah ke layanan
hello-runAnda.Buat layanan backend untuk mengelola cara traffic didistribusikan ke NEG:
gcloud compute backend-services create hello-backend-service \ --global \ --load-balancing-scheme=EXTERNAL_MANAGED \ --project=${PROJECT_ID}Tambahkan NEG serverless ke layanan backend:
gcloud compute backend-services add-backend hello-backend-service \ --global \ --network-endpoint-group=hello-run-neg \ --network-endpoint-group-region=${REGION} \ --project=${PROJECT_ID}Buat peta URL untuk mengarahkan permintaan masuk ke layanan backend:
gcloud compute url-maps create hello-url-map \ --default-service=hello-backend-service \ --project=${PROJECT_ID}Buat proxy HTTP untuk menerima permintaan dan merutekannya menggunakan peta URL:
gcloud compute target-http-proxies create hello-http-proxy \ --url-map=hello-url-map \ --project=${PROJECT_ID}Buat aturan penerusan global:
gcloud compute forwarding-rules create hello-forwarding-rule \ --global \ --load-balancing-scheme=EXTERNAL_MANAGED \ --target-http-proxy=hello-http-proxy \ --ports=80 \ --project=${PROJECT_ID}Aturan penerusan ini menyediakan alamat IP publik dan port untuk menangani permintaan pengguna yang masuk dan mengarahkannya ke proxy.
Terraform
Buat file
main.tf, lalu tambahkan kode berikut:# Provider configuration provider "google" { project = "PROJECT_ID" } # Cloud Run service resource "google_cloud_run_v2_service" "default" { name = "hello-run" location = "REGION" template { containers { image = "us-docker.pkg.dev/cloudrun/container/hello" } } } # Allow unauthenticated access to the Cloud Run service resource "google_cloud_run_v2_service_iam_member" "noauth" { project = google_cloud_run_v2_service.default.project location = google_cloud_run_v2_service.default.location name = google_cloud_run_v2_service.default.name role = "roles/run.invoker" member = "allUsers" }Ganti kode berikut:
PROJECT_ID: ID project pengelolaan Anda.REGION: region yang Anda pilih untuk resource, misalnya,us-central1.
Blok ini menentukan Google Cloud provider dan mengonfigurasi layanan Cloud Run yang menghadap publik menggunakan image container
hello-worldcontoh. Hal ini juga mencakup binding kebijakan IAM untuk mengizinkan pemanggilan yang tidak diautentikasi, sehingga layanan dapat diakses secara publik.Tambahkan kode berikut ke file
main.tfAnda untuk membuat Load Balancer Aplikasi eksternal global:# Serverless NEG for the Cloud Run service resource "google_compute_region_network_endpoint_group" "serverless_neg" { name = "hello-run-neg" network_endpoint_type = "SERVERLESS" region = "REGION" cloud_run { service = google_cloud_run_v2_service.default.name } } # Global external backend service resource "google_compute_backend_service" "default" { name = "hello-backend-service" protocol = "HTTP" load_balancing_scheme = "EXTERNAL_MANAGED" backend { group = google_compute_region_network_endpoint_group.serverless_neg.id } } # URL map to route requests to the backend service resource "google_compute_url_map" "default" { name = "hello-url-map" default_service = google_compute_backend_service.default.id } # HTTP proxy to route requests to the URL map resource "google_compute_target_http_proxy" "default" { name = "hello-http-proxy" url_map = google_compute_url_map.default.id } # Global forwarding rule to handle incoming requests resource "google_compute_global_forwarding_rule" "default" { name = "hello-forwarding-rule" target = google_compute_target_http_proxy.default.id port_range = "80" }Blok ini menentukan komponen berikut:
- Grup endpoint jaringan (NEG) serverless, yang bertindak sebagai backend untuk load balancer dan mengarah ke layanan Cloud Run.
- Layanan backend yang mengarahkan traffic ke NEG serverless.
- Peta URL untuk mengarahkan permintaan masuk ke layanan backend.
- Proxy HTTP untuk menerima permintaan dan merutekannya menggunakan peta URL.
- Aturan penerusan global, yang menyediakan alamat IP publik dan port untuk menangani permintaan pengguna yang masuk dan mengarahkannya ke proxy.
Lakukan inisialisasi dan terapkan konfigurasi Terraform:
terraform init terraform applyTerraform men-deploy resource ke project Anda.
Menentukan aplikasi di Pusat Aplikasi
Setelah men-deploy resource sebagai aturan penerusan dan layanan Cloud Run, ikuti langkah-langkah berikut untuk mengelompokkannya dalam aplikasi App Hub dengan mendaftarkannya sebagai layanan aplikasi:
Konsol
Buka halaman Aplikasi dari Hub Aplikasi:
Klik Create application.
Pilih Global sebagai lokasi aplikasi.
Masukkan
my-global-appuntuk Application name, lalu klik Continue.Secara opsional, tambahkan nama tampilan, tingkat keparahan, lingkungan, dan pemilik.
Klik Buat.
Di tab Services and workloads, klik Register service/workload.
Pilih aturan penerusan, beri nama
frontend-service, lalu klik Daftarkan.Pilih layanan Cloud Run, beri nama
backend-service, lalu klik Daftar.
gcloud
Buat aplikasi:
gcloud apphub applications create my-global-app \ --location=global \ --display-name="My Global Application" \ --project=${PROJECT_ID}Temukan ID untuk aturan penerusan dan layanan Cloud Run di region yang sesuai:
gcloud apphub discovered-services list \ --location=global \ --project=${PROJECT_ID} gcloud apphub discovered-services list \ --location=${REGION} \ --project=${PROJECT_ID}Catat ID aturan penerusan dan layanan Cloud Run.
Daftarkan aturan penerusan ke aplikasi global:
gcloud apphub applications services create frontend-service \ --application=my-global-app \ --discovered-service=projects/${PROJECT_ID}/locations/global/discoveredServices/FRONTEND_ID \ --display-name="Frontend Service" \ --location=global \ --project=${PROJECT_ID}Ganti
FRONTEND_IDdengan ID aturan penerusan.Daftarkan layanan Cloud Run ke aplikasi global:
gcloud apphub applications services create backend-service \ --application=my-global-app \ --discovered-service=projects/${PROJECT_ID}/locations/${REGION}/discoveredServices/BACKEND_ID \ --display-name="Backend Service" \ --location=global \ --project=${PROJECT_ID}Ganti
BACKEND_IDdengan ID layanan Cloud Run.
Terraform
Buat file
application.tf, lalu tambahkan kode berikut:# Application resource "google_apphub_application" "my_global_app" { project = "PROJECT_ID" location = "global" application_id = "my-global-app" display_name = "My Global Web App" description = "A sample global web application." scope { type = "GLOBAL" } attributes { criticality { type = "MEDIUM" } environment { type = "DEVELOPMENT" } business_owners { display_name = "Example Business Owner" email = "business-owner@example.com" } developer_owners { display_name = "Example Developer" email = "dev-owner@example.com" } operator_owners { display_name = "Example Operator" email = "operator-owner@example.com" } } }Blok ini menggunakan resource
google_apphub_applicationuntuk membuat pengelompokan logis komponen aplikasi.Contoh ini membuat aplikasi global dan menentukan atribut untuk tata kelola dan penemuan, seperti kekritisan, lingkungan, dan pemilik. Anda dapat mengubah nilai tersebut untuk konfigurasi contoh.
Tambahkan kode berikut ke
application.tfuntuk menemukan resource yang di-deploy:# Discover the forwarding rule data "google_apphub_discovered_service" "frontend_service" { location = "global" service_uri = "//compute.googleapis.com/${google_compute_global_forwarding_rule.default.id}" } # Discover the Cloud Run service data "google_apphub_discovered_service" "backend_service" { location = "REGION" service_uri = "//run.googleapis.com/${google_cloud_run_v2_service.default.id}" }Sumber data
google_apphub_discovered_servicemenemukan nama resource infrastruktur yang ada berdasarkan URI-nya. Langkah ini memungkinkan App Hub mengidentifikasi resource tertentu yang ingin Anda daftarkan sebagai layanan.Tambahkan kode berikut ke
application.tfuntuk mendaftarkan resource yang ditemukan:# Register the forwarding rule as a service in the application resource "google_apphub_service" "frontend" { project = "PROJECT_ID" location = "global" application_id = google_apphub_application.my_global_app.application_id service_id = "frontend-service" display_name = "Frontend Service (LB)" discovered_service = data.google_apphub_discovered_service.frontend_service.name } # Register the Cloud Run service as a service in the application resource "google_apphub_service" "backend" { project = "PROJECT_ID" location = "global" application_id = google_apphub_application.my_global_app.application_id service_id = "backend-service" display_name = "Backend Service (Cloud Run)" discovered_service = data.google_apphub_discovered_service.backend_service.name }Resource
google_apphub_servicesecara resmi mendaftarkan resource yang ditemukan di aplikasi Anda sebagai layanan. Langkah ini menautkan infrastruktur Anda dengan aplikasi yang Anda tentukan di App Hub.Lakukan inisialisasi dan terapkan konfigurasi Terraform:
terraform init terraform applyTerraform mendaftarkan resource ke aplikasi
my-global-appAnda di App Hub.
Opsional: Pantau aplikasi baru Anda
Setelah menentukan aplikasi di App Hub, Anda dapat menggunakan produkGoogle Cloud yang terintegrasi untuk memantau kondisi dan performanya:
Melihat data operasional di Cloud Hub:
Di konsol Google Cloud , buka halaman Home Cloud Hub.
Dari pemilih aplikasi, pilih aplikasi
my-global-app. Halaman ini menampilkan ringkasan kondisi aplikasi Anda. Untuk mengetahui informasi selengkapnya, lihat Ringkasan Cloud Hub.
Melihat dasbor mendetail di Pemantauan Aplikasi:
Siapkan Google Cloud Observability untuk Pemantauan Aplikasi.
-
Di konsol Google Cloud , buka halaman Application monitoring:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.
Dari pemilih project di konsol Google Cloud , pilih project pengelolaan.
Halaman Application Monitoring menampilkan dasbor standar untuk aplikasi Anda. Untuk mengetahui informasi selengkapnya, lihat Memantau kondisi dan performa aplikasi.
Untuk mengetahui petunjuk mendetail tentang cara menggunakan dasbor standar dan menjelajahi data telemetri, lihat Melihat telemetri aplikasi.
Pembersihan
Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut.
- Batalkan pendaftaran layanan.
- Hapus aplikasi global.
- Jika Anda menggunakan Terraform untuk men-deploy aplikasi, jalankan
terraform destroydi direktori yang berisi file Terraform untuk membatalkan penyediaan semua resource yang Anda buat. - Opsional: Jika Anda membuat project baru untuk panduan memulai ini, hapus project tersebut.