google
GoogleAppsScript
GoogleCloudPlatform
GSuite
GoogleAppMaker

Google App Maker ー 環境の違いを理解する

More than 1 year has passed since last update.

Google App Maker(App Maker)には環境という概念があってこれが結構ややこしい。
忘れそうなのでメモがてら記事にしておく。

そもそも App Maker ってなに?という人は、以下の記事を参照してください。
Google App Maker とは? 短期間で Web アプリケーション構築を可能にした理由

環境の全体像

image.png

※ App Maker は G Suite 内のサービスなのだが、GCP で動いているのでこういう図にしている。

環境はいくつでも作れる

さきほどの画像では、 PREVIEW(開発環境)・検証環境・本番環境 の3つしか書いていないが、いくつでも作れる。(11個までは確認)1

環境は PUBLISH(PREVIEW) した時点のソースをもとに配備される

仮にソースを書き換えても、どの環境にも自動で反映されたりはしない。
※ PREVIEW(開発環境)も例外ではなく、勝手に反映されない。

環境ごとに別のプロジェクトIDが割り当てられる

それぞれの環境を作ると、Google Cloud Console では別のプロジェクトIDが割り当てられる。
そのため環境ごとに以下のようになる。

  • サーバーのログ(Stackdriver Logging)が独立
  • アプリケーションの認可が独立

image.png

Drive Table は環境ごとに用意される

Drive Table は環境ごとに用意される。
そのため本番データと検証データが混ざることはない。
逆を言えばデータの管理方法をしっかり考えて設計しておかないととあとで苦労する。

※全体図でアイコンはスプレッドシートを使ってしまったが、Drive Table の意味。(Drive Table にアイコンがないため)

image.png

また、図には書いていないが、Drive Table ではなく Cloud SQL 使用時も環境ごとにインスタンスを指定できる。

Roll は環境ごとに用意される

App Maker では Roll 機能が用意されており、管理者しか触れない画面やモデルを作ることができる。
この場合、管理者ロールを作ってユーザー(メールアドレス)を追加していくのだが、それも環境ごとに設定する。
※ PREVIEW(開発環境)には Roll の概念はなく全アクセスが可能となっている。そのため、Roll が正しく設定されているかは、検証環境や本番環境でそれぞれ実際に動かして確認する必要がある。

image.png

リソースは共通で Google Cloud Storage に格納される

リソース(画像)は環境ごとに用意されない。
本番環境で使ってたけど、要らなくなったからといって開発中に消したりすると本番環境から参照できなくなる。
消す場合は、本番環境にリソースを使わないコードを PUBLISH してからおこなうこと。

image.png

トリガー

App Maker でも GAS のトリガーが利用できる。
注意点として、トリガーは環境内の特定の関数を呼び出す 参照 を持っている。

たとえば 本番環境のdoSomething() をトリガーに設定したとする。
エディタ上でdoSomething() 内のコードを書き換えて 本番環境に PUBLISH すると、 トリガーの処理が変わる
あくまで 参照 ということに注意する。


  1. 無料で使える割には太っ腹な仕様