プログラムによる予算アラート通知を管理する

概要

予算のデフォルトの動作では、予算のアラートしきい値ルールがメール通知をトリガーすると、対象の Cloud 請求先アカウントの請求先アカウント管理者と請求先アカウント ユーザーにアラートメールが送信されます。

予算アラート通知の図
図 1: 予算アラート通知のデフォルトのメール機能と、プログラムによる通知に Pub/Sub を使用して費用管理レスポンスを自動化するオプションの方法を示しています。

ただし、予算が重要で時間的影響を受けやすい場合は、メール通知は Google Cloud の費用に関する最新情報を入手するのに最適な方法ではありません。メール以外にも、プログラムによる通知を使用して費用管理レスポンスを自動化できます。以下を含む費用管理レスポンスの例:

  • 自動的な課金の無効化とリソースの終了による Google Cloud の費用の制限。
  • 予算メッセージの他のメディア(Slack など)への転送。
  • 割り当て調整によるリソース使用量の抑制。

詳しくはプログラムによる予算通知の例をご覧ください。

このタスクに必要な権限

Pub/Sub トピックを設定して Cloud Billing 予算にリンクするには、次のロールが必要です。

Google Cloud の権限の詳細については、以下をご覧ください。

Pub/Sub のプログラムによる通知の設定と有効化の方法

予算の現在のステータスを含む Pub/Sub メッセージを受け取るようにプログラムによる通知を有効にするには、Pub/Sub トピックを Cloud Billing 予算に関連付けます。

予算にリンクされている Pub/Sub トピックを接続、編集、削除するには、次のことを行います。

1. Pub/Sub トピックの作成

Cloud Billing 用の Pub/Sub トピックを構成して、予算アラートを発行します。構成済みの Cloud Billing 予算の Pub/Sub トピックがすでにある場合は、すべての予算に対してそれを再利用できます。また、予算ごとに一意のトピックを作成することもできます。

  1. Google Cloud Console の Pub/Sub ページに移動します。

    Cloud Console の Pub/Sub にログイン

  2. プロジェクトを選択します。

  3. [トピックを作成する] をクリックします。

  4. [トピック ID] フィールドにトピック名を入力し、[トピックを作成する] をクリックします。

2. Cloud Billing の予算を Pub/Sub トピックに関連付ける

Cloud Billing の予算を Pub/Sub トピックに関連付ける方法は次のとおりです。

  1. Google Cloud Console にログインします。

    Cloud Console にログインする

  2. Console のナビゲーション メニュー)を開き、[お支払い] を選択します。

    複数の Cloud 請求先アカウントがある場合は、次のいずれかを行います。

    • 現在のプロジェクトの Cloud Billing を管理するには、[リンクされた請求先アカウントに移動] を選択します。
    • 別の Cloud 請求先アカウントを確認するには、[請求先アカウントを管理する] を選択し、予算を管理するアカウントを選択します。
  3. [お支払い] ナビゲーション メニューから [予算とアラート] を選択します。

  4. 必要に応じて予算を作成します。既存の予算とアラートルールを編集するには、予算名をクリックします。

  5. [アクション] セクションの [通知の管理] で、[Pub/Sub トピックをこの予算に接続する] を選択します。

  6. [プロジェクト] フィールドで [プロジェクトを選択する] をクリックして、設定した Pub/Sub トピックを含むプロジェクトを選択します。前のセクションの推奨事項に従っている場合、これは請求管理用の Google Cloud プロジェクトです。

  7. [Cloud Pub/Sub トピックを選択する] で、既存のトピックを選択するか、[トピックを作成する] を選択して新しいトピックを作成します。

    • 新しいトピックを作成する場合は、[トピック ID] フィールドにトピック名を入力し、[トピックを作成する] をクリックします。
    • 作成後、トピックが選択されます。
  8. [保存] をクリックします。

通知形式

Pub/Sub トピックに送信される通知は、次の 2 つの部分で構成されます。

  • 属性: イベントを記述する Key-Value ペア。
  • データ: 予算アラートの詳細を記述する JSON オブジェクトを含む文字列。

属性

属性は、Cloud Billing から Pub/Sub トピックに送信されるすべての通知に含まれる Key-Value ペアです。通知ペイロードに関係なく、通知には次の Key-Value ペアのセットが含まれます。

属性名 説明
billingAccountId 01D4EE-079462-DFD6EC 予算を所有する Cloud 請求先アカウントの ID。
budgetId de72f49d-779b-4945-a127-4d6ce8def0bb Cloud 請求先アカウント内の予算アラートの ID。
schemaVersion 1.0 通知のスキーマ バージョン。

データ

スキーマ バージョン 1.x の場合、予算アラートの詳細は base64 でエンコードされた UTF-8 文字列で返されます。これには、次のプロパティを持つ JSON オブジェクトが含まれています。

データ 説明
budgetDisplayName "My Personal Budget" 予算に割り当てられた、人が読める形式の名前。
costAmount 140.321 発生した費用。追跡されるコストのタイプは、予算のフィルタと設定によって異なります。
costIntervalStart "2018-02-01T08:00:00Z" 予算アラート期間の開始。報告されるコストには、この時点から使用が開始されたコストが含まれます。現在、この日付は予算の使用が発生した月の最初の日になります。
budgetAmount 152.557 予算に割り当てられた金額。
budgetAmountType "SPECIFIED_AMOUNT" 予算の金額タイプ。これは、「SPECIFIED_AMOUNT」(定額)または「LAST_MONTH_COST」(先月の費用)のいずれかです。
alertThresholdExceeded 0.9 最大の費用の実値のしきい値。これを超えるとアラートが通知されます。値は 10 進数形式のパーセントです(たとえば、0.9 は 90% です)。費用の実値がしきい値を超えない場合、このキーは存在しません。
forecastThresholdExceeded 0.2 最大の予測費用アラートのしきい値。これを超えるとアラートが通知されます。値は 10 進数形式のパーセントです(たとえば、0.2 は 20% です)。予測費用がしきい値を超えない場合、このキーは存在しません。
currencyCode "USD" 予算アラートの通貨。すべての費用と予算アラートの金額はこの通貨で表示されます。

Pub/Sub への通知の配信保証

予算を作成して Pub/Sub トピックに関連付けると、ここで説明するようにプログラムによる通知を受け取ることができます。

  • 予算通知は、予算の現在のステータスとともに 1 日に数回、Pub/Sub トピックに送信されます。これは、予算アラートメールとは異なり、予算しきい値に達した場合にのみ送信されます。
  • Pub/Sub 通知は、Cloud 請求先アカウントで使用量がない場合にも送信されます。
  • 最初の通知を受け取るまでに数時間かかる場合があります。
  • Pub/Sub は at-least-once(最低 1 回)配信のみを保証します。メッセージが複数回送信されたり、メッセージが順不同で到着したりする場合があります。
  • Pub/Sub トピックの誤構成により配信に失敗した場合、通知は表示されません

    次のいずれか 1 つの理由により、配信が失敗することがあります。

    • Pub/Sub トピックはもう存在していません。
    • Cloud Billing には、Pub/Sub トピックへの発行権限がもうありません。
    • 通知の割り当てを超過しました。