概要
この投稿ではGoogle Apps ScriptのWeb Appsについて、URLを変えずに最新のスクリプトを反映させる方法を紹介させていただきます。ここでは新しいIDEを使って説明します。
2021年3月15日からGoogle Apps Script projectでは複数のdeployment IDを使用することが可能になりました。Ref これよにり、例えばWeb Appsでは、これまで最新のスクリプトをWeb Appsへ反映させるために新たなバージョンとして再デプロイすることで使用してきましたが、今ではこれまでのようにWeb Appsを再デプロイすると、deployment IDが変化するためにURL (デプロイする都度、https://script.google.com/macros/s/###/exec
の###
が毎回変化してしまう。) そのものが変化してしまいます。
最近、このような問題に関する問い合わせ、すなわち、URLを変えずに最新のスクリプトをWeb Appsに反映させたいといった内容の問い合わせが増えてきましたので、こちらでもその回避策について紹介させていただきます。
流れ
URLを変えずに最新のスクリプトをWeb Appsに反映させるための流れは下記の通りです。
-
新しいGoogle Apps Script projectを作成する。この場合、standalone type, container-bound script typeの両方を使用することができます。作成したGASプロジェクトのスクリプトエディタへ下記のスクリプトをコピーペーストし、保存します。
function doGet() { return ContentService.createTextOutput("sample1"); }
-
Web Appsを下記条件でデプロイします。ここでWeb AppsのURLをコピーしておきます。
-
デプロイしたWeb Appsへcurlコマンドを使って動作テストします。デプロイ時にコピーしたURLを使用します。
$ curl -L "https://script.google.com/macros/s/###/exec"
-
sample1
が返されると動作確認完了です。
-
次に、Web Appsのスクリプトを下記のように変更します。
function doGet() { return ContentService.createTextOutput("sample2"); }
-
下記の図のようにWeb Appsをアップデートします。
- スクリプトエディタから"Deploy" -> "Manage deployments"で"New deployment"ダイアログを開きます。
- 最初にデプロイしたバージョンを開きます。その状況下で、鉛筆マークをクリックして編集状態にします。
- "version"を"New version"として設定します。(ここがポイントです。) "description"を変更する場合はここで変更できます。
- "Deploy"ボタンを押します。これにより変更が保存されます。
-
再度、curlコマンドを使ってテストします。この時のコマンドは、上記のものと同一のコマンドで行います。
-
sample2
が返されます。すなわち、Web AppsのURLを変更することなく(deployment IDを変更することなく)、最新のスクリプトをWeb Appsへ反映させることができました。
-
英語版はこちらです。