1. Home
  2. /
  3. GoogleCloud
  4. /
  5. Google Cloudの利用料金を毎日Discordに投稿する

Google Cloudの利用料金を毎日Discordに投稿する

Google Cloudの利用料金を毎日Discordに投稿する

最近、LLMサービスはGeminiを中心に利用しています。高い品質が求められる場合はClaude Sonnet 3.7やo3などを使い分けていますが、手軽な要約や翻訳といったタスクでは、Gemini flash 2.0が第一候補です。

YouTubeの字幕翻訳、Webページの翻訳、Discord常駐Botなど、これら全てにGemini flash 2.0を活用しています。

大量に利用しても1日の料金は数円程度とわずかですが、従量課金制のため、毎日の利用料金をDiscordに通知できると安心感が増します。

本記事では、Google Cloudの利用料金を日次でDiscordに投稿する方法を解説します。

Google Cloudの設定

まず、Google Cloudのプロジェクトを開きます。Google AI StudioからAPIキーを生成した場合、多くは「Generative Language Client」というプロジェクト名になっているはずです。

左側のサイドバーメニューから「課金」を選択し、課金ダッシュボードへ遷移します。

課金ダッシュボード内で「課金データのエクスポート」より、「標準の使用料金」の「設定を編集」をクリックします。

これまでBigQuery APIを利用したことがない場合は、「BigQuery APIを有効化」ボタンが表示されるので、クリックしてAPIを有効化してください。

API有効化後、BigQueryにデータをエクスポートするためのデータセットを作成します。データセットIDとリージョンは任意のものを選んでください。

暗号化方式も選択できますが、特にこだわりがなければ「Googleが管理する暗号鍵」で問題ありません。今回はこちらを選択しました。

作成したデータセットをエクスポート先に設定すると、画像のように支払い情報がBigQueryに保存されるようになります。

作成直後はデータが無いためここで1日〜2日寝かせます。

寝かせてからBigQueryのコンソールにデータが格納されていることを確認できれば準備完了です。

DiscordのWebhook URL発行

次に、通知先となるDiscordチャンネルのWebhook URLを発行します。Discordでは、チャンネル設定の「連携サービス」からWebhookを作成し、URLを取得できます。

Webhook作成時にアイコン画像も設定できます。お気に入りの画像を設定しておくと、通知が来た際の気分も上がりますのでおすすめです。

Google Apps Scriptの設定

Google Apps Script (GAS) を使って、Discordへ通知を送るBotを作成します。 (https://script.google.com/home)

こちらのコンソールから新しいプロジェクトを作成することで、スプレッドシートやドキュメントに紐付かない独立したGASプロジェクトとして開発できます。(Google検索でひ っかかり辛く毎回コンソールを開くのに悩むページです。)

任意のプロジェクト名でGASプロジェクトを作成してください。

実装するBotのコードは以下の通りです。このスクリプトにより、毎日の費用と月初から当日までの累計費用がDiscordに投稿されます。

変更する箇所は冒頭の定数部分です。

const PROJECT_ID = "プロジェクトID";
const BILLING_TABLE = "テーブルID";
const DISCORD_WEBHOOK_URL = 'DiscordのWebHook URL';

PROJECT_ID は、BigQueryコンソールのBillingDataテーブル情報で確認できます。例えば、「gen-lang-client-00000000.BillingData」と表示されている場合、.BillingData を除いた「gen-lang-client-00000000」がプロジェクトIDとなります。

BILLING_TABLE も同様にBigQueryコンソールで確認します。先ほどのプロジェクトIDの下に、エクスポート設定で作成されたテーブルが表示されます。そのテーブルを選択すると詳細画面が開き、そこに記載されている「テーブルID」をコピーして貼り付けてください。

DISCORD_WEBHOOK_URL には、先ほどDiscordで発行したWebhook URLを記載します。これらの値を正しく設定したら、GASエディタ上で main 関数を選択し、実行します。

スクリプトが正常に実行されれば、DiscordにGoogle Cloudのサービス毎の利用料金(日次と月次累計)が投稿されるはずです。

GASの日次実行

テスト実行で動作確認ができたら、スクリプトが毎日定時に自動実行されるようにトリガーを設定します。

GASエディタの左側にある時計アイコンの「トリガー」メニューを選択し、「トリガーを追加」ボタンをクリックします。

トリガー設定画面では、実行する関数(この場合は main)と実行タイミングを指定します。イベントのソースを「時間主導型」、時間ベースのトリガーのタイプを「日付ベースのタイマー」や「日タイマー」に設定し、実行したい時刻(例: 午前9時〜10時)を選択します。GASの仕様上、正確な分単位での指定はできず、指定した時間帯のいずれかのタイミングで実行されます。(これはおそらく、負荷分散のための仕様でしょう。)

まとめ

以上で、Google Cloudの利用料金を毎日Discordへ自動的に投稿する仕組みが完成しました。

ちなみに、同様の機能をAWSで実現しようとすると、Cost Explorer APIの利用料金が発生し、毎日実行すると月に50円程度のコストがかかる場合があります。その点、BigQueryへのエクスポートとGASの組み合わせは、無料枠の範囲内で実現できる可能性が高く、Google Cloudの魅力の一つですね。

参考文献

【Google Cloud】Google Cloudの課金データを日次でSlackで通知する

サイト内の商品リンクは一部アフィリエイトリンクとなっています

関連記事

雷飽和攻撃を行うゲリラ豪雨に対するサーバー防衛術

雷飽和攻撃を行うゲリラ豪雨に対するサーバー防衛術

今年のゲリラ豪雨は凄まじくもはやゲリラではなく米軍式の火力優勢ドクトリンを採用した正規戦の様相を呈している。 特に多摩地域から埼玉を含む北関東は連日昼夜を問わずこれまで経験したこともない雷攻撃を受け大規模な停電が発生している。 停電だけであれば時間が解決してくれるが雷による膨大な電気エネルギーはIT機器を破壊することもある。今回はそんな強敵から身を守る防衛術の話である。 である調は疲れるのでここからはいつもどおりに記事を記載します。