search
LoginSignup
16

More than 1 year has passed since last update.

posted at

updated at

GAS Web app をClaspからデプロイ

webAppも作らないとなので、Claspでデプロイまでできると嬉しいなっと。

1.普段のやり方

 Claspでpushしてバージョン決めて、
スクリプトエディターから「公開」→「ウェブアプリケーションとして...」
 これがひと手間かかっていたのでClaspだけでできないかな、と。

2.情報すくない&コマンドがなくなったのが罠

 少なくとも日本語検索では引っかからず。英語のところでやっと。
 redeployというコマンドが鍵っぽかったけど、いつの間にか削除されてた
 このためほとんどの記事が無意味に。

3.現状の正解っぽいやつ

Githubを探してたらそれらしきものがあった。
その中でgdgd議論があって、下の方に、
WebAppのデプロイの版をアップデートするだけじゃん(超意訳)とあったのでそれを真似る

ステップ1 appsscript.jsonにwebAppのエントリを作る

appsscript.json
  "webapp": {
    "access": "ANYONE_ANONYMOUS",
    "executeAs": "USER_DEPLOYING"
  },

webapp.executAs は以下から選択
USER_ACCESSING, USER_DEPLOYING, SERVICE_ACCOUNT, UNKNOWN_EXECUTE_AS

webapp.access は以下から選択
UNKNOWN_ACCESS, DOMAIN, ANYONE, ANYONE_ANONYMOUS, MYSELF

ステップ2 1回スクリプトエディターでWebAppとして公開する
これで、デプロイの中にWEBAPPのデプロイ版ができる
clasp deploymentsコマンドでデプロイリストを出してみる

clasp deployments
4 Deployments.
- AKfyXXXDlsI @HEAD
- AKfyYYYI6fY @2 - test2
- AKfyZZZP04n @2
- AKfyAAAvqg @1 - web app meta-version

このweb app meta-version のdeployID(AKfyAAAvqg)をコピーしておく

ステップ3 コードを更新したらclaspコマンド

clasp push
clasp deploy -i AKfyAAAvqg

pushでGASを更新し、deployのiコマンドで更新するデプロイの版を指定してアップデート
これでWEBAPPのデプロイ版をアップデートしてくれる

ステップ4 ブラウザで確認

のdeploymentIDに自分のWebApp版でデプロイしたIDで置き換えてアクセスすれば開けた

4.備忘録

今日時点ではこれで動いてるけど、clasp createの際にwebappを指定してもappsscript.jsonには上記のエントリはないので、いつか更新されるのを期待
 

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
What you can do with signing up
16