Mengakses resource global secara regional untuk ketersediaan tinggi

Dengan menggunakan skrip penskalaan otomatis atau layanan runtime di Compute Engine, Anda dapat mengotomatiskan pipeline continuous integration dan continuous deployment (CI/CD). Namun, karena resource ini sangat bergantung pada definisi resource global saat membuat kueri endpoint API global, pendekatan ini dapat menimbulkan satu titik kegagalan di seluruh arsitektur multi-region Anda.

Untuk mengurangi risiko ini, Anda dapat mengonfigurasi layanan untuk mengakses tampilan regional resource global. Dengan mengirim permintaan GET dan LIST ke endpoint hanya baca yang diregionalkan dalam region yang sama dengan tempat workload komputasi Anda berjalan, layanan Anda akan mengisolasi penggunaan API dari potensi pemadaman layanan di bidang kontrol global atau di region lain. Untuk mengetahui informasi selengkapnya tentang endpoint hanya baca yang diregionalkan dan praktik terbaik ketahanan, lihat Menggunakan tampilan regional untuk pembacaan bidang kontrol yang tangguh.

Sebelum memulai

  • Siapkan autentikasi jika Anda belum melakukannya. Autentikasi memverifikasi identitas Anda untuk mengakses Google Cloud layanan dan API. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine dengan memilih salah satu opsi berikut:

    Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:

    Konsol

    Saat menggunakan Google Cloud konsol untuk mengakses Google Cloud layanan dan API, Anda tidak perlu menyiapkan autentikasi.

    gcloud

    1. Instal Google Cloud CLI. Setelah penginstalan, inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:

      gcloud init

      Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu .

  • Tetapkan region dan zona default.
  • REST

    Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.

      Instal Google Cloud CLI.

      Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu .

    Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam Google Cloud dokumentasi autentikasi.

Peran yang diperlukan

Agar mendapatkan izin yang Anda perlukan untuk mengakses resource global secara regional, minta administrator untuk memberi Anda peran IAM Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) di project atau OS image. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin yang diperlukan untuk mengakses resource global secara regional. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk mengakses resource global secara regional:

  • Untuk mendapatkan tampilan regional untuk project: compute.projects.get di project
  • Untuk mendapatkan tampilan regional untuk OS image: compute.images.get dan compute.images.list di project atau OS image

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Resource project

Anda bisa mendapatkan tampilan regional resource project global menggunakan endpoint hanya baca projectViews. Saat Anda membuat kueri endpoint projectViews, Compute Engine akan menampilkan objek resource compute.Project global standar. Resource itu sendiri tetap global.

Mendapatkan tampilan regional resource project

Anda bisa mendapatkan tampilan regional project global menggunakan Google Cloud CLI atau REST API.

gcloud

Untuk mendeskripsikan project global Anda melalui bidang kontrol untuk region tertentu, jalankan perintah gcloud compute project-views describe command:

gcloud compute project-views describe \
    --region=REGION \
    --project=PROJECT_ID

Ganti kode berikut:

  • REGION: Google Cloud region untuk permintaan API—misalnya, us-central1.
  • PROJECT_ID: project ID Anda.

REST

Untuk mendeskripsikan project global Anda melalui bidang kontrol untuk region tertentu, kirim permintaan GET ke metode projectViews.

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/projectViews"

Ganti kode berikut:

  • PROJECT_ID: project ID Anda.
  • REGION: Google Cloud region untuk permintaan API —misalnya, us-central1.

API akan menampilkan representasi resource compute.Project standar secara langsung.

{
  "kind": "compute#project",
  "id": "1234567890123456789",
  "creationTimestamp": "2024-01-15T10:00:00.000-08:00",
  "name": "my-project12345",
  "commonInstanceMetadata": {
    "items": [
      {
        "key": "example-key",
        "value": "example-value"
      }
    ]
  },
  "selfLink": "https://www.googleapis.com/compute/v1/projects/my-project12345",
  "defaultServiceAccount": "SERVICE_ACCOUNT_EMAIL"
}

Resource OS image

Anda bisa mendapatkan tampilan regional resource OS image global menggunakan endpoint hanya baca imageViews. Saat Anda membuat kueri endpoint imageViews, Compute Engine akan menampilkan objek resource compute.Image global standar. Resource itu sendiri tetap global.

Mendapatkan daftar regional resource OS image

Anda dapat mencantumkan semua OS image global yang tersedia untuk project Anda melalui endpoint regional tertentu menggunakan gcloud CLI atau REST API.

gcloud

Untuk mencantumkan OS image global menggunakan endpoint regional, jalankan perintah gcloud compute image-views list command:

gcloud compute image-views list \
    --region=REGION \
    --project=PROJECT_ID

Ganti kode berikut:

  • REGION: Google Cloud region untuk permintaan API —misalnya, us-central1.
  • PROJECT_ID: project ID Anda.

REST

Untuk mencantumkan OS image global menggunakan endpoint regional, kirim permintaan GET ke metode imageViews:

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/imageViews"

Ganti kode berikut:

  • PROJECT_ID: project ID Anda.
  • REGION: Google Cloud region untuk permintaan API —misalnya, us-central1.

Mendapatkan tampilan regional resource OS image

Anda dapat mengambil informasi untuk OS image global tertentu melalui endpoint regional menggunakan gcloud CLI atau REST API.

gcloud

Untuk mengambil detail OS image global menggunakan endpoint regional, jalankan perintah gcloud compute image-views describe:

gcloud compute image-views describe IMAGE_NAME \
    --region=REGION \
    --project=PROJECT_ID

Ganti kode berikut:

  • IMAGE_NAME: nama resource OS image global.
  • REGION: Google Cloud region untuk permintaan API —misalnya, us-central1.
  • PROJECT_ID: project ID Anda.

REST

Untuk mengambil detail OS image global menggunakan endpoint regional, kirim GET permintaan ke imageViews metode tertentu:

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/imageViews/IMAGE_NAME"

Ganti kode berikut:

  • PROJECT_ID: project ID Anda.
  • REGION: Google Cloud region untuk permintaan API—misalnya, us-central1.
  • IMAGE_NAME: nama resource OS image global.

API akan menampilkan representasi resource compute.Image standar secara langsung.

{
  "kind": "compute#image",
  "id": "1234567890123456789",
  "creationTimestamp": "2024-01-15T10:00:00.000-08:00",
  "name": "my-image12345",
  "sourceDisk": "https://www.googleapis.com/compute/v1/projects/my-project12345/zones/us-central1-a/disks/my-disk12345",
  "sourceDiskId": "1234567890123456789",
  "sourceType": "RAW",
  "status": "READY",
  "selfLink": "https://www.googleapis.com/compute/v1/projects/my-project12345/global/images/my-image12345"
}

Langkah berikutnya