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で通知する

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

関連記事

Synology DS215jを223jに移行した

Synology DS215jを223jに移行した

自宅のバックアップ用のNASであるSynology Disk Station 215j、Synologyの製品は基本的に後ろ2桁が販売年になっているため10年間、毎日稼働し続けています。 本来はDS1821で置き換えて引退予定でしたが、 RAID崩壊事件があり16TBのHDDを2台RAID1で再構築して重要なデータをNAS間でバックアップされる環境を構築しました。 そのため、想定していた運用年数を超過してしまいました。Amazonプライムデーセールで割引になっていた223jに置き換えを行いました。 215jと223jの比較 Synology NASキット 2ベイ DS223j クアッドコアCPU搭載 1GBメモリ搭載 ライトユーザー向け 国内正規代理店フィールドレイク取扱品 電話サポート対応品 DiskStation Amazon 項目 DS215j DS223j CPU Marvell Armada 375 88F6720 2コア 800MHz Realtek RTD1619B 4コア 1.7GHz メモリ 512MB DDR3 1GB DDR4 ベイ数 2ベイ 2ベイ ネットワーク 1GbE RJ-45ポート×1 1GbE RJ-45ポート×1 USBポート USB 3.0×1、USB 2.0×1 USB 3.2 Gen 1×2 サイズ 165 × 100 × 225.5mm 165 × 100 × 225.5mm 重量 0.88kg 0.88kg 8年の差がありながら、基本的な仕様や外観はほとんど変わりません。
1passwordのSSHキー管理状態で踏み台を設定する

1passwordのSSHキー管理状態で踏み台を設定する

結論 Host humidai HostName humidai.example.com User user IdentityAgent "~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock" IdentityFile "~/.ssh/humidai.pub" Host target-server HostName target-server.example.com User user ProxyCommand ssh humidai -W %h:%p IdentityAgent "~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock" IdentityFile "~/.ssh/target-server.pub" のConfigでクライアント側の1password管理のキーを使用して踏み台サーバーへの接続を行います。 序文 SSH接続は人類が生きていく上で欠かせない行動のひとつです。普段自宅のリソースへはTailscaleでVPN接続をしそこからSSHへ接続を行っています。 しかし、移動中の接続構成としてはあまり良くありません。電車で時速100kmを超えてくるとときどき詰まりを感じますし、新幹線で時速200kmを超えるとかなり苦痛になってきます。