LoginSignup
1
2

【0からGASを学ぶ】GAS×GCP連携によるログの可視化でデバッグを容易にしよう!

Last updated at Posted at 2024-02-11

はじめに

本シリーズでは、GASの始め方や便利な使い方、ビジネス活用まで幅広く解説します。シリーズをひと通り読んでいただければ、あなたもきっとGASマスターになれるはずです。

シリーズの対象者

  • そもそもGASってなんだかわからない
  • GASを学びたいけど何から始めればいいかわからない方
  • GASはわかり始めたけど、もっと活用ができないかと模索している方
  • とにかくGoogleが好き! という方

前回記事

GASとGCPを連携する

では早速始めていきましょう。【0からGASを学ぶ】シリーズの第21回は「GAS×GCP連携によるログの可視化でデバッグを容易にしよう!」です。先日、connpass(以下リンク先)にて登壇させていただいた際に、「GAS×LINE Messaging APIでLINE Botを作っているが、ログが出ないからテストしづらい」 とのお問い合わせをいただきました。今回は、このお悩みをまるっと解決する方法をお伝えいたします。特にプログラムを書くわけではなく、GUIでぽちぽちやればいいだけです。それでは早速やってみましょう。

そもそもなぜログが出力されないのか

GASは自分自身(つまりはオーナー自ら)がアクセスし実行した場合には、ログは出力・記録ともにされます。そのため、過去ログも、GASエディタの左メニュー「実行数」から確認することができます。しかしながら、LINE Messaging API との連携のためのWebアプリケーションデプロイ等ではそうはいきません。それは、デプロイ時に以下のような設定を行っており、この場合にはすべての通信でオーナーがアクセスしているわけではありません。LINE Botの場合はLINE Messaging APIがアクセス者になります。

これにより、例えばGoogleスプレッドシートへ確認内容を全出力する部品を作って、ログ確認の代替手段としている方も多いと思います。これ自体は間違いではありません。かくいう私も以前はこの方法でやっていました。これがベストプラクティスだとも思っていました。

GASとGCPを連携する

手順の前に少々余談ですが、実はヒントは書かれているんです。GASエディタの左メニュー「プロジェクトの設定」を確認すると、以下のような表示を確認できます。

四角で囲ったリンク先には以下のような記述があります。

Google Cloud コンソールで Google Cloud のログとエラーレポートを表示する
スクリプト プロジェクトで Google Cloud Logging または Error Reporting を使用している場合は、以下の手順で Google Cloud コンソールでログとレポートを確認できます。

Cloud プロジェクトを開きます。
メニュー menu をクリックします。
[オペレーション] セクションまで下にスクロールし、[ロギング] > [ログ エクスプローラ] をクリックします。
エラーレポートを表示するには、[オペレーション] セクションまで下にスクロールし、[Error Reporting] をクリックします。エラーレポートを設定するように求められた場合、スクリプト プロジェクトでまだ例外がログに記録されていないことを意味します。

つまり、スクリプトプロジェクト(つまりはGAS)をGoogle Cloud Loggingに連携すれば、ログやレポートを確認できると書いている(気がします)。ではやっていきましょう。

設定手順

なお、先に断っておきますが、このやり方はクレジットカード登録が必須となります。とはいえ、Googleから無料クレジット$300がもらえますし、ログに関しては月当たり50GiB(ギビバイト)は無料です。これを超えることは基本的にあり得ない(あまりにもログを吐き出している場合を除く)ので安心してご利用ください。

余談が長くなり申し訳ありませんが、GiBという単位を聞きなれない方もいると思いますので、解説です。GiBは当然GBの友だちです。要は人間がわかりやすい1,000を基底とするか、コンピュータが扱いやすい1,024を基底とするかの違いです。

単位 バイト数 単位 バイト数 差分
KB 1,000¹ = 1,000 KiB 1,024¹ = 1,024 2.4%
MB 1,000² = 1,000,000 MiB 1,024² = 1,048,576 4.9%
GB 1,000³ = 1,000,000,000 GiB 1,024³ = 1,073,741,824 7.4%
TB 1,000⁴ = 1,000,000,000,000 TiB 1,024⁴ = 1,099,511,627,776 9.95%

それでは、ついに手順の解説となります。
※以下はGoogle Cloud Platformに未登録の方を前提に手順を示しています。そのため、すでに登録済みの方は、手順No.5から実施してください。

手順 イメージ
1 以下のログイン用URLにアクセスして、「無料で開始」をクリックします。
https://cloud.google.com/free/?hl=ja
2 「同意して続行」をクリックします。
3 お支払い情報を入力し「無料で利用開始」をクリックします。
4 簡単なアンケート画面がポップアップで表示されます。無視しても構いませんが、Googleに迎合するため、回答したのちに「完了」をクリックします。
※もちろん無視でも構いません。
5 GCPのトップ画面が表示されます。
6 左上のプルダウン部をクリックするとポップアップが表示されるため「新しいプロジェクト」をクリックします。
7 適当なプロジェクト名を入力し「作成」をクリックします。クリック後はGCPトップに戻ります。
8 再び左上のプルダウン部をクリックするとポップアップが表示されるため、今度は「No.7で作成したプロジェクト」をクリックします。
9 GCPトップにおいて左上のプルダウン部に「No.7で作成したプロジェクト」が表示されていることを確認します。
10 左上のバーガーメニューから「ダッシュボード」をクリックします。
11 ダッシュボードにてプロジェクト番号を確認できます。こちらの番号をのちほど使用するため、控えておきましょう。
12 左上のバーガーメニューから「APIとサービス > OAuth同意画面」をクリックします。
13 外部を選択し「作成」をクリックします。
14 GCPトップにおいて左上のプルダウン部に「No.7で作成したプロジェクト」が表示されていることを確認します。
15
  • アプリ名:GAS側のアプリ名など
  • ユーザーサポートメール:自身のアカウントでOK
  • デベロッパーの連絡先情報:自身のアカウントでOK
を入力し「保存して次へ」をクリックします。
16 何も変更せずに「保存して次へ」をクリックします。
17 「+ ADD USERS」をクリックします。
18 GASのオーナー権限を持っているアカウントを入力し「追加」をクリックします。
19 GASエディタの「プロジェクトの設定」を開き、GCPのプロジェクト番号を入力する欄にNo.11で控えておいた番号を入力し、「プロジェクトを設定」をクリックします。
20 プロジェクト番号が設定されていることを確認します。
21 プロジェクトを再デプロイしたら、GCP側にログがはかれるようになります。
※再デプロイしないとアプリが正常に動作しませんのでご注意ください。

GASのプログラム内で、DriveAppクラスを使用している場合は、上記No.18の後に以下手順を追加で行ってください。これを行わないと、GASが正しく動作してくれません。
※というか大抵の場合、GASでDriveAppクラスは使用しますので、この設定は必須で行いましょう。なら、先に書けって話ですね。

実行結果
23:17:51	お知らせ	実行開始
23:17:51	エラー Exception: We're sorry, a server error occurred. Please wait a bit and try again.
手順 イメージ
1 左上のバーガーメニューから「APIとサービス > ライブラリ」をクリックします。
2 APIとサービスを検索欄に「Drive API」と入力します。
3 「Google Drive API」をクリックします。
4 「有効にする」をクリックします。

実行結果の確認

設定および再デプロイを終えたのちに、プログラムを実行してみましょう。もちろん、LINE bot等から実行いただいて構いません。

確認手順 イメージ
1 GCPの左上のバーガーメニューから「ロギング > ログエクスプローラ」をクリックします。
2 ログビューワーにうつり、出力されたログを確認することができます。
※デフォルトは直近1時間のログとなっているため、例えば1週間、ログレベルを警告以上等にしたりして検索フィルタを設定しましょう。

ログエクスプローラはバーガーメニューの中でだいぶ下の方にあるため、以下のようにピン留めすることをお勧めします。

使用量の確認

ログに関しては月当たり50GiB(ギビバイト)は無料であり、これを超えることは基本的にあり得ないと述べましたが、どの程度使用しているかを確認できた方がもちろん良いですよね。

確認手順 イメージ
1 GCPの左上のバーガーメニューから「ロギング > ログストレージ」をクリックします。
※すでにロギングメニュー画面の場合は、左メニューに「ログストレージ」が表示されています。
2 ログストレージの使用量を確認できます。

おわりに

お疲れ様でした。
第21回は少々緊急企画的に「GAS×GCP連携によるログの可視化でデバッグを容易にしよう!」と題して、GASとGCPを連携し、GAS単独運用では確認不可のログを出力するTipsをお伝えしました。GASは非常に便利ですが、Webアプリケーション運用を行っていると、「なんでログが見られないんだ!!!」という場面に出くわすことがあります。そんな時は、今回のTipsを参考にGCPと連携し、GASをさらに活用し楽しんでいきましょう!!
記事を読んで、「良いな」や「今後に期待できる!」と感じて頂けたらいいねフォローコメントいただけると幸いです。それではまた次回をお楽しみに!

ブログではより細かく紹介していますので、ぜひこちらもアクセス!!

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2