Activer Personalized Service Health pour tous les projets d'une organisation ou d'un dossier
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Ce document décrit un script qui permet à chaque projet d'une organisation ou d'un dossier de traiter les événements d'état des services. Il accorde au principal Identity and Access Management (IAM) spécifié le rôle Lecteur Service Health, qui vous permet d'afficher les événements et d'activer l'API Service Health.
Assurez-vous de disposer des autorisations suivantes pour exécuter le script :
Autorisation de lister les projets sous le parent : resourcemanager.projects.list.
Autorisation d'ajouter IAM (rôle Lecteur Service Health) pour le principal IAM spécifié : resourcemanager.projects.setIamPolicy.
Autorisation d'activer les services Google Cloud : serviceusage.services.enable.
Pour obtenir ces autorisations, vous pouvez demander à un administrateur de vous attribuer un rôle approprié. Recherchez les autorisations dans la section Rôles prédéfinis de la page de référence sur les rôles IAM de base et prédéfinis.
Les rôles disposant des autorisations s'affichent.
Exécuter le script
Le script accepte les paramètres suivants :
PARENT_ID : ID du parent des projets. Il peut s'agir de l'ID d'une organisation ou d'un dossier. Le service d'état personnalisé sera activé pour tous les projets du parent.
(facultatif) IAM_PRINCIPAL : identifiant du compte principal ou du membre auquel le rôle Lecteur Service Health sera attribué. Il se présente généralement sous la forme suivante : PRINCIPAL_TYPE:ID. Exemple : user:my-user@example.com.
Pour obtenir la liste complète des valeurs acceptées, consultez la section Attribuer un rôle unique de la page "Gérer l'accès aux projets, aux dossiers et aux organisations".
Pour exécuter le script, procédez comme suit :
Choisissez le API VERSION : v1 ou v1beta.
Collez le script suivant dans un fichier :
#!/bin/bashPARENT_ID="$1"PRINCIPAL="$2"FAILED_PROJECTS=()forprojectin$(gcloudprojectslist--filter="parent.id: ${PARENT_ID}"--format="value(projectId)")doecho"Enabling PSH API for project $project"gcloudservicesenableservicehealth.googleapis.com--project="${project}"echo"Finished enabling PSH API for project $project"if[[-n"$PRINCIPAL"]];thenecho"Adding $PRINCIPAL as service health viewer to project $project"gcloudprojectsadd-iam-policy-binding"${project}"--member"${PRINCIPAL}"--roleroles/servicehealth.viewer
echo"Finished adding $PRINCIPAL as service health viewer to project $project"sleep5elseecho"PRINCIPAL not provided, will not grant service health viewer role. Please provide a PRINCIPAL value in order to view events."fiecho"Attempt to list events from Personalized Service Health for project $project"RESPONSE="$(curl-w"%{http_code}"-H"Authorization: Bearer $(gcloudauthprint-access-token)"-H"Content-Type: application/json"https://servicehealth.googleapis.com/APIVERSION/projects/"${project}"/locations/global/events)"HTTP_CODE=$(tail-n1 <<< "$RESPONSE")if[["$HTTP_CODE"-ne200]];thenecho"Failed to list events for project $project"echo"Response: $RESPONSE"FAILED_PROJECTS+=($project)elseecho"Successfully listed events for project $project"fidoneif[["${#FAILED_PROJECTS[@]}"-ne0]];thenecho"Listing projects that failed to activate"forprojectin"${FAILED_PROJECTS[@]}"doecho"$project"donefi
Exécutez le script. Les exemples suivants supposent que le script se trouve dans un fichier nommé activateProjects.sh :
Pour activer tous les projets de l'ID d'organisation 345678901 et accorder à l'utilisateuruser:test-user@gmail.com le rôleroles/servicehealth.viewer, exécutez la commande suivante :
Pour activer tous les projets dans l'ID d'organisation 345678901 et accorder au compte de service serviceAccount:test-proj1@example.domain.com le rôle roles/servicehealth.viewer, exécutez la commande suivante :
Il faut jusqu'à 24 heures pour que Personalized Service Health commence à traiter les événements liés à l'état des services.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/04 (UTC)."],[],[],null,["# Enable Personalized Service Health for all projects in an organization or folder\n\nThis document describes a script that enables each project in an organization\nor folder for service health events processing. It grants the\n[Identity and Access Management (IAM) principal](/iam/docs/overview#how_cloud_iam_works)\nspecified the Service Health Viewer role, which lets you view events and\nenable the Service Health API.\n\nBefore you begin\n----------------\n\n\n[Verify that billing is enabled for your Google Cloud project](/billing/docs/how-to/verify-billing-enabled#confirm_billing_is_enabled_on_a_project).\n\nEnsure that you have the following permissions to run the script:\n\n- Permission to list projects under the parent: `resourcemanager.projects.list`.\n- Permission to add IAM (Service Health Viewer role) for the specified IAM principal: `resourcemanager.projects.setIamPolicy`.\n- Permission to enable Google Cloud services: `serviceusage.services.enable`.\n\nOne way to gain these permissions is to ask an administrator to grant you an\nappropriate role. Search for the permissions in the [Predefined roles](/iam/docs/understanding-roles#predefined)\nsection of the IAM basic and predefined roles reference page.\nThe roles that have the permissions appear.\n\nRun the script\n--------------\n\nThe script accepts the following parameters:\n\n- `PARENT_ID`: ID of the parent to projects. The ID can be for an organization or a folder. All projects under the parent will have Personalized Service Health enabled.\n- (optional) `IAM_PRINCIPAL`: An identifier for the principal, or member, which\n will be granted the Service Health Viewer role. It usually has the following\n form: `PRINCIPAL_TYPE:ID`. Example:`user:my-user@example.com`.\n\n For the full list of supported values, see the\n [Grant a single role](/iam/docs/granting-changing-revoking-access#grant-single-role)\n section of the Manage access to projects, folders, and organizations page.\n\nTo run the script:\n\n1. Decide on the \u003cvar class=\"readonly\" scope=\"API_VERSION\" translate=\"no\"\u003eAPI VERSION\u003c/var\u003e: `v1` or `v1beta`.\n2. Paste the following script to a file:\n\n #!/bin/bash\n\n PARENT_ID=\"$1\" PRINCIPAL=\"$2\"\n\n FAILED_PROJECTS=()\n\n for project in $(gcloud projects list --filter=\"parent.id: ${PARENT_ID}\" --format=\"value(projectId)\")\n do\n echo \"Enabling PSH API for project $project\"\n gcloud services enable servicehealth.googleapis.com --project=\"${project}\"\n echo \"Finished enabling PSH API for project $project\"\n\n if [[ -n \"$PRINCIPAL\" ]]; then\n echo \"Adding $PRINCIPAL as service health viewer to project $project\"\n gcloud projects add-iam-policy-binding \"${project}\" --member \"${PRINCIPAL}\" --role roles/servicehealth.viewer\n echo \"Finished adding $PRINCIPAL as service health viewer to project $project\"\n sleep 5\n else echo \"PRINCIPAL not provided, will not grant service health viewer role. Please provide a PRINCIPAL value in order to view events.\"\n fi\n\n echo \"Attempt to list events from Personalized Service Health for project $project\"\n RESPONSE=\"$(curl -w \"%{http_code}\" -H \"Authorization: Bearer $(gcloud auth print-access-token)\" -H \"Content-Type: application/json\" https://servicehealth.googleapis.com/\u003cvar scope=\"API_VERSION\" translate=\"no\"\u003eAPI\u003cspan class=\"devsite-syntax-w\"\u003e \u003c/span\u003eVERSION\u003c/var\u003e/projects/\"${project}\"/locations/global/events)\" HTTP_CODE=$(tail -n1 \u003c\u003c\u003c \"$RESPONSE\")\n\n if [[ \"$HTTP_CODE\" -ne 200 ]] ; then\n echo \"Failed to list events for project $project\"\n echo \"Response: $RESPONSE\"\n FAILED_PROJECTS+=($project)\n else\n echo \"Successfully listed events for project $project\"\n fi\n done\n\n if [[ \"${#FAILED_PROJECTS[@]}\" -ne 0 ]]; then\n echo \"Listing projects that failed to activate\"\n for project in \"${FAILED_PROJECTS[@]}\"\n do\n echo \"$project\"\n done\n fi\n\n3. Run the script. The following examples assume the script is in a file named\n `activateProjects.sh`:\n\n - To activate all projects in organization ID `345678901` and grant\n user`user:test-user@gmail.com` the role of`roles/servicehealth.viewer`,\n run:\n\n bash activateProjects.sh 345678901 \"user:test-user@gmail.com\"\n\n - To activate all projects in organization ID `345678901` and grant\n service account `serviceAccount:test-proj1@example.domain.com` the role\n of`roles/servicehealth.viewer`, run:\n\n bash activateProjects.sh 345678901 \"serviceAccount:test-proj1@example.domain.com\"\n\nPersonalized Service Health will take up to 24 hours to start processing service health\nevents."]]