このドキュメントでは、費用がプロジェクトの予算に達したときにプロジェクトの課金を自動的に無効にする方法について説明します。プロジェクトで課金を無効にすると、無料枠サービスを含め、プロジェクト内のすべての Google Cloud サービスが停止します。より細かいレスポンスを予算通知に設定するには、通知でリソース使用量を制御するをご覧ください。
Google Cloudに支出できる金額に上限があるため、費用を制限している場合があります。このような場合、予算の上限に達したら、すべての Google Cloud サービスと使用を停止して費用の発生を停止したいと考えるかもしれません。プロジェクトで課金を無効にすると、そのプロジェクトで費用が発生しないようにできます。
制限事項
費用が発生してから予算通知を受け取るまでに時間差があるため、すべてのサービスが停止された時点で確認されていなかった使用により追加費用が発生することがあります。この例の手順に沿ったとしても、予算を超過しないという保証はありません。資金に限りがある場合は、請求の遅延を考慮して、使用可能な資金より低い最大予算を設定してください。
請求先アカウントに固定されているプロジェクトの請求を無効にすることはできません。プロジェクトの固定と固定解除の詳細については、プロジェクトと請求先アカウント間のリンクを保護するをご覧ください。
始める前に
始める前に、次のタスクを完了する必要があります。
- Cloud Billing API を有効にする
- 1 つのプロジェクトを範囲とする予算を作成する
- プログラムによる予算通知を設定する
Cloud Run functions の関数を設定する
プロジェクトの Cloud Billing を無効にするには、Cloud Run functions の関数を作成し、Cloud Billing API を呼び出すように構成します。
- Cloud Run functions の関数を作成するの手順を行います。[トリガーのタイプ] が、予算で使用する同じ Pub/Sub トピックに設定されていることを確認します。
次の依存関係を追加します。
Node.js
次のコードを
package.json
ファイルにコピーします。Python
次のコードを
requirements.txt
ファイルにコピーします。次のコードを Cloud Run functions の関数にコピーします。
Node.js
Python
[エントリ ポイント] を、実行する正しい関数に設定します。
Node.js
[エントリ ポイント] を
stopBilling
に設定します。Python
[エントリ ポイント] を
stop_billing
に設定します。自動的に設定される環境変数のリストを確認し、Cloud Billing を無効にするプロジェクトに GOOGLE_CLOUD_PROJECT 変数を手動で設定する必要があるかどうかを判断します。
[デプロイ] をクリックします。
サービス アカウント権限を構成する
Cloud Run functions の関数は、自動的に作成されたサービス アカウントとして実行されます。課金を無効にするには、次の手順で、変更が必要なプロジェクトのサービスにサービス アカウントの権限を付与する必要があります。
- Cloud Run functions の関数の詳細を表示して、正しいサービス アカウントを特定します。サービス アカウントはページの下部に表示されます。
Google Cloud コンソールの [IAM] ページに移動して、適切な権限を設定します。
請求先アカウントの権限を変更するには、Google Cloud コンソールで請求の [アカウント管理] ページに移動し、サービス アカウントを Cloud 請求先アカウントのプリンシパルとして追加して、適切な請求先アカウントの権限を設定します。
詳細については、Cloud 請求先アカウントの権限を構成する方法をご覧ください。
Cloud Billing が無効であることをテストする
予算による通知が送信されると、指定したプロジェクトからそこに関連付けられている Cloud 請求先アカウントが削除されます。関数が想定どおりに動作することを確認するには、Cloud Run 関数をテストするの手順に沿って操作します。
成功すると、プロジェクトは Cloud 請求先アカウントに表示されなくなり、同じプロジェクト内にある Cloud Run functions の関数を含めプロジェクト内のリソースが無効になります。
プロジェクトの Google Cloud リソースを引き続き使用するには、Google Cloud コンソールでプロジェクトの Cloud Billing を手動で再度有効にします。
次のステップ
他のプログラムによる通知の例を確認し、以下の方法を学びます。