Dokumen ini menjelaskan skrip yang mengaktifkan pemrosesan peristiwa kesehatan layanan untuk setiap project dalam organisasi atau folder. Peran ini memberikan peran Service Health Viewer kepada principal Identity and Access Management (IAM) yang ditentukan, sehingga Anda dapat melihat peristiwa dan mengaktifkan Service Health API.
Sebelum memulai
Make sure that billing is enabled for your Google Cloud project.
Pastikan Anda memiliki izin berikut untuk menjalankan skrip:
- Izin untuk mencantumkan project di induk:
resourcemanager.projects.list
. - Izin untuk menambahkan IAM
(peran Service Health Viewer) untuk akun utama IAM
yang ditentukan:
resourcemanager.projects.setIamPolicy
. - Izin untuk mengaktifkan Google Cloud layanan:
serviceusage.services.enable
.
Salah satu cara untuk mendapatkan izin ini adalah dengan meminta administrator untuk memberi Anda peran yang sesuai. Cari izin di bagian Peran bawaan di halaman referensi peran dasar dan bawaan IAM. Peran yang memiliki izin akan muncul.
Jalankan skrip:
Skrip ini menerima parameter berikut:
PARENT_ID
: ID induk ke project. ID dapat berupa ID organisasi atau folder. Semua project di induk akan mengaktifkan Kesehatan Layanan yang Dipersonalisasi.(opsional)
IAM_PRINCIPAL
: ID untuk akun utama, atau anggota, yang akan diberi peran Pelihat Kesehatan Layanan. Biasanya memiliki bentuk berikut:PRINCIPAL_TYPE:ID
. Contoh:user:my-user@example.com
.Untuk mengetahui daftar lengkap nilai yang didukung, lihat bagian Memberikan satu peran di halaman Mengelola akses ke project, folder, dan organisasi.
Untuk menjalankan skrip:
- Tentukan API VERSION:
v1
atauv1beta
. Tempel skrip berikut ke file:
#!/bin/bash PARENT_ID="$1" PRINCIPAL="$2" FAILED_PROJECTS=() for project in $(gcloud projects list --filter="parent.id: ${PARENT_ID}" --format="value(projectId)") do echo "Enabling PSH API for project $project" gcloud services enable servicehealth.googleapis.com --project="${project}" echo "Finished enabling PSH API for project $project" if [[ -n "$PRINCIPAL" ]]; then echo "Adding $PRINCIPAL as service health viewer to project $project" gcloud projects add-iam-policy-binding "${project}" --member "${PRINCIPAL}" --role roles/servicehealth.viewer echo "Finished adding $PRINCIPAL as service health viewer to project $project" sleep 5 else echo "PRINCIPAL not provided, will not grant service health viewer role. Please provide a PRINCIPAL value in order to view events." fi echo "Attempt to list events from Personalized Service Health for project $project" RESPONSE="$(curl -w "%{http_code}" -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://servicehealth.googleapis.com/API VERSION/projects/"${project}"/locations/global/events)" HTTP_CODE=$(tail -n1 <<< "$RESPONSE") if [[ "$HTTP_CODE" -ne 200 ]] ; then echo "Failed to list events for project $project" echo "Response: $RESPONSE" FAILED_PROJECTS+=($project) else echo "Successfully listed events for project $project" fi done if [[ "${#FAILED_PROJECTS[@]}" -ne 0 ]]; then echo "Listing projects that failed to activate" for project in "${FAILED_PROJECTS[@]}" do echo "$project" done fi
Jalankan skrip. Contoh berikut mengasumsikan skrip berada dalam file bernama
activateProjects.sh
:Untuk mengaktifkan semua project di ID organisasi
345678901
dan memberikan peranroles/servicehealth.viewer
kepada penggunauser:test-user@gmail.com
, jalankan:bash activateProjects.sh 345678901 "user:test-user@gmail.com"
Untuk mengaktifkan semua project di ID organisasi
345678901
dan memberikan peranroles/servicehealth.viewer
ke akun layananserviceAccount:test-proj1@example.domain.com
, jalankan:bash activateProjects.sh 345678901 "serviceAccount:test-proj1@example.domain.com"
Personalized Service Health memerlukan waktu hingga 24 jam untuk mulai memproses peristiwa kesehatan layanan.