Dokumen ini menjelaskan skrip yang memungkinkan setiap project di organisasi atau folder untuk pemrosesan peristiwa kesehatan layanan. Tindakan ini memberikan peran Service Health Viewer yang ditentukan oleh akun utama Identity and Access Management (IAM), yang memungkinkan Anda melihat peristiwa dan mengaktifkan Service Health API.
Sebelum memulai
Pastikan Anda memiliki izin berikut:
- Izin untuk mencantumkan project di bagian induk:
resourcemanager.projects.list
. - Izin untuk menambahkan IAM
(peran Service Health Viewer) untuk akun utama IAM
yang ditentukan:
resourcemanager.projects.setIamPolicy
. - Izin untuk mengaktifkan layanan Google Cloud :
serviceusage.services.enable.
Untuk memeriksa peran yang dapat Anda gunakan untuk menjalankan skrip:
- Buka bagian Peran bawaan di halaman referensi peran dasar dan bawaan IAM.
- Telusuri izin yang diinginkan. 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 dalam induk akan mengaktifkan Kesehatan Layanan yang Dipersonalisasi.(opsional)
IAM_PRINCIPAL
: ID untuk akun utama, atau anggota, yang akan diberi peran Service Health Viewer. ID ini 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 bahwa skrip berada dalam file bernama
activateProjects.sh
:Untuk mengaktifkan semua project di ID organisasi
1111111111
dan memberikan peranroles/servicehealth.viewer
kepada penggunauser:test-user@gmail.com
, jalankan:bash activateProjects.sh 1111111111 "user:test-user@gmail.com"
Untuk mengaktifkan semua project di ID organisasi
1111111111
dan memberikan peranroles/servicehealth.viewer
kepada akun layananserviceAccount:test-proj1@example.domain.com
, jalankan:bash activateProjects.sh 1111111111 "serviceAccount:test-proj1@example.domain.com"
Personalized Service Health akan memerlukan waktu hingga 24 jam untuk mulai memproses peristiwa kondisi layanan.