0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

claspを使用したGASアプリのデプロイ完全ガイド

Posted at

Google Apps Script(GAS)アプリケーションの開発において、claspツールを使用すると、VSCodeなどのローカル環境からコードを管理・デプロイできます。この記事では、claspを使ったGASアプリのデプロイ方法を詳しく解説します。

1. claspによるデプロイの基本

デプロイとは

GASアプリのデプロイとは、スクリプトを実行可能な状態で公開することです。ウェブアプリケーション、APIエンドポイント、Googleワークスペースのアドオンなど、様々な形式でデプロイできます。

前提条件

デプロイの前に以下の準備が必要です:

  • claspのインストール: npm install -g @google/clasp
  • Googleアカウントでのログイン: clasp login
  • プロジェクトの作成または既存プロジェクトのクローン
  • コードの作成とプッシュ: clasp push

2. デプロイの種類と設定

デプロイの主な種類

claspでは以下のデプロイタイプがサポートされています:

  1. ウェブアプリケーション(Web App)
    • ブラウザからアクセス可能なウェブページとして公開
    • URLを通じて誰でもアクセス可能(権限設定による)

  2. APIエンドポイント(API Executable)
    • 外部アプリケーションから呼び出し可能なAPIとして公開
    • OAuth2認証を使用してアクセス

  3. アドオン(Add-on)
    • Googleドキュメント、スプレッドシートなどに統合されるアドオン

デプロイ設定の指定

appsscript.jsonファイルでデプロイの詳細設定を指定できます:

{
  "timeZone": "Asia/Tokyo",
  "dependencies": {},
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8",
  "webapp": {
    "access": "ANYONE",
    "executeAs": "USER_DEPLOYING"
  }
}

主な設定オプション:

  • access: アクセス権限
    • MYSELF: 自分のみ
    • DOMAIN: 同じドメインのユーザーのみ
    • ANYONE: ログインユーザーのみ
    • ANYONE_ANONYMOUS: 誰でも(認証不要)

  • executeAs: 実行ユーザー
    • USER_DEPLOYING: デプロイしたユーザーとして実行
    • USER_ACCESSING: アクセスしたユーザーとして実行

3. 初回デプロイと更新デプロイの違い

初回デプロイ(新規デプロイ)

初めてアプリをデプロイする場合は、シンプルにclasp deployコマンドを使用します:

clasp deploy --description "初回デプロイ"

このコマンドを実行すると:

  • 新しいバージョンが作成されます
  • 新しいデプロイIDが生成されます
  • 新しいウェブアプリURLが生成されます

出力例:

Created version 1.
Created deployment ID: AKfycbw123456789...
- Web app URL: https://script.google.com/macros/s/AKfycbw123456789.../exec

重要: このデプロイIDは必ずメモしておきましょう。更新時に必要になります。

更新デプロイ(既存デプロイの更新)

コードを変更した後、既存のデプロイを更新する場合は、デプロイIDを指定します:

clasp deploy --deploymentId AKfycbw123456789... --description "機能追加"

このコマンドを実行すると:

  • 新しいバージョンが作成されます
  • 指定したデプロイIDのデプロイが更新されます
  • ウェブアプリのURLは変わりません

出力例:

Created version 2.
Updated deployment ID: AKfycbw123456789...
- Web app URL: https://script.google.com/macros/s/AKfycbw123456789.../exec

重要な違い

clasp deploy(デプロイID指定なし): 毎回新しいデプロイが作成され、URLも変わる
clasp deploy --deploymentId ID(デプロイID指定あり): 既存デプロイが更新され、URLは変わらない
実務では、通常は既存のデプロイを更新する方法(--deploymentId指定)を使用することが多いです。これにより、ユーザーに新しいURLを通知する必要がなく、ブックマークなども有効なままです。

4. デプロイの管理とベストプラクティス

デプロイの一覧表示

現在のデプロイ一覧を確認するには:

clasp list-deployments

出力例:

2 Deployments.
- AKfycbw123... @HEAD (web app)
- AKfycbx456... @12 (web app)

各デプロイの情報が表示されます:

  • デプロイID
  • 関連付けられたバージョン(@HEADは最新バージョン)
  • デプロイタイプ

デプロイの削除

不要になったデプロイを削除するには:

clasp delete-deployment AKfycbw123...

複数環境の管理

開発環境、テスト環境、本番環境など複数の環境を管理する場合:

# 開発環境用のデプロイを更新
clasp deploy --deploymentId DEV_ID --description "開発環境更新"

# テスト環境用のデプロイを更新
clasp deploy --deploymentId TEST_ID --description "テスト環境更新"

# 本番環境用のデプロイを更新
clasp deploy --deploymentId PROD_ID --description "本番環境更新"

デプロイIDの管理

デプロイIDを安全に管理するためのベストプラクティス:

  1. プロジェクトのREADMEファイルに記録する
  2. 環境変数として保存する
  3. チームで共有する設定ファイルに保存する
  4. デプロイIDに意味のある名前を付ける(メモとして)

例:

デプロイID一覧
開発環境: AKfycbw123...
テスト環境: AKfycbx456...
本番環境: AKfycby789...

特定バージョンのデプロイ

特定のバージョン番号をデプロイする場合:

clasp deploy --deploymentId AKfycbw123... --versionNumber 5 --description "バージョン5のデプロイ"

5. トラブルシューティング

よくある問題と解決策

  1. デプロイ権限エラー
    • 問題: 「You do not have permission to deploy」というエラー
    • 解決: clasp loginで再認証、またはプロジェクトの権限を確認

  2. デプロイIDが見つからない
    • 問題: 「Deployment not found」というエラー
    • 解決: clasp list-deploymentsで正しいIDを確認

  3. ウェブアプリにアクセスできない
    • 問題: デプロイ後にURLにアクセスすると「アクセス権限がありません」と表示される
    • 解決: appsscript.jsonのアクセス設定を確認、適切な権限に変更後、再デプロイ

  4. 古いバージョンが表示される
    • 問題: 更新をデプロイしたのに古い内容が表示される
    • 解決: ブラウザのキャッシュをクリア、または?v=timestampパラメータをURLに追加

まとめ

claspを使用したGASアプリのデプロイは、コマンドラインから効率的に行えます。初回デプロイでは新しいデプロイが作成され、更新時には既存のデプロイIDを指定することで同じURLを維持できます。

デプロイIDを適切に管理し、環境ごとに異なるデプロイを作成することで、開発からテスト、本番環境への移行をスムーズに行うことができます。

claspによるデプロイを活用することで、GASアプリケーションの開発・運用ワークフローが大幅に改善され、チーム開発やバージョン管理との統合も容易になります。

0
0
0

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
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?