Google Apps Scriptを最大限活用していきたいなぁ~

Google Apps Script最大限使っていきたいなぁ~
◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【5/21開催】Azure OpenAI ServiceによるRAG実装ガイドを公開しました
生成AIを活用したユースケースで最も一番熱いと言われているRAGの実装ガイドを公開しました。そのガイドの紹介をおこなうイベントです!!
https://tech-lab.connpass.com/event/315703/

どもども!今回はGoogle Apps Scriptの特殊な領域について説明を挟んでいきたいと思います。スクリプトプロパティ・キャッシュによるデータの一時保存・ユニークなuuidの取得・Triggerを使用した定期実行や予約実行などの使用方法まで解説します。

初めに

ども~こんにちは!爆速でブログを作成している龍ちゃんです。今回は、Google Apps Scriptを使ってサービスを利用する際にひと手間加える方法について共有していきます。このブログのトピックは以下になります。

  • スクリプトプロパティ(定数を扱う方法)
  • キャッシュ(一時的に情報を保存する)
  • Triggerによる定期実行(GUI・コードから設定)
  • ユニークな文字列の取得

スクリプトプロパティ

こちらは、環境変数と言えなくもないです。エディタからもコードからも設定できますが、基本的にエディタからの設定でしか使用しません。APIキーなどは念のために見えない形で保存しておいた方が良いですね。

ちなみにプロパティサービスは三種類存在しています。公式ドキュメントに記載がありました。三種類の違いはアクセスできるユーザーの共有範囲になります。今回は、一番扱いやすいスクリプトプロパティについて紹介します。もし、社内でプロパティを使用する際は影響範囲を考えて選定してください。

設定方法

プロジェクトを開いて左のバーから設定を開いてください。

エディタからスクリプトプロパティに設定する方法

そして、スクリプトプロパティが出てくるまでスクロールしたら設定が出てきます。

スクリプトプロパティを設定する方法

情報の保存はKey-Valueで保存する必要があります。基本的に文字列で全部保存することができます。名前はいい感じに命名しましょう。

コードからのアクセス

呼び出し方法はこちらになります。

const data = PropertiesService.getScriptProperties().getProperty("KEY");

設定した値がStringで入ってきます。ちなみにコードで設定する方法は以下になります。

PropertiesService.getScriptProperties().setProperty("KEY", "VALUE");

削除方法は以下です。

PropertiesService.getScriptProperties().deleteProperty("KEY");

こちらを使用することで、コードの共有も安全に行うことができますね。

キャッシュ

こちらも一般的なキャッシュと言えます。コードから設定を行います。キャッシュサービスも三種類存在しています。公式のドキュメントを置いておきますね。アクセスできる場所が異なるだけですね。今回は、スクリプトからアクセスするためのスクリプトキャッシュを使用します。

まずアクセスするためのスクリプトキャッシュへのパスが必要です。

const cache = CacheService.getScriptCache();

リソースの設定方法は以下になります。デフォルトでは600秒で消去されます。Key-Valueで値を保存します。ちなみに一度JSON文字列に変換することでオブジェクトも保存することができます。

// 秒数を指定せずに設定すると600秒で消去
cache.put('KEY', 'VALUE');

// 秒数を指定すれば時間後消去 秒数指定 〇s
cache.put('KEY', 'VALUE', 600);

// JSON形式で保存するとオブジェクトも保存できちゃう
cache.put('KEY', JSON.stringify(object))

取得方法はこちらになります。JSON形式で情報を保存した場合は、オブジェクトに戻す必要があります。

// 取得する
const value = cache.get('KEY');

// オブジェクトは一旦変換噛ます
const objectValue = JSON.parse(cache.get('KEY'))

もし、キャッシュを削除する場合は以下のコードで削除することができます。「removeAll」を使用する場合は、配列で指定します。

// 一個だけ消す場合
cache.remove('KEY');

// 複数消す場合
cache.removeAll(['KEY1', 'KEY2']);

DBよりライトでデータを保存することができるので超便利です。

Triggerによる定期実行

こちらはGASの関数を定期的に実行することができます。こちらの設定もエディタとコードと両方から設定することができます。定期実行の感覚は、特定の日付・分刻み・時間刻み・週ベース・月ベースなど超柔軟に設定することができます。その一方で、指定した時間ぴったりに動作する保証はありません。そのため、正確性を求める処理をGASで定期実行するのは難しいです。

エディタからの実行

プロジェクトを開いて左のバーからトリガーを開いてください。トリガーの追加から設定することができます。

トリガーの設定方法エディタから

 

こちらの管理画面でトリガーを設定したい関数と実行したい間隔を設定することができます。

トリガーからの定期実行保存

実行は左のバーの実行数のところに表示されます。もし失敗した場合は、デフォルトの設定だとメールで情報が送られてきます。あんまり失敗すると悲しい気持ちになるので、すぐ修正しましょう。

コードからのアクセス

コードからのアクセスは、エディタで作成するよりも柔軟なカスタマイズを行うことができます。今回は、時間ベースでのトリガー作成・削除を解説したいと思います。時間ベースの設定には一回限りの設定方法と定期的な実行方法があります。この辺りは用途によって振り分ける必要があります。詳細な設定方法に関しては、こちらの記事が最高にわかりやすいです。

一回限りの実行方法の設定はこちらのコードを使用します。一回限りの設定の場合は、一度実行すると破棄されます。

// afterは〇〇msで設定する
ScriptApp.newTrigger("関数名").timeBased().after(1000).create();

設定後は左のバーの実行数の部分に表示されます。

ユニークな文字列の取得

こちらではユニークな文字列を取得する方法について紹介します。ユニークなIDはスプレッドシートをDBとして使う際や情報を保護する際にも使用することがあります。結構便利なので覚えておいて損はないです。

const uid = Utilities.getUuid()

終わりに

今回は、Google Apps Scriptを使用する際に便利な機能について紹介しました。Google Apps Scriptだからできることがあります。得意不得意があるので、何を実現したいかで使用する言語を変える必要があります。Google Apps Scriptの活用についてはこちらの記事で解説しています。

初心者が学ぶには最適な言語だと思っているので、皆さん活用してみましょう。

それでは~またね~

 

 

 

アバター画像
About 龍:Ryu 107 Articles
2022年入社で主にフロントエンドの業務でTailwindと遊ぶ日々。お酒とうまいご飯が好きで、運動がちょっと嫌いなエンジニアです。しゃべれるエンジニアを目指しておしゃべりとブログ執筆に注力中(業務もね)//
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる