Dokumen ini menjelaskan skrip yang mengaktifkan setiap project di organisasi atau folder untuk pemrosesan peristiwa kesehatan layanan. Tindakan ini akan memberikan peran Service Health Viewer yang ditentukan oleh prinsipal Identity and Access Management (IAM), yang memungkinkan Anda 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 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 Google Cloud layanan:
serviceusage.services.enable
.
Salah satu cara untuk mendapatkan izin ini adalah dengan meminta administrator untuk memberi Anda peran yang sesuai. Telusuri 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 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
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
kepada akun layananserviceAccount:test-proj1@example.domain.com
, jalankan:bash activateProjects.sh 345678901 "serviceAccount:test-proj1@example.domain.com"
Personalized Service Health akan memerlukan waktu hingga 24 jam untuk mulai memproses peristiwa status layanan.