Membuat aplikasi dari resource yang ada

Panduan memulai ini menunjukkan cara mengatur resource yang ada Google Cloud di aplikasi App Hub dengan mendaftarkannya sebagai layanan. Pertama, Anda men-deploy komponen contoh, yang kemudian Anda gunakan untuk menentukan aplikasi web global di App Hub.

Panduan memulai ini mendukung pengguna yang ingin menggunakan infrastruktur yang ada untuk mendapatkan visibilitas dan kontrol operasional dengan mengelompokkan Google Cloud resource ke dalam aplikasi logis.

Sebelum memulai

Sebelum memulai panduan memulai ini, lakukan hal berikut:

  1. Pilih model penyiapan aplikasi Anda. Panduan memulai ini mengasumsikan bahwa Anda telah menentukan batas pengelolaan aplikasi dan membuat aplikasi menggunakan project pengelolaan. Untuk mengetahui informasi selengkapnya tentang konfigurasi resource ini, lihat Model resource App Hub.

  2. Catat project ID project pengelolaan yang akan digunakan di seluruh dokumen ini. Untuk mengetahui informasi selengkapnya, lihat Menemukan nama, nomor, dan ID project.

  3. Pastikan API berikut diaktifkan di project pengelolaan. Saat Anda menyiapkan project pengelolaan, sebagian besar API yang Anda perlukan untuk panduan memulai ini akan diaktifkan secara otomatis.

    • Compute Engine API (compute.googleapis.com)
    • Infrastructure Manager API (config.googleapis.com)

    Aktifkan API

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk mengaktifkan API yang diperlukan dan membuat aplikasi contoh dari resource yang ada, minta administrator untuk memberi Anda peran IAM berikut pada project pengelolaan:

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 serangkaian resource contoh terlebih dahulu yang nantinya akan Anda gunakan untuk menentukan aplikasi global di App Hub dengan mendaftarkannya sebagai komponen aplikasi: Google Cloud

Ikuti langkah-langkah berikut untuk men-deploy resource ini:

gcloud

  1. Tetapkan variabel lingkungan yang diperlukan:

    export PROJECT_ID="PROJECT_ID"
    export REGION="REGION"
    

    Ganti kode berikut:

  2. Deploy layanan Cloud Run contoh bernama hello-run:

    gcloud run deploy hello-run \
        --image=us-docker.pkg.dev/cloudrun/container/hello \
        --allow-unauthenticated \
        --region=${REGION} \
        --project=${PROJECT_ID}
    
  3. Buat Load Balancer Aplikasi eksternal global. Proses ini melibatkan langkah-langkah berikut:

    1. Buat grup endpoint jaringan (NEG) serverless bernama 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-run Anda.

    2. 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}
      
    3. 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}
      
    4. 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}
      
    5. Buat proxy HTTP untuk menerima permintaan dan mengarahkannya menggunakan peta URL:

      gcloud compute target-http-proxies create hello-http-proxy \
          --url-map=hello-url-map \
          --project=${PROJECT_ID}
      
    6. 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

  1. Buat file main.tf dan 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:

    Blok ini menentukan Google Cloud penyedia dan mengonfigurasi layanan Cloud Run yang menghadap publik menggunakan image hello-world container contoh. Blok ini juga menyertakan binding kebijakan IAM untuk mengizinkan pemanggilan yang tidak diautentikasi, sehingga layanan dapat diakses secara publik.

  2. Tambahkan kode berikut ke file main.tf Anda 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 mengarahkannya menggunakan peta URL.
    • Aturan penerusan global, yang menyediakan alamat IP publik dan port untuk menangani permintaan pengguna yang masuk dan mengarahkannya ke proxy.
  3. Lakukan inisialisasi dan terapkan konfigurasi Terraform:

    terraform init
    terraform apply
    

    Terraform men-deploy resource ke project Anda.

Menentukan aplikasi di App Hub

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

  1. Buka halaman Applications dari App Hub:

    Buka Applications

  2. Klik Create application.

  3. Di tab Application details, pilih Global sebagai lokasi aplikasi.

  4. Masukkan my-global-app untuk Application name.

  5. Secara opsional, tambahkan nama tampilan dan deskripsi untuk aplikasi.

  6. Klik Continue.

  7. Di tab Application resources, telusuri resource infrastruktur dan centang kotak aturan penerusan dan layanan Cloud Run.

  8. Klik Continue.

  9. Di tab Attributes and owners, Anda dapat menambahkan atribut untuk aplikasi, seperti tingkat kekritisan, lingkungan, dan pemilik aplikasi.

    Anda dapat memilih untuk menggunakan atribut dan pemilik yang sama untuk resource yang Anda daftarkan ke aplikasi atau menentukannya nanti.

  10. Klik Create.

Saat aplikasi dibuat, halaman Applications akan menampilkan detailnya, termasuk resource yang Anda daftarkan sebagai layanan.

gcloud

  1. Buat aplikasi:

    gcloud apphub applications create my-global-app \
        --location=global \
        --display-name="My Global Application" \
        --project=${PROJECT_ID}
    
  2. 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.

  3. 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_ID dengan ID aturan penerusan.

  4. 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_ID dengan ID layanan Cloud Run.

Terraform

  1. Buat file application.tf dan 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 google_apphub_application resource untuk membuat pengelompokan logis komponen aplikasi.

    Contoh ini membuat aplikasi global dan menentukan atribut untuk tata kelola dan kemampuan penemuan, seperti tingkat kekritisan, lingkungan, dan pemilik. Anda dapat mengubah nilai tersebut untuk konfigurasi contoh Anda.

  2. Tambahkan kode berikut ke application.tf untuk 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 menemukan nama resource infrastruktur Anda yang ada berdasarkan URI-nya.google_apphub_discovered_service Langkah ini memungkinkan App Hub mengidentifikasi resource tertentu yang ingin Anda daftarkan sebagai layanan.

  3. Tambahkan kode berikut ke application.tf untuk 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_service secara resmi mendaftarkan resource yang ditemukan di aplikasi Anda sebagai layanan. Langkah ini menautkan infrastruktur Anda dengan aplikasi yang Anda tentukan di App Hub.

  4. Lakukan inisialisasi dan terapkan konfigurasi Terraform:

    terraform init
    terraform apply
    

    Terraform mendaftarkan resource ke aplikasi my-global-app Anda di App Hub.

Opsional: Memantau aplikasi baru Anda

Setelah menentukan aplikasi Anda di App Hub, Anda dapat menggunakan produk terintegrasi Google Cloud untuk memantau kondisi dan performanya:

  • Melihat data operasional di Cloud Hub:

    1. Siapkan Cloud Hub.

    2. Di Google Cloud Konsol, buka halaman Home Cloud Hub.

      Buka Home

    3. 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:

    1. Siapkan Google Cloud Observability untuk Pemantauan Aplikasi.

    2. Di Google Cloud Konsol, buka halaman Application monitoring:

      Buka Application monitoring

      Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.

    3. Dari pemilih project di Google Cloud Konsol, pilih project pengelolaan.

      Halaman Application Monitoring menampilkan dasbor bawaan untuk aplikasi Anda. Untuk mengetahui informasi selengkapnya, lihat Memantau kondisi dan performa aplikasi.

      Untuk mengetahui petunjuk mendetail tentang cara menggunakan dasbor bawaan dan menjelajahi data telemetri, lihat Melihat telemetri aplikasi.

Pembersihan

Agar akunAnda tidak dikenai biaya untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut. Google Cloud

  1. Batalkan pendaftaran layanan.
  2. Hapus aplikasi global.
  3. Jika Anda menggunakan Terraform untuk men-deploy aplikasi, jalankan terraform destroy di direktori yang berisi file Terraform Anda untuk membatalkan penyediaan semua resource yang Anda buat.
  4. Opsional: Jika Anda membuat project baru untuk panduan memulai ini, hapus project tersebut.

Langkah berikutnya