HTTP Google Workspace アドオンのテストとデバッグ

Google Workspace アドオン デベロッパーは、以下の目的のためにコードのデバッグを 複雑な問題をトラブルシューティングできますGoogle Workspace アドオンのデバッグ アプリのアーキテクチャ、モデル、アーキテクチャ、 アプリの実行方法、デプロイ方法、設定です。

このページでは、以下を使用して HTTP Google Workspace アドオンをデバッグする方法について説明します。 統合 Ingress プラットフォームである ngrok を使用して、 開発環境です。このガイドでは、ローカルでコードの変更をテストし、 リモート環境で問題のトラブルシューティングを行うこともできます

ローカル開発環境からデバッグする

このセクションでは、Google Workspace アドオンを ローカル環境で実行します

ローカル開発からデバッグする
環境

図 1. ローカル開発環境でデバッグします。

前提条件

Node.js

Python

Java

localhost サービスを公開する

ローカル環境をインターネットに接続して、 Google Workspace アドオンからアクセスできる。ngrok アプリケーションを使用する を使用して、公開 URL に送信された HTTP リクエストをローカル環境にリダイレクトできます。

  1. ローカル環境のブラウザで、ngrok アカウントにログインします。
  2. アプリケーションをインストールしてローカルに authtoken を設定する 必要があります。
  3. プロジェクトに静的ドメインを作成 ngrok 個のアカウント(NGROK_STATIC_DOMAIN) 確認してください。

アドオン デプロイメントを作成してインストールする

  1. すべての HTTP リクエストを次の宛先に送信するように Google Workspace アドオンを構成する 静的ドメインですデプロイ ファイルは次のようになります。

    {
      "oauthScopes": [
        "https://www.googleapis.com/auth/workspace.linkpreview",
        "https://www.googleapis.com/auth/workspace.linkcreate"
      ],
      "addOns": {
        "common": {
          "name": "Manage support cases",
          "logoUrl": "https://developers.google.com/workspace/add-ons/images/support-icon.png",
          "layoutProperties": {
            "primaryColor": "#dd4b39"
          }
        },
        "docs": {
          "linkPreviewTriggers": [
            {
              "runFunction": "NGROK_STATIC_DOMAIN",
              "patterns": [
                {
                  "hostPattern": "example.com",
                  "pathPrefix": "support/cases"
                },
                {
                  "hostPattern": "*.example.com",
                  "pathPrefix": "cases"
                },
                {
                  "hostPattern": "cases.example.com"
                }
              ],
              "labelText": "Support case",
              "localizedLabelText": {
                "es": "Caso de soporte"
              },
              "logoUrl": "https://developers.google.com/workspace/add-ons/images/support-icon.png"
            }
          ],
          "createActionTriggers": [
            {
              "id": "createCase",
              "labelText": "Create support case",
              "localizedLabelText": {
                "es": "Crear caso de soporte"
              },
              "runFunction": "$URL2",
              "logoUrl": "https://developers.google.com/workspace/add-ons/images/support-icon.png"
            }
          ]
        }
      }
    }
    

    NGROK_STATIC_DOMAIN を静的ドメインに置き換えます。 ngrok 個のアカウント。

  2. 使用する Google Cloud プロジェクトを設定します。

    gcloud config set project PROJECT_ID
    
  3. アプリケーションのデフォルトに使用する新しいユーザー認証情報を取得します。 認証情報:

    gcloud auth application-default login
    

    PROJECT_ID を次の内容に置き換えます。 プロジェクト ID アプリの Google Cloud プロジェクトを作成します。

  4. デプロイを作成します。

    gcloud workspace-add-ons deployments create manageSupportCases \
        --deployment-file=DEPLOYMENT_FILE_PATH
    

    DEPLOYMENT_FILE_PATH は、実際のパスに置き換えます。 作成します。

  5. Deployment をインストールします。

    gcloud workspace-add-ons deployments install manageSupportCases
    

Google Workspace アドオンはすべての HTTP リクエストを
静的ドメイン

図 2. Google Workspace アドオンはすべての HTTP リクエストを送信し、 静的ドメインにマッピングされます。ngrok 公開サービスは、サービス間のブリッジとして機能します。 Google Workspace アドオンと実行されるアプリケーション コード 説明します。

Google Workspace アドオンをテストする

アプリのデプロイ、テスト、デバッグ、自動再読み込みを Google Workspace アドオンです。

Node.js

  1. ローカル環境にインストールされている Visual Studio Code IDE から、次のコマンドを実行します。 次の操作を行います。

    1. 新しいウィンドウでフォルダを開きます。 add-ons-samples/node/3p-resources
    2. ローカルでの実行と自動再読み込みのデバッグを行うようにアプリケーションを構成する package.json ファイルに 1 つの依存関係と 2 つのスクリプトを追加します。

      {
          ...
          "dependencies": {
            ...
            "@google-cloud/functions-framework": "^3.3.0"
          },
          "scripts": {
              ...
              "start": "npx functions-framework --target=createLinkPreview --port=9000",
              "debug-watch": "nodemon --watch ./ --exec npm start"
          }
          ...
      }
      
    3. ルート ディレクトリから、アプリケーションをインストールします。

      npm install
      
    4. 以下をトリガーする Debug Watch という名前の起動を作成して構成する スクリプト debug-watch。ファイル .vscode/launch.json を ルート ディレクトリに配置します。

      {
          "version": "0.2.0",
          "configurations": [{
              "type": "node",
              "request": "launch",
              "name": "Debug Watch",
              "cwd": "${workspaceRoot}",
              "runtimeExecutable": "npm",
              "runtimeArgs": ["run-script", "debug-watch"]
          }]
      }
      
    5. HTTP リクエストの処理を一時停止するブレークポイントを追加します。 index.js ファイルを開いて、ランニングを開始したり、 デバッグ Debug Watch の設定が以前に追加されています。アプリケーションは今、 ポート 9000 で HTTP リクエストを実行してリッスンしています。

      アプリケーションは実行され、
ポート「9000」

      図 3. アプリケーションが実行され、HTTP をリッスンしている ポート 9000 に対するリクエスト。

  2. ローカル環境で ngrok アプリケーションを起動します。

    ngrok http --domain=NGROK_STATIC_DOMAIN 9000
    

    NGROK_STATIC_DOMAIN は、次の静的ドメインに置き換えます。 ngrok アカウントすべてのリクエストがローカル 使用されるポートを定義します。

    「ngrok」サーバーが実行されているターミナル
リダイレクトしています

    図 4. ngrok サーバーが稼働してリダイレクトしているターミナル。

  3. ngrok によって localhost でウェブ インターフェースも起動されます。 ブラウザで開くと、すべてのアクティビティをモニタリングできます。

    「ngrok」アプリケーションがホストするウェブ インターフェースに HTTP が表示されない
リクエスト

    図 5. ngrok アプリケーションでホストされるウェブ インターフェース HTTP リクエストはありません

  4. 新しいケースの URL をプレビューして、Google Workspace アドオンをテストします テスター アカウントでの Google ドキュメント:

    • 新しい Google ドキュメントを作成します。

      新しい Google ドキュメントを作成する

    • 次のリンクを入力して、enter キーを押します。

      https://example.com/support/case/?name=Name1&description=Description1&priority=P1
      
    • そこにあるリンクをクリックします。

  5. ローカル環境の Visual Studio Code に、次の値が示されています。 設定されたブレークポイントで実行を一時停止します。

    実行が一時停止したブレークポイントで
セット

    図 6. 実行は、設定されたブレークポイントで一時停止します。

  6. Visual Studio Code のデバッガから実行を再開したとき Google Workspace アドオンがタイムアウトになる前に キャッシュにある Google ドキュメントにリンクのプレビューを表示します。

  7. ウェブ インターフェースから HTTP リクエストとレスポンスのログを確認できます。 (ローカル環境の ngrok アプリケーションによってホストされる)

    「ngrok」によってホストされているウェブ インターフェースからの HTTP リクエスト
アプリケーション

    図 7. ngrok アプリケーション。

  8. アプリケーションの動作を変更するには、Case をインラインの Case: に置き換えます。 index.js51。ファイルを保存すると、nodemon が自動的に 更新されたソースコードでアプリケーションを再読み込みし、 Visual Studio Code はデバッグモードのままです。

    アプリケーションが実行され、このポートで HTTP リクエストがリッスンされています。
コードを変更した `9000`
読み込み完了

    図 8. アプリケーションが実行され、HTTP リクエストをリッスンしている コードの変更を読み込んだ状態で、ポート 9000 に設定します。

  9. 今回は、リンクをクリックして数秒待つ代わりに、 新しい Google ドキュメントでは、ウェブに記録された最後の HTTP リクエストを選択できます。 ローカル環境の ngrok アプリケーションによってホストされるインターフェース [Replay] をクリックします。前回と同様に、Google Workspace アドオンで アクティブにデバッグされているため、応答しません。

  10. Visual Studio Code のデバッガから実行を再開したとき これは、ngrok アプリケーションがホストするウェブ インターフェースから アプリケーションがレスポンスを生成するローカル環境 更新済みのプレビュー カードです。

Python

  1. ローカル環境にインストールされている Visual Studio Code IDE から、次のコマンドを実行します。 次の操作を行います。

    1. 新しいウィンドウでフォルダを開きます。 add-ons-samples/python/3p-resources/create_link_preview
    2. Python env 用の新しい仮想環境を作成して有効にします。

      virtualenv env
      source env/bin/activate
      
    3. pip を使用して、すべてのプロジェクト依存関係を仮想 環境:

      pip install -r requirements.txt
      
    4. ルート ディレクトリにファイル .vscode/launch.json を作成します。 アプリケーションをトリガーする Debug Watch という名前の起動を構成する デバッグモードのポート 9000 でモジュール functions-framework から取得 仮想環境 env で次の操作を行います。

      {
          "version": "0.2.0",
          "configurations": [{
              "type": "python",
              "request": "launch",
              "name": "Debug Watch",
              "python": "${workspaceFolder}/env/bin/python3",
              "module": "functions_framework",
              "args": [
                  "--target", "create_link_preview",
                  "--port", "9000",
                  "--debug"
              ]
          }]
      }
      
    5. HTTP リクエストの処理を一時停止するブレークポイントを追加します。 main.py ファイルを開いて、ランニングを開始したり、 デバッグ Debug Watch の設定が以前に追加されています。アプリケーションは今、 ポート 9000 で HTTP リクエストを実行してリッスンしています。

      アプリケーションは実行され、
ポート「9000」

      図 3. アプリケーションが実行され、HTTP をリッスンしている ポート 9000 に対するリクエスト。

  2. ローカル環境で ngrok アプリケーションを起動します。

    ngrok http --domain=NGROK_STATIC_DOMAIN 9000
    

    NGROK_STATIC_DOMAIN は、次の静的ドメインに置き換えます。 ngrok アカウントすべてのリクエストがローカル 使用されるポートを定義します。

    「ngrok」サーバーが実行されているターミナル
リダイレクトしています

    図 4. ngrok サーバーが稼働してリダイレクトしているターミナル。

  3. ngrok によって localhost でウェブ インターフェースも起動されます。 ブラウザで開くと、すべてのアクティビティをモニタリングできます。

    「ngrok」アプリケーションがホストするウェブ インターフェースに HTTP が表示されない
リクエスト

    図 5. ngrok アプリケーションでホストされるウェブ インターフェース HTTP リクエストはありません

  4. 新しいケースの URL をプレビューして、Google Workspace アドオンをテストします テスター アカウントでの Google ドキュメント:

    • 新しい Google ドキュメントを作成します。

      新しい Google ドキュメントを作成する

    • 次のリンクを入力して、enter キーを押します。

      https://example.com/support/case/?name=Name1&description=Description1&priority=P1
      
    • そこにあるリンクをクリックします。

  5. ローカル環境の Visual Studio Code に、次の値が示されています。 設定されたブレークポイントで実行を一時停止します。

    実行が一時停止したブレークポイントで
セット

    図 6. 実行は、設定されたブレークポイントで一時停止します。

  6. Visual Studio Code のデバッガから実行を再開したとき Google Workspace アドオンがタイムアウトになる前に キャッシュにある Google ドキュメントにリンクのプレビューを表示します。

  7. ウェブ インターフェースから HTTP リクエストとレスポンスのログを確認できます。 (ローカル環境の ngrok アプリケーションによってホストされる)

    「ngrok」によってホストされているウェブ インターフェースからの HTTP リクエスト
アプリケーション

    図 7. ngrok アプリケーション。

  8. アプリケーションの動作を変更するには、Case をインラインの Case: に置き換えます。 main.py ファイルの 56。ファイルを保存すると、Visual Studio Code 更新されたソースコードでアプリケーションが自動的に再読み込みされ、 デバッグモードのままとなります。

    アプリケーションが実行されており、ポートで HTTP リクエストをリッスンしています。
コードを変更した `9000`
読み込み完了

    図 8. アプリケーションが実行され、HTTP リクエストをリッスンしている コードの変更を読み込んだ状態で、ポート 9000 に設定します。

  9. 今回は、リンクをクリックして数秒待つ代わりに、 新しい Google ドキュメントでは、ウェブに記録された最後の HTTP リクエストを選択できます。 ローカル環境の ngrok アプリケーションによってホストされるインターフェース [Replay] をクリックします。前回と同様に、Google Workspace アドオンで アクティブにデバッグされているため、応答しません。

  10. Visual Studio Code のデバッガから実行を再開したとき これは、ngrok アプリケーションがホストするウェブ インターフェースから アプリケーションがレスポンスを生成するローカル環境 更新済みのプレビュー カードです。

Java

  1. ローカル環境にインストールされている Visual Studio Code IDE から、次のコマンドを実行します。 次の操作を行います。

    1. 新しいウィンドウでフォルダを開きます。 add-ons-samples/java/3p-resources
    2. アプリケーションを実行するように Maven プロジェクトを構成する Cloud SQL インスタンスを追加して、ローカルでポート 9000 に対する CreateLinkPreview 次の Functions Framework ビルド プラグイン function-maven-plugin は、 pom.xml ファイル:

      ...
      <plugin>
          <groupId>com.google.cloud.functions</groupId>
          <artifactId>function-maven-plugin</artifactId>
          <version>0.11.0</version>
          <configuration>
              <functionTarget>CreateLinkPreview</functionTarget>
              <port>9000</port>
          </configuration>
      </plugin>
      ...
      
    3. これで、デバッグモードでローカルで起動できるようになりました。

      mvnDebug function:run
      Preparing to execute Maven in debug mode
      Listening for transport dt_socket at address: 8000
      
    4. ルート ディレクトリにファイル .vscode/launch.json を作成します。 そのインスタンスに Remote Debug Watch という名前の起動を構成し、 以前にポート 8000 で起動されたアプリケーション:

      {
          "version": "0.2.0",
          "configurations": [{
              "type": "java",
              "request": "attach",
              "name": "Remote Debug Watch",
              "projectName": "http-function",
              "hostName": "localhost",
              "port": 8000
          }]
      }
      
    5. HTTP リクエストの処理を一時停止するブレークポイントを追加します。 CreateLinkPreview.java ファイルを作成し、添付や デバッグ Remote Debug Watch の設定が以前に追加されています。アプリケーション 現在実行され、ポート 9000 で HTTP リクエストをリッスンしています。

      アプリケーションは実行され、
ポート「9000」

      図 3. アプリケーションが実行され、HTTP をリッスンしている ポート 9000 に対するリクエスト。

  2. ローカル環境で ngrok アプリケーションを起動します。

    ngrok http --domain=NGROK_STATIC_DOMAIN 9000
    

    NGROK_STATIC_DOMAIN は、次の静的ドメインに置き換えます。 ngrok アカウントすべてのリクエストがローカル 使用されるポートを定義します。

    「ngrok」サーバーが実行されているターミナル
リダイレクトしています

    図 4. ngrok サーバーが稼働してリダイレクトしているターミナル。

  3. ngrok によって localhost でウェブ インターフェースも起動されます。 ブラウザで開くと、すべてのアクティビティをモニタリングできます。

    「ngrok」アプリケーションがホストするウェブ インターフェースに HTTP が表示されない
リクエスト

    図 5. ngrok アプリケーションでホストされるウェブ インターフェース HTTP リクエストはありません

  4. 新しいケースの URL をプレビューして、Google Workspace アドオンをテストします テスター アカウントでの Google ドキュメント:

    • 新しい Google ドキュメントを作成します。

      新しい Google ドキュメントを作成する

    • 次のリンクを入力して、enter キーを押します。

      https://example.com/support/case/?name=Name1&description=Description1&priority=P1
      
    • そこにあるリンクをクリックします。

  5. ローカル環境の Visual Studio Code に、次の値が示されています。 設定されたブレークポイントで実行を一時停止します。

    実行が一時停止したブレークポイントで
セット

    図 6. 実行は、設定されたブレークポイントで一時停止します。

  6. Visual Studio Code のデバッガから実行を再開したとき Google Workspace アドオンがタイムアウトになる前に キャッシュにある Google ドキュメントにリンクのプレビューを表示します。

  7. ウェブ インターフェースから HTTP リクエストとレスポンスのログを確認できます。 (ローカル環境の ngrok アプリケーションによってホストされる)

    「ngrok」によってホストされているウェブ インターフェースからの HTTP リクエスト
アプリケーション

    図 7. ngrok アプリケーション。

  8. アプリケーションの動作を変更するには、Case をインラインの Case: に置き換えます。 78CreateLinkPreview.javaファイルを開き、mvnDebug Remote Debug Watch を再起動して、再接続して再起動します デバッグする方法を学びます。

  9. 今回は、リンクをクリックして数秒待つ代わりに、 新しい Google ドキュメントでは、ウェブに記録された最後の HTTP リクエストを選択できます。 ローカル環境の ngrok アプリケーションによってホストされるインターフェース [Replay] をクリックします。前回と同様に、Google Workspace アドオンで アクティブにデバッグされているため、応答しません。

  10. Visual Studio Code のデバッガから実行を再開したとき これは、ngrok アプリケーションがホストするウェブ インターフェースから アプリケーションがレスポンスを生成するローカル環境 更新済みのプレビュー カードです。

リモート環境からデバッグする

このセクションでは、Google Workspace アドオンを 実行されるようにします。

リモートからデバッグする
環境

図 9. リモート環境からデバッグする。

前提条件

  • Google Workspace アドオンがデプロイされ、インストールされました。
  • リモート環境でデバッガを使用して実行中のアプリケーション ポートで有効にしている場合は、 REMOTE_DEBUG_PORT を使用してください。
  • ローカル環境は、リモート環境に ssh できます。
  • ローカル環境内でセットアップされ、デバッグ可能な IDE。Google では、 Visual Studio Code IDE とそのデフォルト デバッグ機能については、 説明します。

ローカル環境とリモート環境を接続する

デバッグ クライアントを開始するローカル環境 SSH トンネルを設定します。

ssh -L LOCAL_DEBUG_PORT:localhost:REMOTE_DEBUG_PORT REMOTE_USERNAME@REMOTE_ADDRESS

次のように置き換えます。

  • LOCAL_DEBUG_PORT: ローカルのデバッグポート できます。
  • REMOTE_USERNAME: リモート環境のユーザー名。
  • REMOTE_ADDRESS: リモート環境のアドレス。
  • REMOTE_DEBUG_PORT: リモートのデバッグポート できます。

これで、ローカル環境のデバッグポートが リモート環境に配置できます。

デバッグを開始する

ローカル環境にインストールされている Visual Studio Code IDE から、次の操作を行います。 次のとおりです。

  1. 新しいウィンドウで、アプリのソースコードを開きます。
  2. ルート ディレクトリに .vscode/launch.json ファイルを作成し、 ローカルのデバッグポートに接続する Debug Remote という名前の起動 環境:

    Node.js

    {
        "version": "0.2.0",
        "configurations": [{
            "type": "node",
            "request": "attach",
            "name": "Debug Remote",
            "address": "127.0.0.1",
            "port": LOCAL_DEBUG_PORT
        }]
    }
    

    Python

    {
        "version": "0.2.0",
        "configurations": [{
            "type": "python",
            "request": "attach",
            "name": "Debug Remote",
            "connect": {
                "host": "127.0.0.1",
                "port": LOCAL_DEBUG_PORT
            }
        }]
    }
    

    Java

    {
        "version": "0.2.0",
        "configurations": [{
            "type": "java",
            "request": "attach",
            "name": "Debug Remote",
            "hostName": "127.0.0.1",
            "port": LOCAL_DEBUG_PORT
        }]
    }
    

    LOCAL_DEBUG_PORT をアプリケーションのデバッグポートに置き換えます。 構成する必要があります。

  3. アプリのソースコードに、HTTP リクエストを一時停止するブレークポイントを追加する 移行し、運用を開始して 以前に追加した Debug Remote 構成で置き換えます。

インストールされている Google Workspace アドオンを操作する。お客様の アクティブになっているため、Google Workspace アドオンが応答しません デバッグ済み Visual Studio Code IDE 内で直接使用できます。

エラーログをクエリする方法を学習する。