このドキュメントでは、クライアント ライブラリまたは Google Cloud CLI を使用して通知チャンネルを作成、管理する方法を説明します。どちらも Cloud Monitoring API を呼び出します。Cloud Monitoring は、通知チャンネルを使用して、アラート ポリシーの条件が満たされたときにユーザーまたはユーザーのオンコール チームに通知します。使用可能なチャンネルの種類がいくつかあり、各種類は通知チャンネル記述子に記述されています。特定の種類の通知チャンネルは、その種類の記述子のインスタンスになっています。アラート ポリシーには、通知経路として使用する通知チャネルへの参照が含まれます。
通知チャネルは、アラート ポリシーで使用する前に存在している必要があります。通知チャンネル記述子は提供されますが、通知チャンネルは自分で作成する必要があります。
Google Cloud コンソールを使用して通知チャンネルを構成するには、通知チャンネルの作成と管理をご覧ください。
このドキュメントで使用するコードサンプルは、例: バックアップと復元で説明しているアラート ポリシーの API から抽出したものです。
API について
NotificationChannel
リソースでは、通知チャンネルを管理するオペレーションがサポートされています。また、チャンネルの verificationStatus
フィールドの管理に関連するオペレーションもサポートしています。
- 確認コードの送信
- 検証されたチャネルの検証ステータスを、同じプロジェクトまたは新しいプロジェクトの他の同一のチャネルにコピーするためにコードを生成する
- 前の 2 つのオペレーションで作成されたコードを使用してチャンネルを検証する
詳細については、notificationChannels
リファレンス ドキュメントをご覧ください。
始める前に
-
Cloud Monitoring API を使用して通知チャンネルを表示および構成するために必要な権限を取得するには、プロジェクトに対する Monitoring NotificationChannel 編集者(
roles/monitoring.notificationChannelEditor
)IAM ロールを付与するよう管理者に依頼します。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
Cloud Monitoring のロールの詳細については、Identity and Access Management を使用してアクセスを制御するをご覧ください。
-
Select the tab for how you plan to use the samples on this page:
gcloud
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Google Cloud CLI を使用する場合は、デフォルト プロジェクトを構成します。
gcloud config set project PROJECT_ID
前述のコマンドを実行する前に、次のように置き換えます。
- PROJECT_ID: プロジェクトの ID。App Hub 構成の場合は、App Hub ホスト プロジェクトまたはアプリ対応フォルダの管理プロジェクトを選択します。
name
: チャンネル記述子の完全修飾リソース名type
: チャンネル タイプを示す名前の部分displayName
:type
フィールドの説明文(表示用)description
: チャンネルの簡単な説明labels
: チャンネル タイプに固有の一連のフィールド。各チャンネル タイプには独自のラベルセットがあります。Slack アプリを構成します。
- Slack アプリをまだお持ちでない場合は、Slack リファレンス ドキュメントの説明に従って作成したり、ワークスペースにインストールします。
chat:write
とchat:write.public
の OAuth スコープを使用して Slack アプリを構成します。- アプリの bot ユーザーの OAuth トークンをコピーします。
通知チャンネルの構成を定義するファイルを作成します。
auth_token
キーに Slack アプリの bot ユーザーの OAuth トークン値が設定されたラベルを追加します。例:{ "description": "A Slack notification channel", "displayName": "Slack", "type": "slack", "enabled": true, "labels": { "auth_token": "OAUTH_TOKEN_VALUE", "channel_name": "SLACK_CHANNEL_NAME" } }
次のコマンドを実行して、通知チャンネルを作成します。
gcloud beta monitoring channels create --channel-content-from-file="FILE_NAME"
-
Google Cloud コンソールで [ログ エクスプローラ] ページに移動します。
このページを検索バーで検索する場合は、小見出しが「Logging」の結果を選択します。
クエリを入力して実行します。通知チャンネル エラーに固有のクエリについては、Cloud Monitoring のクエリをご覧ください。
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
C#
ローカル開発環境でこのページの .NET サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
詳細については、 Google Cloud 認証ドキュメントのローカル開発環境の ADC の設定をご覧ください。
Go
ローカル開発環境でこのページの Go サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
詳細については、 Google Cloud 認証ドキュメントのローカル開発環境の ADC の設定をご覧ください。
Java
ローカル開発環境でこのページの Java サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
詳細については、 Google Cloud 認証ドキュメントのローカル開発環境の ADC の設定をご覧ください。
Node.js
ローカル開発環境でこのページの Node.js サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
詳細については、 Google Cloud 認証ドキュメントのローカル開発環境の ADC の設定をご覧ください。
PHP
ローカル開発環境でこのページの PHP サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
詳細については、 Google Cloud 認証ドキュメントのローカル開発環境の ADC の設定をご覧ください。
Python
ローカル開発環境でこのページの Python サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
詳細については、 Google Cloud 認証ドキュメントのローカル開発環境の ADC の設定をご覧ください。
通知チャンネルのタイプを一覧表示する
Monitoring には、多数の組み込み型通知チャンネルが用意されています。これらの種類は、それぞれ
NotificationChannelDescriptor
として記述されています。これらの記述子にはtype
フィールドがあります。このフィールドの値は、そのチャンネルの種類のインスタンスを作成するときの ID として機能します。Cloud Monitoring API または Google Cloud CLI で作成できるチャンネル タイプのリストを取得するには、次のコマンドを入力します。$ gcloud beta monitoring channel-descriptors list --format='value(type)' campfire email google_chat hipchat pagerduty pubsub slack sms webhook_basicauth webhook_tokenauth
通知チャンネルについては、通知チャンネルの作成と管理をご覧ください。
目的の通知チャンネルがサポートされていない場合は、Pub/Sub への通知の送信に依存するパイプラインの作成を検討してください。Flask を使用する Python の例については、Cloud Monitoring と Cloud Run を使用したカスタム通知の作成をご覧ください。他の例については、cloud-alerting-notification-forwarding Git リポジトリをご覧ください。
Google Cloud プロジェクト内のすべてのチャンネル記述子を取得するには、
notificationChannelDescriptors.list
メソッドを使用します。取得した記述子は読み取り専用です。特定の記述子を探していて、その名前がわかっている場合は、
notificationChannelDescriptors.get
メソッドを使用するとそのチャンネル記述子だけを取得できます。チャンネル記述子の名前は、projects/[PROJECT_ID]/notificationChannelDescriptors/[CHANNEL_TYPE]
という形式です。[CHANNEL_TYPE]
は上記の種類のいずれかとなります。例:projects/[PROJECT_ID]/notificationChannelDescriptors/email
gcloud
Google Cloud プロジェクト内のすべての通知チャンネル記述子を一覧取得するには、
gcloud beta monitoring channel-descriptors list
コマンドを使用します。gcloud beta monitoring channel-descriptors list
成功すると、
list
コマンドは、指定されたプロジェクト内のすべてのチャンネル記述子のリストを提供します。たとえば、email
チャンネル記述子は次のようにリストに表示されます。--- description: A channel that sends notifications via email. displayName: Email labels: - description: An address to send email. key: email_address name: projects/[PROJECT_ID]/notificationChannelDescriptors/email type: email ---
すべてチャンネル記述子に次のフィールドがあります。
チャンネルが作成される際に、
enabled
フィールドの値も指定されます(デフォルト値はtrue
)。単一のチャンネル記述子を一覧取得するには、
gcloud beta monitoring channel-descriptors describe
を使用し、チャンネル記述子の名前を指定します。完全修飾名を指定する必要はありません。たとえば、次のコマンドを実行すると、上記のリストが返されます。gcloud beta monitoring channel-descriptors describe email gcloud beta monitoring channel-descriptors describe projects/[PROJECT_ID]/notificationChannelDescriptors/email
詳細については、
gcloud beta monitoring channel-descriptors list
とdescribe
のリファレンスをご覧ください。describe
コマンドは、API のnotificationChannelDescriptors.get
メソッドに相当します。通知チャンネルを作成する
Google Cloud CLI を使用して、JSON ファイルまたは YAML ファイルから Google Cloud プロジェクトの通知チャンネルを作成するか、プログラムで作成できます。
通知チャンネルを作成するには、その記述子のフィールドに値を指定します。大半は
type
のように、どの通知チャンネル記述子にも対応しています(notificationChannelDescriptors
を参照)。各記述子には一連のラベルが割り当てられます。このセットは記述子によって異なります。特定の記述子のラベルセットを確認するには、通知チャンネルのタイプを一覧取得するで説明されている
gcloud beta monitoring channel-descriptors describe
コマンドを使用して記述子を取得します。たとえば、email
チャンネル記述子を取得すると、1 つのラベルが表示されます。labels: - description: An address to send email. key: email_address
pubsub
チャンネル記述子には、Pub/Sub トピックを識別する単一のラベルも含まれています。ただし、チャンネルには複数のラベルを含めることができます。たとえば、slack
チャンネル記述子には 2 つのラベルがあります。labels: - description: A permanent authentication token provided by Slack. This field is obfuscated by returning only a few characters of the key when fetched. key: auth_token - description: The Slack channel to which to post notifications. key: channel_name
webhook_basicauth
チャンネル記述子を取得すると、いくつかのラベルが表示されます。labels: - description: The password. The field is obfuscated when the channel is fetched. key: password - description: The public URL to which to publish the webhook. key: url - description: The username. key: username
プログラムまたはコマンドラインから新しいチャネルを作成する場合、仕様内の
type
の値は、対応する通知チャネル記述子のtype
フィールドと一致しなければなりません。必要なラベルキーもチャネル記述子と一致する必要があります。一部のラベルは、プロバイダとの認証に使用される認証情報に対応しています。チャンネルを作成するときに、これらのラベルの値をプロバイダから取得する必要があります。認証情報を取得するには、プロバイダのウェブサイトの API キー生成ページを使用するか、プロバイダとの OAuth ログインフローを行う必要があります。認証情報を取得する方法の詳細は、プロバイダによって異なります。
たとえば、JSON の新しい
pubsub
通知チャンネルの仕様は次のとおりです。{ "type": "pubsub", "displayName": "Notifications", "description": "Pub/Sub channel for notifications", "labels": { "topic": "projects/[PROJECT_ID]/topics/notificationTopic" }, }
type
値(pubsub
)と 1 つのラベルキー(topic
)が、対応するチャンネル記述子のtype
フィールドとlabels.key
フィールドに対応しています。チャンネルはデフォルトで有効になっています。アクティブでないチャンネルを作成する場合は、フィールド
enabled
に値false
を指定します。次の例で、通知チャンネルの作成手順を説明します。
gcloud
Google Cloud プロジェクトに通知チャンネルを作成するには、
gcloud beta monitoring channels create
コマンドを使用します。ファイルからチャンネルを読み込むには、--channel-content-from-file
フラグを使用してファイルを指定します。次の例では、新しい Pub/Sub チャンネルを
pubsub-channel.json
ファイルから作成します。gcloud beta monitoring channels create --channel-content-from-file="pubsub-channel.json"
このコマンドが成功すると、新しいチャンネルの名前が戻ります。たとえば、次のようになります。
Created notification channel [projects/[PROJECT_ID]/notificationChannels/1355376463305411567].
詳しくは、
gcloud beta monitoring channels create
リファレンスをご覧ください。C#
Monitoring で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Monitoring で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
Monitoring で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
Monitoring で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
Monitoring で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Monitoring で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
例: Slack 通知チャンネルを作成する
Slack アプリの通知チャンネルを構成する手順は次のとおりです。
プロジェクト内の通知チャンネルを一覧表示する
Google Cloud プロジェクト内のすべての通知チャンネルを取得するには、
notificationChannels.list
メソッドを使用します。このメソッドではfilter
オプションとorderBy
オプションもサポートされており、結果を絞り込んだり、並べ替えることもできます。並べ替えとフィルタリングをご覧ください。特定のチャンネルを探していて、その名前がわかっている場合は、
notificationChannels.get
メソッドを使用するとそのチャンネルだけを取得できます。チャネルの名前はprojects/[PROJECT_ID]/notificationChannels/[CHANNEL_ID]
という形式です。たとえば、次のようになります。projects/[PROJECT_ID]/notificationChannels/1355376463305411567
チャネルを取得すると、セキュリティ上の理由から、認証トークンや API キーなどの機密値が難読化される可能性があります。既存のチャンネルをコピーして新しいチャンネルを作成している場合は、難読化された値を修正する必要があります。
gcloud
Google Cloud プロジェクト内のすべての通知チャンネルを一覧表示するには、
gcloud beta monitoring channels list
コマンドを使用します。gcloud beta monitoring channels list
成功すると、
list
コマンドは、指定されたプロジェクト内のすべてのチャンネルのリストを提供します。たとえば、上記のコマンドは、次のエントリを含むリストを返します。--- description: E-mail channel created by gcloud as a test displayName: test e-mail channel enabled: false labels: email_address: user@example.com name: projects/[PROJECT_ID]/notificationChannels/1355376463305411567 type: email --- description: Pub/Sub channel for notifications displayName: Notifications enabled: true labels: topic: projects/[PROJECT_ID]/topics/notificationTopic name: projects/[PROJECT_ID]/notificationChannels/1355376463305411567 type: pubsub
単一のチャンネルを表示するには、
gcloud beta monitoring channels describe
を使用し、チャンネルの名前を指定します。たとえば、次のコマンドは、上記のリストに示す Pub/Sub チャンネルを返します。gcloud beta monitoring channels describe projects/[PROJECT_ID]/notificationChannels/1355376463305411567
詳細については、
gcloud beta monitoring channels list
とdescribe
のリファレンスをご覧ください。describe
コマンドは、API のnotificationChannels.get
メソッドに相当します。C#
Monitoring で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Monitoring で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
Monitoring で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
Monitoring で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
Monitoring で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Monitoring で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
プロジェクトから通知チャンネルを削除する
通知チャンネルを Google Cloud プロジェクトから削除するには、
notificationChannels.delete
メソッドを使用し、削除する通知チャンネルの名前を指定します。チャンネルの名前はNotificationChannel
インスタンス内のname
フィールドの値です。displayName
フィールドの値ではありません。チャンネルの名前はprojects/[PROJECT_ID]/notificationChannels/[CHANNEL_ID]
という形式です。たとえば、次のようになります。projects/[PROJECT_ID]/notificationChannels/1355376463305411567
デフォルトでは、アラート ポリシーによって参照されているチャンネルを削除しようとしても、そのチャンネルは削除されません。アラート ポリシーからの参照を強制的に削除し、チャンネルも削除するには、
force
オプションをtrue
に設定します。このオプションにより、このチャンネルはすべての参照ポリシーから自動的に削除されます。gcloud
通知チャンネルを削除するには、
gcloud beta monitoring channels delete
を使用し、削除するチャンネルの名前を指定します。たとえば、次のコマンドは、別の使用例で作成したemail
チャンネルを削除します。gcloud beta monitoring channels delete projects/[PROJECT_ID]/notificationChannels/1355376463305411567
詳しくは、
gcloud beta monitoring channels delete
リファレンスをご覧ください。C#
Monitoring で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
Monitoring で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
Monitoring で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
Monitoring で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Monitoring で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Monitoring で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
通知チャンネルに変更を加える
通知チャンネルに変更を加えるには、
notificationChannels.patch
メソッド(REST API 内)を使用します。他の API 実装と Google Cloud CLI では、patch
ではなく、このupdate
を呼び出します。更新オペレーションは、既存のチャネルを完全に置き換えることも、フィールドのサブセットを変更することもできます。たとえば、チャネルを有効または無効にすることができます。チャネルを無効にすると、チャネルへの通知の配信ができなくなります。変更が一時的な場合、チャンネルを参照するアラート ポリシーからチャンネルを削除するのではなく、通常はチャンネルを無効にすることをおすすめします。
gcloud
無効になっている通知チャンネルを有効にするには、
gcloud beta monitoring channels update
コマンドを使用し、--enabled
フラグを指定します。次のコマンドで、前の例で(無効状態で)作成したemail
通知チャンネルを有効にします。gcloud beta monitoring channels update projects/[PROJECT_ID]/notificationChannels/1355376463305411567 --enabled
ポリシーを無効にする場合にも同じコマンドを使用しますが、
--no-enabled
フラグを指定します。詳細については、gcloud beta monitoring channels update
リファレンスをご覧ください。update
コマンドは、REST API のnotificationChannels.patch
メソッドに相当します。C#
Monitoring で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
Monitoring で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Monitoring で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
Monitoring で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
Monitoring で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Monitoring で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
通知チャンネルのログを表示する
ログ エクスプローラを使用して、通知チャンネルのエラーを表示できます。
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-07-09 UTC。
-