GASでサーバレス環境

Blog Single

久しぶりの登場です。
皆さんGoogle Apps Scriptをご存知でしょうか。
通称GASといった名称で一部のプログラマに愛されておりますが、GASとは一体なんなのか一言で表現しますと、GoogleDrive上でJSライクなプログラムを編集し実行する”環境”です。

Overview

あえて環境という言い方をしましたので、Scriptなのに環境なの?とお思いの方もいらっしゃるかと思いますが、GAS自体がGoogleAppsの機能の一つなので、GoogleAppsのスプレッドシートの様にブラウザ上で操作でき、ソースの記述からデバッグ、実行まで行うことができます。
使用する言語はJSに互換性のあるgs拡張子の言語で、JSの組み込みオブジェクトの他に、GAS用に組み込まれたオブジェクトが利用できます。

Merit

GASを利用する事の最大のメリットは、無料でサーバレスプラットフォームを利用できる事です。
web上で実行できるアプリケーションとなると、必然的に設置用のサーバが必要となります。
昨今ではAWSが提供するLambdaなどのPaaSを利用する事で、インフラ周りの小難しい知識がなくても、スクリプトを実行できるサーバレス環境も用意されていますが、有料である事が前提となっております。
大きなプロジェクトや、マネタイズがしっかり想定されているアプリでの必要経費となる部分も、個人の、特に趣味の範囲での利用には、かなり敷居が高いと思います。
しかしGASの場合は、個人アカウントでGASを無料利用でき、プログラム自体をGAS上で編集しGoogleDriveに保存するので、必然的にサーバレスの環境となります。

Demerit

ここまでいい所しか紹介しませんでしたが、実はいくつかデメリットもあります。
一つは.gs以外の言語選択が出来ない事です。JSアレルギーがある方からすると、あまり楽しくなかったりするかもしれませんが、元々重たい処理を回す物ではないと割り切れば、それ程のデメリットにはならないと思います。また、 紹介されているサイトやリファレンスは比較的充実しているので、初心者が扱うにしても敷居は高くありません。
二つ目は、スケジューリングの厳密性です。GASには実行をスケジューリングする機能があり、定期的に実行したい場合など有用だと思います。しかし、毎日特定の時間に実行したい場合、日タイマーを設定すると時間から時間のどこかで実行するといった設定しかできません。

USING

そんなGASですが、どのような画面なのか今回は簡単に紹介させて頂きます。
新規でプロジェクトを立ち上げた状態ですと、このような画面が開きます。

VisualStudioやEclipseなどの統合環境を操作した方は見覚えのあるボタンがあると思いますが、実際の操作もそのままで、コードを記述した状態で、右向き三角をクリックするだけで実行されます。

Example

ではどんなものに使えるのでしょうか。
実はサードパーティのプラグインも読み込む事もできるので、私の場合はslack (outgoing-webhook)にスプレッドシートの情報を定期的に通知させたり、外部の天気APIから取得した天気情報を通知させたりと、web上に置かれているプログラムである事を生かして、日々機能の更新を行なっております。

IFTTTとの連携も簡単便利だったりするので、こちらはまたの機会にご紹介していきます。

Posted by SakaiYasuhiro
PHP,NodeJS,Reactを主に使っているが、デザイン周りもこなす何でも屋。 自称: 可能性の獣

Other Posts: