Как разработчику надстроек Google Workspace вам может потребоваться отладка кода для проверки изменений или устранения сложных проблем. Отладку надстроек Google Workspace можно выполнять разными способами в зависимости от архитектуры вашего приложения, его функций, способа его развертывания и ваших предпочтений.
На этой странице объясняется, как отладить HTTP-надстройку Google Workspace с помощью ngrok
— единой входящей платформы, которую можно использовать для тестирования локальных сред разработки. В этом руководстве вы тестируете изменения кода в локальной среде и устраняете проблемы в удаленной среде.
Отладка из локальной среды разработки
В этом разделе вы взаимодействуете с надстройкой Google Workspace, которая выполняется в вашей локальной среде.
Предварительные условия
Node.js
- Последние версии
node
иnpm
, установленные в вашей локальной среде. Последняя версия
nodemon
, установленная в вашей локальной среде. Он используется для целей автоматической перезагрузки:npm install -g nodemon
Проект Google Cloud . Вы можете следовать разделам «Предварительные условия» и «Настройка среды» краткого руководства .
Код дополнения Google Workspace для отладки в вашей локальной среде. В этом руководстве в целях иллюстрации мы используем функции ссылок предварительного просмотра из примера кода
3p-resources
из репозитория GitHubgoogleworkspace/add-ons-samples
.IDE, установленная в вашей локальной среде и поддерживающая отладку. В этом руководстве в целях иллюстрации мы используем
Visual Studio Code
IDE и ее функции отладки по умолчанию.Аккаунт
ngrok
.Последняя версия
gcloud
установлена и инициализирована в вашей локальной среде.
Питон
- Последняя версия
python3
, установленная в вашей локальной среде. - Последняя версия
pip
иvirtualenv
установленная в вашей локальной среде. Они используются для управления пакетами Python и виртуальными средами соответственно. - Проект Google Cloud . Вы можете следовать разделам «Предварительные условия» и «Настройка среды» краткого руководства .
- Код дополнения Google Workspace для отладки в вашей локальной среде. В этом руководстве в целях иллюстрации мы используем функции ссылок предварительного просмотра из примера кода
3p-resources
из репозитория GitHubgoogleworkspace/add-ons-samples
. - IDE, установленная в вашей локальной среде и поддерживающая отладку. В этом руководстве в целях иллюстрации мы используем
Visual Studio Code
IDE и ее функции отладки по умолчанию. - Аккаунт
ngrok
. - Последняя версия
gcloud
установлена и инициализирована в вашей локальной среде.
Ява
- Последняя стабильная версия
Java SE 11's JDK
установленная в вашей локальной среде. - Последняя версия
Apache Maven
установленная в вашей локальной среде. Он используется для управления проектами Java. - Проект Google Cloud . Вы можете следовать разделам «Предварительные условия» и «Настройка среды» краткого руководства .
- Код дополнения Google Workspace для отладки в вашей локальной среде. В этом руководстве в целях иллюстрации мы используем функции ссылок предварительного просмотра из примера кода
3p-resources
из репозитория GitHubgoogleworkspace/add-ons-samples
. - IDE, установленная в вашей локальной среде и поддерживающая отладку. В этом руководстве в целях иллюстрации мы используем
Visual Studio Code
IDE и ее функции отладки по умолчанию. - Аккаунт
ngrok
. - Последняя версия
gcloud
установлена и инициализирована в вашей локальной среде.
Сделайте службу localhost общедоступной.
Вам необходимо подключить локальную среду к Интернету, чтобы надстройка Google Workspace могла получить к ней доступ. Приложение ngrok
используется для перенаправления HTTP-запросов, сделанных на общедоступный URL-адрес, в вашу локальную среду.
- В браузере в вашей локальной среде войдите в свою учетную запись
ngrok
. - Установите приложение и настройте
authtoken
в своей локальной среде. - Создайте статический домен в своей учетной записи
ngrok
, в инструкциях этого руководства он обозначается какNGROK_STATIC_DOMAIN
.
Создайте и установите развертывание надстройки.
Настройте надстройку Google Workspace так, чтобы она отправляла все HTTP-запросы в ваш статический домен. Ваш файл развертывания должен выглядеть следующим образом:
{ "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" } ] }, "httpOptions": { "granularOauthPermissionSupport": "OPT_IN" } } }
Замените
NGROK_STATIC_DOMAIN
на статический домен в вашей учетной записиngrok
.Настройте проект Google Cloud для использования:
gcloud config set project PROJECT_ID
Получите новые учетные данные пользователя для использования в качестве учетных данных приложения по умолчанию :
gcloud auth application-default login
Замените
PROJECT_ID
на идентификатор проекта Google Cloud приложения.Создайте развертывание:
gcloud workspace-add-ons deployments create manageSupportCases \ --deployment-file=DEPLOYMENT_FILE_PATH
Замените
DEPLOYMENT_FILE_PATH
на путь к файлу развертывания.Установите развертывание:
gcloud workspace-add-ons deployments install manageSupportCases
Рисунок 2. Надстройка Google Workspace отправляет все свои HTTP-запросы в статический домен. Публичный сервис ngrok действует как мост между надстройкой Google Workspace и кодом приложения, который выполняется локально.
Протестируйте дополнение Google Workspace
Вы можете локально развернуть, протестировать, отладить и автоматически перезагрузить надстройку Google Workspace.
Node.js
В среде
Visual Studio Code
IDE, установленной в вашей локальной среде, выполните следующие действия:- В новом окне откройте папку
add-ons-samples/node/3p-resources
. Настройте приложение для локального запуска и автоматической перезагрузки отладки, добавив одну зависимость и два сценария в файл
package.json
:{ ... "dependencies": { ... "@google-cloud/functions-framework": "^3.3.0" }, "scripts": { ... "start": "npx functions-framework --target=createLinkPreview --port=9000", "debug-watch": "nodemon --watch ./ --exec npm start" } ... }
Из корневого каталога установите приложение:
npm install
Создайте и настройте запуск с именем
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"] }] }
Добавьте точку останова, которая приостанавливает обработку HTTP-запроса в файле
index.js
, и начните работу и отладку с добавленной ранее конфигурациейDebug Watch
. Теперь приложение работает и прослушивает HTTP-запросы на порту9000
.Рисунок 3. Приложение запущено и прослушивает HTTP-запросы на порту 9000
.
- В новом окне откройте папку
Запустите приложение
ngrok
в своей локальной среде:ngrok http --domain=NGROK_STATIC_DOMAIN 9000
Замените
NGROK_STATIC_DOMAIN
на статический домен в вашей учетной записиngrok
. Все запросы теперь перенаправляются в вашу локальную среду и порт, используемый приложением.Рисунок 4. Терминал с запущенным и перенаправленным сервером ngrok
.Веб-интерфейс также запускается на вашем локальном хосте с помощью приложения
ngrok
. Вы можете отслеживать все действия, открыв его в браузере.Рисунок 5. Веб-интерфейс приложения ngrok
, в котором нет HTTP-запросов.Протестируйте надстройку Google Workspace, просмотрев URL-адрес обращения в новом документе Google с помощью учетной записи тестера:
Создайте документ Google.
Введите следующую ссылку и нажмите
enter
:https://example.com/support/case/?name=Name1&description=Description1&priority=P1
Щелкните ссылку.
В
Visual Studio Code
в вашей локальной среде вы можете видеть, что выполнение приостанавливается в установленной точке останова.Рисунок 6. Выполнение приостанавливается в установленной точке останова. Когда вы возобновляете выполнение из отладчика
Visual Studio Code
до истечения времени ожидания надстроек Google Workspace, надстройка Google Workspace отображает предварительный просмотр ссылки в Документе Google из кеша.Вы можете проверить журналы HTTP-запросов и ответов из веб-интерфейса, размещенного приложением
ngrok
в вашей локальной среде.Рисунок 7. HTTP-запрос из веб-интерфейса приложения ngrok
.Чтобы изменить поведение приложения, замените
Case
наCase:
в строке51
файлаindex.js
. Когда вы сохраняете файл,nodemon
автоматически перезагружает приложение с обновленным исходным кодом, аVisual Studio Code
остается в режиме отладки.Рис. 8. Приложение запущено и прослушивает HTTP-запросы на порту 9000
с загруженным изменением кода.На этот раз вместо того, чтобы щелкать ссылку и ждать несколько секунд в новом документе Google, вы можете выбрать последний HTTP-запрос, зарегистрированный в веб-интерфейсе, размещенном приложением
ngrok
в вашей локальной среде, и нажатьReplay
. Как и в прошлый раз, ваше дополнение Google Workspace не отвечает, поскольку оно активно отлаживается .Когда вы возобновляете выполнение из отладчика
Visual Studio Code
, вы можете видеть в веб-интерфейсе, размещенном приложениемngrok
в вашей локальной среде, что приложение генерирует ответ с обновленной версией карты предварительного просмотра.
Питон
В среде
Visual Studio Code
IDE, установленной в вашей локальной среде, выполните следующие действия:- В новом окне откройте папку
add-ons-samples/python/3p-resources/create_link_preview
. Создайте виртуальную среду для
env
Python и активируйте ее:virtualenv env
source env/bin/activate
Установите все зависимости проекта с помощью
pip
в виртуальной среде:pip install -r requirements.txt
Создайте файл
.vscode/launch.json
в корневом каталоге и настройте запуск с именемDebug Watch
, который запускает приложение изfunctions-framework
модуля на порту9000
в режиме отладки в виртуальной среде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" ] }] }
Добавьте точку останова, которая приостанавливает обработку HTTP-запроса в файле
main.py
, и начните работу и отладку с добавленной ранее конфигурациейDebug Watch
. Теперь приложение работает и прослушивает HTTP-запросы на порту9000
.Рисунок 3. Приложение запущено и прослушивает HTTP-запросы на порту 9000
.
- В новом окне откройте папку
Запустите приложение
ngrok
в своей локальной среде:ngrok http --domain=NGROK_STATIC_DOMAIN 9000
Замените
NGROK_STATIC_DOMAIN
на статический домен в вашей учетной записиngrok
. Все запросы теперь перенаправляются в вашу локальную среду и порт, используемый приложением.Рисунок 4. Терминал с запущенным и перенаправленным сервером ngrok
.Веб-интерфейс также запускается на вашем локальном хосте с помощью приложения
ngrok
, вы можете отслеживать все действия, открыв его в браузере.Рисунок 5. Веб-интерфейс приложения ngrok
, в котором нет HTTP-запросов.Протестируйте надстройку Google Workspace, просмотрев URL-адрес обращения в новом документе Google с помощью учетной записи тестера:
Создайте документ Google.
Введите следующую ссылку и нажмите
enter
:https://example.com/support/case/?name=Name1&description=Description1&priority=P1
Щелкните ссылку.
В
Visual Studio Code
в вашей локальной среде вы можете видеть, что выполнение приостанавливается в установленной точке останова.Рисунок 6. Выполнение приостанавливается в установленной точке останова. Когда вы возобновляете выполнение из отладчика
Visual Studio Code
до истечения времени ожидания надстроек Google Workspace, надстройка Google Workspace отображает предварительный просмотр ссылки в Документе Google из кеша.Вы можете проверить журналы HTTP-запросов и ответов из веб-интерфейса, размещенного приложением
ngrok
в вашей локальной среде.Рисунок 7. HTTP-запрос из веб-интерфейса приложения ngrok
.Чтобы изменить поведение приложения, замените
Case
наCase:
в строке56
файлаmain.py
Когда вы сохраняете файл,Visual Studio Code
автоматически перезагружает приложение с обновленным исходным кодом и остается в режиме отладки.Рис. 8. Приложение запущено и прослушивает HTTP-запросы на порту 9000
с загруженным изменением кода.На этот раз вместо того, чтобы щелкать ссылку и ждать несколько секунд в новом документе Google, вы можете выбрать последний HTTP-запрос, зарегистрированный в веб-интерфейсе, размещенном приложением
ngrok
в вашей локальной среде, и нажатьReplay
. Как и в прошлый раз, ваше дополнение Google Workspace не отвечает, поскольку оно активно отлаживается .Когда вы возобновляете выполнение из отладчика
Visual Studio Code
, вы можете видеть в веб-интерфейсе, размещенном приложениемngrok
в вашей локальной среде, что приложение генерирует ответ с обновленной версией карты предварительного просмотра.
Ява
В среде
Visual Studio Code
IDE, установленной в вашей локальной среде, выполните следующие действия:- В новом окне откройте папку
add-ons-samples/java/3p-resources
. Настройте проект Maven для локального запуска приложения
CreateLinkPreview
на порту9000
, добавив плагин сборки Cloud Functions Frameworkfunction-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> ...
Теперь вы можете запустить его локально в режиме отладки:
mvnDebug function:run Preparing to execute Maven in debug mode Listening for transport dt_socket at address: 8000
Создайте файл
.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 }] }
Добавьте точку останова, которая приостанавливает обработку HTTP-запроса, в файле
CreateLinkPreview.java
и начните подключение и отладку с помощью добавленной ранее конфигурацииRemote Debug Watch
. Теперь приложение работает и прослушивает HTTP-запросы на порту9000
.Рисунок 3. Приложение запущено и прослушивает HTTP-запросы на порту 9000
.
- В новом окне откройте папку
Запустите приложение
ngrok
в своей локальной среде:ngrok http --domain=NGROK_STATIC_DOMAIN 9000
Замените
NGROK_STATIC_DOMAIN
на статический домен в вашей учетной записиngrok
. Все запросы теперь перенаправляются в вашу локальную среду и порт, используемый приложением.Рисунок 4. Терминал с запущенным и перенаправленным сервером ngrok
.Веб-интерфейс также запускается на вашем локальном хосте с помощью приложения
ngrok
, вы можете отслеживать все действия, открыв его в браузере.Рисунок 5. Веб-интерфейс приложения ngrok
, в котором нет HTTP-запросов.Протестируйте надстройку Google Workspace, просмотрев URL-адрес обращения в новом документе Google с помощью учетной записи тестера:
Создайте документ Google.
Введите следующую ссылку и нажмите
enter
:https://example.com/support/case/?name=Name1&description=Description1&priority=P1
Щелкните ссылку.
В
Visual Studio Code
в вашей локальной среде вы можете видеть, что выполнение приостанавливается в установленной точке останова.Рисунок 6. Выполнение приостанавливается в установленной точке останова. Когда вы возобновляете выполнение из отладчика
Visual Studio Code
до истечения времени ожидания надстроек Google Workspace, надстройка Google Workspace отображает предварительный просмотр ссылки в Документе Google из кеша.Вы можете проверить журналы HTTP-запросов и ответов из веб-интерфейса, размещенного приложением
ngrok
в вашей локальной среде.Рисунок 7. HTTP-запрос из веб-интерфейса приложения ngrok
.Чтобы изменить поведение приложения, замените
Case
наCase:
в строке78
файлаCreateLinkPreview.java
, перезапустите процессmvnDebug
и перезапуститеRemote Debug Watch
, чтобы повторно подключиться и перезапустить отладку .На этот раз вместо того, чтобы щелкать ссылку и ждать несколько секунд в новом документе Google, вы можете выбрать последний HTTP-запрос, зарегистрированный в веб-интерфейсе, размещенном приложением
ngrok
в вашей локальной среде, и нажатьReplay
. Как и в прошлый раз, ваше дополнение Google Workspace не отвечает, поскольку оно активно отлаживается .Когда вы возобновляете выполнение из отладчика
Visual Studio Code
, вы можете видеть в веб-интерфейсе, размещенном приложениемngrok
в вашей локальной среде, что приложение генерирует ответ с обновленной версией карты предварительного просмотра.
Отладка из удаленной среды
В этом разделе вы взаимодействуете с надстройкой Google Workspace, которая выполняется в удаленной среде.
Предварительные условия
- Ваше дополнение Google Workspace развернуто и установлено.
- Ваше приложение работает в удаленной среде с включенным отладчиком на определенном порту, и в инструкциях этого руководства оно обозначается как
REMOTE_DEBUG_PORT
. - Ваша локальная среда может
ssh
к удаленной среде по протоколу SSH. - В вашей локальной среде настроена IDE, которая может выполнять отладку. В этом руководстве в целях иллюстрации мы используем
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, установленной в вашей локальной среде, выполните следующие действия:
- В новом окне откройте исходный код вашего приложения.
Создайте файл
.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 }] }
Питон
{ "version": "0.2.0", "configurations": [{ "type": "python", "request": "attach", "name": "Debug Remote", "connect": { "host": "127.0.0.1", "port": LOCAL_DEBUG_PORT } }] }
Ява
{ "version": "0.2.0", "configurations": [{ "type": "java", "request": "attach", "name": "Debug Remote", "hostName": "127.0.0.1", "port": LOCAL_DEBUG_PORT }] }
Замените
LOCAL_DEBUG_PORT
портом отладки в вашей локальной среде.Добавьте точку останова в исходный код вашего приложения, которая приостанавливает обработку HTTP-запроса, и начните выполнение и отладку с добавленной ранее конфигурацией
Debug Remote
.Взаимодействуйте с установленным дополнением Google Workspace. Ваше дополнение Google Workspace не отвечает, поскольку оно активно отлаживается в
Visual Studio Code
IDE.
Связанные темы
- Узнайте, как запрашивать журналы ошибок .
Как разработчику надстроек Google Workspace вам может потребоваться отладка кода для проверки изменений или устранения сложных проблем. Отладку надстроек Google Workspace можно выполнять разными способами в зависимости от архитектуры вашего приложения, его функций, способа его развертывания и ваших предпочтений.
На этой странице объясняется, как отладить HTTP-надстройку Google Workspace с помощью ngrok
— единой входящей платформы, которую можно использовать для тестирования локальных сред разработки. В этом руководстве вы тестируете изменения кода в локальной среде и устраняете проблемы в удаленной среде.
Отладка из локальной среды разработки
В этом разделе вы взаимодействуете с надстройкой Google Workspace, которая выполняется в вашей локальной среде.
Предварительные условия
Node.js
- Последние версии
node
иnpm
, установленные в вашей локальной среде. Последняя версия
nodemon
, установленная в вашей локальной среде. Он используется для целей автоматической перезагрузки:npm install -g nodemon
Проект Google Cloud . Вы можете следовать разделам «Предварительные условия» и «Настройка среды» краткого руководства .
Код дополнения Google Workspace для отладки в вашей локальной среде. В этом руководстве в целях иллюстрации мы используем функции ссылок предварительного просмотра из примера кода
3p-resources
из репозитория GitHubgoogleworkspace/add-ons-samples
.IDE, установленная в вашей локальной среде и поддерживающая отладку. В этом руководстве в целях иллюстрации мы используем
Visual Studio Code
IDE и ее функции отладки по умолчанию.Аккаунт
ngrok
.Последняя версия
gcloud
установлена и инициализирована в вашей локальной среде.
Питон
- Последняя версия
python3
, установленная в вашей локальной среде. - Последняя версия
pip
иvirtualenv
установленная в вашей локальной среде. Они используются для управления пакетами Python и виртуальными средами соответственно. - Проект Google Cloud . Вы можете следовать разделам «Предварительные условия» и «Настройка среды» краткого руководства .
- Код дополнения Google Workspace для отладки в вашей локальной среде. В этом руководстве в целях иллюстрации мы используем функции ссылок предварительного просмотра из примера кода
3p-resources
из репозитория GitHubgoogleworkspace/add-ons-samples
. - IDE, установленная в вашей локальной среде и поддерживающая отладку. В этом руководстве в целях иллюстрации мы используем
Visual Studio Code
IDE и ее функции отладки по умолчанию. - Аккаунт
ngrok
. - Последняя версия
gcloud
установлена и инициализирована в вашей локальной среде.
Ява
- Последняя стабильная версия
Java SE 11's JDK
установленная в вашей локальной среде. - Последняя версия
Apache Maven
установленная в вашей локальной среде. Он используется для управления проектами Java. - Проект Google Cloud . Вы можете следовать разделам «Предварительные условия» и «Настройка среды» краткого руководства .
- Код дополнения Google Workspace для отладки в вашей локальной среде. В этом руководстве в целях иллюстрации мы используем функции ссылок предварительного просмотра из примера кода
3p-resources
из репозитория GitHubgoogleworkspace/add-ons-samples
. - IDE, установленная в вашей локальной среде и поддерживающая отладку. В этом руководстве в целях иллюстрации мы используем
Visual Studio Code
IDE и ее функции отладки по умолчанию. - Аккаунт
ngrok
. - Последняя версия
gcloud
установлена и инициализирована в вашей локальной среде.
Сделайте службу localhost общедоступной.
Вам необходимо подключить локальную среду к Интернету, чтобы надстройка Google Workspace могла получить к ней доступ. Приложение ngrok
используется для перенаправления HTTP-запросов, сделанных на общедоступный URL-адрес, в вашу локальную среду.
- В браузере в вашей локальной среде войдите в свою учетную запись
ngrok
. - Установите приложение и настройте
authtoken
в своей локальной среде. - Создайте статический домен в своей учетной записи
ngrok
, в инструкциях этого руководства он обозначается какNGROK_STATIC_DOMAIN
.
Создайте и установите развертывание надстройки.
Настройте надстройку Google Workspace так, чтобы она отправляла все HTTP-запросы в ваш статический домен. Ваш файл развертывания должен выглядеть следующим образом:
{ "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" } ] }, "httpOptions": { "granularOauthPermissionSupport": "OPT_IN" } } }
Замените
NGROK_STATIC_DOMAIN
на статический домен в вашей учетной записиngrok
.Настройте проект Google Cloud для использования:
gcloud config set project PROJECT_ID
Получите новые учетные данные пользователя для использования в качестве учетных данных приложения по умолчанию :
gcloud auth application-default login
Замените
PROJECT_ID
на идентификатор проекта Google Cloud приложения.Создайте развертывание:
gcloud workspace-add-ons deployments create manageSupportCases \ --deployment-file=DEPLOYMENT_FILE_PATH
Замените
DEPLOYMENT_FILE_PATH
на путь к файлу развертывания.Установите развертывание:
gcloud workspace-add-ons deployments install manageSupportCases
Рисунок 2. Надстройка Google Workspace отправляет все свои HTTP-запросы в статический домен. Публичный сервис ngrok действует как мост между надстройкой Google Workspace и кодом приложения, который выполняется локально.
Протестируйте дополнение Google Workspace
Вы можете локально развернуть, протестировать, отладить и автоматически перезагрузить надстройку Google Workspace.
Node.js
В среде
Visual Studio Code
IDE, установленной в вашей локальной среде, выполните следующие действия:- В новом окне откройте папку
add-ons-samples/node/3p-resources
. Настройте приложение для локального запуска и автоматической перезагрузки отладки, добавив одну зависимость и два сценария в файл
package.json
:{ ... "dependencies": { ... "@google-cloud/functions-framework": "^3.3.0" }, "scripts": { ... "start": "npx functions-framework --target=createLinkPreview --port=9000", "debug-watch": "nodemon --watch ./ --exec npm start" } ... }
Из корневого каталога установите приложение:
npm install
Создайте и настройте запуск с именем
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"] }] }
Добавьте точку останова, которая приостанавливает обработку HTTP-запроса в файле
index.js
, и начните работу и отладку с добавленной ранее конфигурациейDebug Watch
. Теперь приложение работает и прослушивает HTTP-запросы на порту9000
.Рисунок 3. Приложение запущено и прослушивает HTTP-запросы на порту 9000
.
- В новом окне откройте папку
Запустите приложение
ngrok
в своей локальной среде:ngrok http --domain=NGROK_STATIC_DOMAIN 9000
Замените
NGROK_STATIC_DOMAIN
на статический домен в вашей учетной записиngrok
. Все запросы теперь перенаправляются в вашу локальную среду и порт, используемый приложением.Рисунок 4. Терминал с запущенным и перенаправленным сервером ngrok
.Веб-интерфейс также запускается на вашем локальном хосте с помощью приложения
ngrok
. Вы можете отслеживать все действия, открыв его в браузере.Рисунок 5. Веб-интерфейс приложения ngrok
, в котором нет HTTP-запросов.Протестируйте надстройку Google Workspace, просмотрев URL-адрес обращения в новом документе Google с помощью учетной записи тестера:
Создайте документ Google.
Введите следующую ссылку и нажмите
enter
:https://example.com/support/case/?name=Name1&description=Description1&priority=P1
Щелкните ссылку.
В
Visual Studio Code
в вашей локальной среде вы можете видеть, что выполнение приостанавливается в установленной точке останова.Рисунок 6. Выполнение приостанавливается в установленной точке останова. Когда вы возобновляете выполнение из отладчика
Visual Studio Code
до истечения времени ожидания надстроек Google Workspace, надстройка Google Workspace отображает предварительный просмотр ссылки в Документе Google из кеша.Вы можете проверить журналы HTTP-запросов и ответов из веб-интерфейса, размещенного приложением
ngrok
в вашей локальной среде.Рисунок 7. HTTP-запрос из веб-интерфейса приложения ngrok
.Чтобы изменить поведение приложения, замените
Case
наCase:
в строке51
файлаindex.js
. Когда вы сохраняете файл,nodemon
автоматически перезагружает приложение с обновленным исходным кодом, аVisual Studio Code
остается в режиме отладки.Рис. 8. Приложение запущено и прослушивает HTTP-запросы на порту 9000
с загруженным изменением кода.На этот раз вместо того, чтобы щелкать ссылку и ждать несколько секунд в новом документе Google, вы можете выбрать последний HTTP-запрос, зарегистрированный в веб-интерфейсе, размещенном приложением
ngrok
в вашей локальной среде, и нажатьReplay
. Как и в прошлый раз, ваше дополнение Google Workspace не отвечает, поскольку оно активно отлаживается .Когда вы возобновляете выполнение из отладчика
Visual Studio Code
, вы можете видеть в веб-интерфейсе, размещенном приложениемngrok
в вашей локальной среде, что приложение генерирует ответ с обновленной версией карты предварительного просмотра.
Питон
В среде
Visual Studio Code
IDE, установленной в вашей локальной среде, выполните следующие действия:- В новом окне откройте папку
add-ons-samples/python/3p-resources/create_link_preview
. Создайте виртуальную среду для
env
Python и активируйте ее:virtualenv env
source env/bin/activate
Установите все зависимости проекта с помощью
pip
в виртуальной среде:pip install -r requirements.txt
Создайте файл
.vscode/launch.json
в корневом каталоге и настройте запуск с именемDebug Watch
, который запускает приложение изfunctions-framework
модуля на порту9000
в режиме отладки в виртуальной среде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" ] }] }
Добавьте точку останова, которая приостанавливает обработку HTTP-запроса в файле
main.py
, и начните работу и отладку с добавленной ранее конфигурациейDebug Watch
. Теперь приложение работает и прослушивает HTTP-запросы на порту9000
.Рисунок 3. Приложение запущено и прослушивает HTTP-запросы на порту 9000
.
- В новом окне откройте папку
Запустите приложение
ngrok
в своей локальной среде:ngrok http --domain=NGROK_STATIC_DOMAIN 9000
Замените
NGROK_STATIC_DOMAIN
на статический домен в вашей учетной записиngrok
. Все запросы теперь перенаправляются в вашу локальную среду и порт, используемый приложением.Рисунок 4. Терминал с запущенным и перенаправленным сервером ngrok
.Веб-интерфейс также запускается на вашем локальном хосте с помощью приложения
ngrok
, вы можете отслеживать все действия, открыв его в браузере.Рисунок 5. Веб-интерфейс приложения ngrok
, в котором нет HTTP-запросов.Протестируйте надстройку Google Workspace, просмотрев URL-адрес обращения в новом документе Google с помощью учетной записи тестера:
Создайте документ Google.
Введите следующую ссылку и нажмите
enter
:https://example.com/support/case/?name=Name1&description=Description1&priority=P1
Щелкните ссылку.
В
Visual Studio Code
в вашей локальной среде вы можете видеть, что выполнение приостанавливается в установленной точке останова.Рисунок 6. Выполнение приостанавливается в установленной точке останова. Когда вы возобновляете выполнение из отладчика
Visual Studio Code
до истечения времени ожидания надстроек Google Workspace, надстройка Google Workspace отображает предварительный просмотр ссылки в Документе Google из кеша.Вы можете проверить журналы HTTP-запросов и ответов из веб-интерфейса, размещенного приложением
ngrok
в вашей локальной среде.Рисунок 7. HTTP-запрос из веб-интерфейса приложения ngrok
.Чтобы изменить поведение приложения, замените
Case
наCase:
в строке56
файлаmain.py
Когда вы сохраняете файл,Visual Studio Code
автоматически перезагружает приложение с обновленным исходным кодом и остается в режиме отладки.Рис. 8. Приложение запущено и прослушивает HTTP-запросы на порту 9000
с загруженным изменением кода.На этот раз вместо того, чтобы щелкать ссылку и ждать несколько секунд в новом документе Google, вы можете выбрать последний HTTP-запрос, зарегистрированный в веб-интерфейсе, размещенном приложением
ngrok
в вашей локальной среде, и нажатьReplay
. Как и в прошлый раз, ваше дополнение Google Workspace не отвечает, поскольку оно активно отлаживается .Когда вы возобновляете выполнение из отладчика
Visual Studio Code
, вы можете видеть в веб-интерфейсе, размещенном приложениемngrok
в вашей локальной среде, что приложение генерирует ответ с обновленной версией карты предварительного просмотра.
Ява
В среде
Visual Studio Code
IDE, установленной в вашей локальной среде, выполните следующие действия:- В новом окне откройте папку
add-ons-samples/java/3p-resources
. Настройте проект Maven для локального запуска приложения
CreateLinkPreview
на порту9000
, добавив плагин сборки Cloud Functions Frameworkfunction-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> ...
Теперь вы можете запустить его локально в режиме отладки:
mvnDebug function:run Preparing to execute Maven in debug mode Listening for transport dt_socket at address: 8000
Создайте файл
.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 }] }
Добавьте точку останова, которая приостанавливает обработку HTTP-запроса, в файле
CreateLinkPreview.java
и начните подключение и отладку с помощью добавленной ранее конфигурацииRemote Debug Watch
. Теперь приложение работает и прослушивает HTTP-запросы на порту9000
.Рисунок 3. Приложение запущено и прослушивает HTTP-запросы на порту 9000
.
- В новом окне откройте папку
Запустите приложение
ngrok
в своей локальной среде:ngrok http --domain=NGROK_STATIC_DOMAIN 9000
Замените
NGROK_STATIC_DOMAIN
на статический домен в вашей учетной записиngrok
. Все запросы теперь перенаправляются в вашу локальную среду и порт, используемый приложением.Рисунок 4. Терминал с запущенным и перенаправленным сервером ngrok
.Веб-интерфейс также запускается на вашем локальном хосте с помощью приложения
ngrok
, вы можете отслеживать все действия, открыв его в браузере.Рисунок 5. Веб-интерфейс приложения ngrok
, в котором нет HTTP-запросов.Протестируйте надстройку Google Workspace, просмотрев URL-адрес обращения в новом документе Google с помощью учетной записи тестера:
Создайте документ Google.
Введите следующую ссылку и нажмите
enter
:https://example.com/support/case/?name=Name1&description=Description1&priority=P1
Щелкните ссылку.
В
Visual Studio Code
в вашей локальной среде вы можете видеть, что выполнение приостанавливается в установленной точке останова.Рисунок 6. Выполнение приостанавливается в установленной точке останова. Когда вы возобновите выполнение от Debugger
Visual Studio Code
прежде чем Google Workspace AddOns Out Out, надстройка Google Workspace отображает предварительный просмотр ссылки в Google Doc из кэша.Вы можете проверить HTTP -запрос и журналы ответов из веб -интерфейса, размещенного приложением
ngrok
в вашей локальной среде.Рисунок 7. HTTP -запрос из веб -интерфейса, размещенного приложением ngrok
.Чтобы изменить поведение приложения, замените
Case
Case:
в строке78
файлаCreateLinkPreview.java
, перезапустите процессmvnDebug
и перезаписываяRemote Debug Watch
и перезапустить отладку .На этот раз, вместо того, чтобы щелкнуть по ссылке и ждать несколько секунд в новом документе Google, вы можете выбрать последний HTTP -запрос, зарегистрированный в веб -интерфейсе, размещенном приложением
ngrok
в вашей локальной среде и нажатьReplay
. То же самое, что и в прошлый раз, ваше надстройка Google Workspace не отвечает, потому что он активно отлаживается .Когда вы возобновите выполнение от отладчика
Visual Studio Code
, вы можете увидеть из веб -интерфейса, размещенного приложениемngrok
в вашей локальной среде, приложение генерирует ответ с обновленной версией предварительной карты.
Отладка от удаленной среды
В этом разделе вы взаимодействуете с надстройкой Google Workspace, которое выполняется в удаленной среде.
Предварительные условия
- Ваша надстройка Google Workspace развернуто и установлено.
- Ваше приложение работает в вашей удаленной среде с отладчиком, включенным в данном порту, и оно упоминается как
REMOTE_DEBUG_PORT
в инструкциях этого руководства. - Ваша местная среда
ssh
в вашей удаленной среде. - IDE создан в вашей местной среде, которая может отлаживать. Мы используем IDE
Visual Studio Code
и его функции отладки по умолчанию в этом руководстве для иллюстрации.
Подключите свои локальные и удаленные среды
В вашей местной среде, откуда вы хотите инициировать подключение к клиенту отладки, настройте туннель SSH:
ssh -L LOCAL_DEBUG_PORT:localhost:REMOTE_DEBUG_PORT REMOTE_USERNAME@REMOTE_ADDRESS
Замените следующее:
-
LOCAL_DEBUG_PORT
: порт отладки в вашей локальной среде. -
REMOTE_USERNAME
: имя пользователя в вашей отдаленной среде. -
REMOTE_ADDRESS
: адрес вашей удаленной среды. -
REMOTE_DEBUG_PORT
: порт отладки в вашей удаленной среде.
Порт отладки в вашей местной среде теперь связан с портом отладки в вашей удаленной среде.
Начните отладку
Из IDE Visual Studio Code
, установленной в вашей локальной среде, сделайте следующее:
- В новом окне откройте исходный код вашего приложения.
Создайте файл
.vscode/launch.json
в каталоге ROOT и настройте запуск с именем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 }] }
Питон
{ "version": "0.2.0", "configurations": [{ "type": "python", "request": "attach", "name": "Debug Remote", "connect": { "host": "127.0.0.1", "port": LOCAL_DEBUG_PORT } }] }
Ява
{ "version": "0.2.0", "configurations": [{ "type": "java", "request": "attach", "name": "Debug Remote", "hostName": "127.0.0.1", "port": LOCAL_DEBUG_PORT }] }
Замените
LOCAL_DEBUG_PORT
на порт отладки в вашей локальной среде.Добавьте точку останова в исходное код вашего приложения, которое приостанавливает обработку HTTP -запросов, и начните запуск и отладку с помощью
Debug Remote
.Взаимодействуйте с установленным дополнением Google Workspace. Ваше надстройка Google Workspace не отвечает, потому что он активно отлаживается в IDE
Visual Studio Code
.
Связанные темы
- Узнайте, как запросить журналы ошибок .
Как разработчик Add-Ad Add-On Google, вам может потребоваться отладить код для проверки изменений или устранения устранения сложных проблем. Отладка надстройки Google Workspace может быть выполнена по-разному в зависимости от архитектуры вашего приложения, того, что делает приложение, как развертывается ваше приложение, и ваши предпочтения.
На этой странице объясняется, как отладить http-google arderpace с использованием ngrok
, которая представляет собой единую платформу Ingress, которую вы можете использовать для тестирования местных сред. В этом руководстве вы тестируете изменения кода в локальной среде и устранения неполадок в удаленной среде.
Отладка в местной среде развития
В этом разделе вы взаимодействуете с надстройкой Google Workspace, которое выполняется в вашей локальной среде.
Предварительные условия
Node.js
- Последние версии
node
иnpm
, установленные в вашей локальной среде. Последняя версия
nodemon
, установленная в вашей локальной среде. Он используется для целей автоматической нагрузки:npm install -g nodemon
Проект Google Cloud . Вы можете следовать предварительным условиям разделов и настроить среду руководства QuickStart .
Код надстройки Google Workspace отладки в вашей локальной среде. Мы используем функции ссылки предварительного просмотра из примера
3p-resources
из репозитория Githubgoogleworkspace/add-ons-samples
в этом руководстве для целей иллюстрации.IDE, созданная в вашей местной среде, которая может отлаживать. Мы используем IDE
Visual Studio Code
и его функции отладки по умолчанию в этом руководстве для иллюстрации.Учетная запись
ngrok
.Последняя версия
gcloud
, установленную и инициализированную в вашей местной среде.
Питон
- Последняя версия
python3
, установленная в вашей местной среде. - Последняя версия
pip
иvirtualenv
установлена в вашей местной среде. Они используются для управления пакетами Python и виртуальными средами соответственно. - Проект Google Cloud . Вы можете следовать предварительным условиям разделов и настроить среду руководства QuickStart .
- Код надстройки Google Workspace отладки в вашей локальной среде. Мы используем функции ссылки предварительного просмотра из примера
3p-resources
из репозитория Githubgoogleworkspace/add-ons-samples
в этом руководстве для целей иллюстрации. - IDE, созданная в вашей местной среде, которая может отлаживать. Мы используем IDE
Visual Studio Code
и его функции отладки по умолчанию в этом руководстве для иллюстрации. - Учетная запись
ngrok
. - Последняя версия
gcloud
, установленную и инициализированную в вашей местной среде.
Ява
- Последняя стабильная версия
Java SE 11's JDK
установленной в вашей местной среде. - Последняя версия
Apache Maven
установлена в вашей местной среде. Он используется для управления Java Projects. - Проект Google Cloud . Вы можете следовать предварительным условиям разделов и настроить среду руководства QuickStart .
- Код надстройки Google Workspace отладки в вашей локальной среде. Мы используем функции ссылки предварительного просмотра из примера
3p-resources
из репозитория Githubgoogleworkspace/add-ons-samples
в этом руководстве для целей иллюстрации. - IDE, созданная в вашей местной среде, которая может отлаживать. Мы используем IDE
Visual Studio Code
и его функции отладки по умолчанию в этом руководстве для иллюстрации. - Учетная запись
ngrok
. - Последняя версия
gcloud
, установленную и инициализированную в вашей местной среде.
Сделайте услуги Localhost доступной публично
Вам необходимо подключить свою локальную среду к Интернету, чтобы дополнение Google Workspace могла получить к нему доступ. Приложение ngrok
используется для перенаправления HTTP -запросов, сделанных на публичный URL, в вашу местную среду.
- В браузере в вашей местной среде войдите в свою учетную запись
ngrok
. - Установите приложение и настройте свой
authtoken
в местной среде. - Создайте статический домен в своей учетной записи
ngrok
, в инструкциях этого руководства ссылается какNGROK_STATIC_DOMAIN
.
Создать и установить дополнительный развертывание
Настройте надстройку Google Workspace, чтобы отправить все его HTTP-запросы в свой статический домен. Ваш файл развертывания должен выглядеть следующим образом:
{ "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" } ] }, "httpOptions": { "granularOauthPermissionSupport": "OPT_IN" } } }
Замените
NGROK_STATIC_DOMAIN
статическим доменом в вашей учетной записиngrok
.Установите Google Cloud Project для использования:
gcloud config set project PROJECT_ID
Получите новые учетные данные пользователя для использования для приложений по умолчанию учетных данных :
gcloud auth application-default login
Замените
PROJECT_ID
на идентификатор проекта для Google Cloud Project приложения.Создайте развертывание:
gcloud workspace-add-ons deployments create manageSupportCases \ --deployment-file=DEPLOYMENT_FILE_PATH
Замените
DEPLOYMENT_FILE_PATH
путем вашего файла развертывания.Установите развертывание:
gcloud workspace-add-ons deployments install manageSupportCases
Рисунок 2. Дополнение Google Workspace отправляет все свои HTTP-запросы в статический домен. Общественная служба Ngrok` действует как мост между надстройкой Google Workspace и кодом приложения, который выполняется локально.
Проверьте дополнение Google Workspace
Вы можете локально развернуть, тестировать, отлаживать и автоматическую загрузку в Google Workspace.
Node.js
Из IDE
Visual Studio Code
, установленной в вашей локальной среде, сделайте следующее:- В новом окне откройте папку
add-ons-samples/node/3p-resources
. Настройте приложение для локального запуска и отладки автоматической нагрузки, добавив одну зависимость и два сценария в файле
package.json
:{ ... "dependencies": { ... "@google-cloud/functions-framework": "^3.3.0" }, "scripts": { ... "start": "npx functions-framework --target=createLinkPreview --port=9000", "debug-watch": "nodemon --watch ./ --exec npm start" } ... }
В корневом каталоге установите приложение:
npm install
Создайте и настраивайте запуск с именем
Debug Watch
, что запускает сценарийdebug-watch
, создавая файл.vscode/launch.json
в каталоге ROOT:{ "version": "0.2.0", "configurations": [{ "type": "node", "request": "launch", "name": "Debug Watch", "cwd": "${workspaceRoot}", "runtimeExecutable": "npm", "runtimeArgs": ["run-script", "debug-watch"] }] }
Добавьте точку останова, которая приостанавливает обработку HTTP -запроса в файле
index.js
, и начните запускать и отлаживать с помощью конфигурацииDebug Watch
, добавленной ранее. Приложение теперь работает и прослушивает HTTP -запросы на порту9000
.Рисунок 3. Приложение работает и прослушивает HTTP -запросы на порту 9000
.
- В новом окне откройте папку
Запустите приложение
ngrok
в вашей местной среде:ngrok http --domain=NGROK_STATIC_DOMAIN 9000
Замените
NGROK_STATIC_DOMAIN
статическим доменом в вашей учетной записиngrok
. Все запросы теперь перенаправляются на вашу местную среду и порт, используемый приложением.Рисунок 4. Терминал с ngrok
Server работает и перенаправляется.Веб -интерфейс также запускается на вашем локальном хосте приложением
ngrok
. Вы можете отслеживать все действия, открыв его в браузере.Рисунок 5. Веб -интерфейс, размещенный в приложении ngrok
, не показывающий HTTP -запросов.Проверьте дополнение Google Workspace, предварительно просмотрев URL-адрес случая в новом документе Google с учетной записью Tester:
Создайте Google Doc.
Введите следующую ссылку и нажмите
enter
:https://example.com/support/case/?name=Name1&description=Description1&priority=P1
Щелкните ссылку.
В
Visual Studio Code
в вашей локальной среде вы можете видеть, что выполнение приостановлено в установленной точке останова.Рисунок 6. Выполнение приостановлено в установленной точке останова. Когда вы возобновите выполнение от Debugger
Visual Studio Code
прежде чем Google Workspace AddOns Out Out, надстройка Google Workspace отображает предварительный просмотр ссылки в Google Doc из кэша.Вы можете проверить HTTP -запрос и журналы ответов из веб -интерфейса, размещенного приложением
ngrok
в вашей локальной среде.Рисунок 7. HTTP -запрос из веб -интерфейса, размещенного приложением ngrok
.Чтобы изменить поведение приложения, замените
Case
Case:
в строке51
index.js
. Когда вы сохраняете файл,nodemon
автоматически перезагружает приложение с помощью обновленного исходного кода, аVisual Studio Code
остается в режиме отладки.Рисунок 8. Приложение запускается и прослушивает HTTP -запросы в порту 9000
с загруженным изменением кода.На этот раз, вместо того, чтобы щелкнуть по ссылке и ждать несколько секунд в новом документе Google, вы можете выбрать последний HTTP -запрос, зарегистрированный в веб -интерфейсе, размещенном приложением
ngrok
в вашей локальной среде и нажатьReplay
. То же самое, что и в прошлый раз, ваше надстройка Google Workspace не отвечает, потому что он активно отлаживается .Когда вы возобновите выполнение от отладчика
Visual Studio Code
, вы можете увидеть из веб -интерфейса, размещенного приложениемngrok
в вашей локальной среде, приложение генерирует ответ с обновленной версией предварительной карты.
Питон
Из IDE
Visual Studio Code
, установленной в вашей локальной среде, сделайте следующее:- В новом окне откройте папку
add-ons-samples/python/3p-resources/create_link_preview
. Создайте виртуальную среду для Python
env
и активируйте ее:virtualenv env
source env/bin/activate
Установите все зависимости проекта, используя
pip
в виртуальной среде:pip install -r requirements.txt
Создайте файл
.vscode/launch.json
в каталоге ROOT и настройте запуск с именемDebug Watch
, что запускает приложение из модульныхfunctions-framework
в порту9000
в режиме отладки в Env Virtual Environmentenv
:{ "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" ] }] }
Добавьте точку останова, которая приостанавливает обработку HTTP -запроса в файле
main.py
, и начните запускать и отлаживать с помощью конфигурацииDebug Watch
, добавленной ранее. Приложение теперь работает и прослушивает HTTP -запросы на порту9000
.Рисунок 3. Приложение работает и прослушивает HTTP -запросы на порту 9000
.
- В новом окне откройте папку
Запустите приложение
ngrok
в вашей местной среде:ngrok http --domain=NGROK_STATIC_DOMAIN 9000
Замените
NGROK_STATIC_DOMAIN
статическим доменом в вашей учетной записиngrok
. Все запросы теперь перенаправляются на вашу местную среду и порт, используемый приложением.Рисунок 4. Терминал с ngrok
Server работает и перенаправляется.Веб -интерфейс также запускается на вашем локальном хосте приложением
ngrok
, вы можете отслеживать все действия, открыв его в браузере.Рисунок 5. Веб -интерфейс, размещенный в приложении ngrok
, не показывающий HTTP -запросов.Проверьте дополнение Google Workspace, предварительно просмотрев URL-адрес случая в новом документе Google с учетной записью Tester:
Создайте Google Doc.
Введите следующую ссылку и нажмите
enter
:https://example.com/support/case/?name=Name1&description=Description1&priority=P1
Щелкните ссылку.
В
Visual Studio Code
в вашей локальной среде вы можете видеть, что выполнение приостановлено в установленной точке останова.Рисунок 6. Выполнение приостановлено в установленной точке останова. Когда вы возобновите выполнение от Debugger
Visual Studio Code
прежде чем Google Workspace AddOns Out Out, надстройка Google Workspace отображает предварительный просмотр ссылки в Google Doc из кэша.Вы можете проверить HTTP -запрос и журналы ответов из веб -интерфейса, размещенного приложением
ngrok
в вашей локальной среде.Рисунок 7. HTTP -запрос из веб -интерфейса, размещенного приложением ngrok
.Чтобы изменить поведение приложения, замените
Case
Case:
в строке56
файлаmain.py
Когда вы сохраняете файл,Visual Studio Code
автоматически перезагружает приложение с обновленным исходным кодом и остается в режиме отладки.Рисунок 8. Приложение запускается и прослушивает HTTP -запросы в порту 9000
с загруженным изменением кода.На этот раз, вместо того, чтобы щелкнуть по ссылке и ждать несколько секунд в новом документе Google, вы можете выбрать последний HTTP -запрос, зарегистрированный в веб -интерфейсе, размещенном приложением
ngrok
в вашей локальной среде и нажатьReplay
. То же самое, что и в прошлый раз, ваше надстройка Google Workspace не отвечает, потому что он активно отлаживается .Когда вы возобновите выполнение от отладчика
Visual Studio Code
, вы можете увидеть из веб -интерфейса, размещенного приложениемngrok
в вашей локальной среде, приложение генерирует ответ с обновленной версией предварительной карты.
Ява
Из IDE
Visual Studio Code
, установленной в вашей локальной среде, сделайте следующее:- В новом окне откройте папку
add-ons-samples/java/3p-resources
. Настройте проект Maven для запуска приложения
CreateLinkPreview
на порте9000
локально, добавив функции Cloud Function Framework Fuldfunction-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> ...
Теперь вы можете запустить его локально в режиме отладки:
mvnDebug function:run Preparing to execute Maven in debug mode Listening for transport dt_socket at address: 8000
Создайте файл
.vscode/launch.json
в каталоге ROOT и настройте запуск с именемRemote Debug Watch
, который прикрепляется к приложению, ранее запущенному на порте8000
:{ "version": "0.2.0", "configurations": [{ "type": "java", "request": "attach", "name": "Remote Debug Watch", "projectName": "http-function", "hostName": "localhost", "port": 8000 }] }
Добавьте точку останова, которая останавливает обработку HTTP -запроса в файле
CreateLinkPreview.java
, и начните прикреплять и отлаживать с помощью конфигурацииRemote Debug Watch
добавленной ранее. Приложение теперь работает и прослушивает HTTP -запросы на порту9000
.Рисунок 3. Приложение работает и прослушивает HTTP -запросы на порту 9000
.
- В новом окне откройте папку
Запустите приложение
ngrok
в вашей местной среде:ngrok http --domain=NGROK_STATIC_DOMAIN 9000
Замените
NGROK_STATIC_DOMAIN
статическим доменом в вашей учетной записиngrok
. Все запросы теперь перенаправляются на вашу местную среду и порт, используемый приложением.Рисунок 4. Терминал с ngrok
Server работает и перенаправляется.Веб -интерфейс также запускается на вашем локальном хосте приложением
ngrok
, вы можете отслеживать все действия, открыв его в браузере.Рисунок 5. Веб -интерфейс, размещенный в приложении ngrok
, не показывающий HTTP -запросов.Проверьте дополнение Google Workspace, предварительно просмотрев URL-адрес случая в новом документе Google с учетной записью Tester:
Создайте Google Doc.
Введите следующую ссылку и нажмите
enter
:https://example.com/support/case/?name=Name1&description=Description1&priority=P1
Щелкните ссылку.
В
Visual Studio Code
в вашей локальной среде вы можете видеть, что выполнение приостановлено в установленной точке останова.Рисунок 6. Выполнение приостановлено в установленной точке останова. Когда вы возобновите выполнение от Debugger
Visual Studio Code
прежде чем Google Workspace AddOns Out Out, надстройка Google Workspace отображает предварительный просмотр ссылки в Google Doc из кэша.Вы можете проверить HTTP -запрос и журналы ответов из веб -интерфейса, размещенного приложением
ngrok
в вашей локальной среде.Рисунок 7. HTTP -запрос из веб -интерфейса, размещенного приложением ngrok
.Чтобы изменить поведение приложения, замените
Case
Case:
в строке78
файлаCreateLinkPreview.java
, перезапустите процессmvnDebug
и перезаписываяRemote Debug Watch
и перезапустить отладку .На этот раз, вместо того, чтобы щелкнуть по ссылке и ждать несколько секунд в новом документе Google, вы можете выбрать последний HTTP -запрос, зарегистрированный в веб -интерфейсе, размещенном приложением
ngrok
в вашей локальной среде и нажатьReplay
. То же самое, что и в прошлый раз, ваше надстройка Google Workspace не отвечает, потому что он активно отлаживается .Когда вы возобновите выполнение от отладчика
Visual Studio Code
, вы можете увидеть из веб -интерфейса, размещенного приложениемngrok
в вашей локальной среде, приложение генерирует ответ с обновленной версией предварительной карты.
Отладка от удаленной среды
В этом разделе вы взаимодействуете с надстройкой Google Workspace, которое выполняется в удаленной среде.
Предварительные условия
- Ваша надстройка Google Workspace развернуто и установлено.
- Ваше приложение работает в вашей удаленной среде с отладчиком, включенным в данном порту, и оно упоминается как
REMOTE_DEBUG_PORT
в инструкциях этого руководства. - Ваша местная среда
ssh
в вашей удаленной среде. - IDE создан в вашей местной среде, которая может отлаживать. Мы используем IDE
Visual Studio Code
и его функции отладки по умолчанию в этом руководстве для иллюстрации.
Подключите свои локальные и удаленные среды
В вашей местной среде, откуда вы хотите инициировать подключение к клиенту отладки, настройте туннель SSH:
ssh -L LOCAL_DEBUG_PORT:localhost:REMOTE_DEBUG_PORT REMOTE_USERNAME@REMOTE_ADDRESS
Замените следующее:
-
LOCAL_DEBUG_PORT
: порт отладки в вашей локальной среде. -
REMOTE_USERNAME
: имя пользователя в вашей отдаленной среде. -
REMOTE_ADDRESS
: адрес вашей удаленной среды. -
REMOTE_DEBUG_PORT
: порт отладки в вашей удаленной среде.
Порт отладки в вашей местной среде теперь связан с портом отладки в вашей удаленной среде.
Начните отладку
Из IDE Visual Studio Code
, установленной в вашей локальной среде, сделайте следующее:
- В новом окне откройте исходный код вашего приложения.
Создайте файл
.vscode/launch.json
в каталоге ROOT и настройте запуск с именем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 }] }
Питон
{ "version": "0.2.0", "configurations": [{ "type": "python", "request": "attach", "name": "Debug Remote", "connect": { "host": "127.0.0.1", "port": LOCAL_DEBUG_PORT } }] }
Ява
{ "version": "0.2.0", "configurations": [{ "type": "java", "request": "attach", "name": "Debug Remote", "hostName": "127.0.0.1", "port": LOCAL_DEBUG_PORT }] }
Замените
LOCAL_DEBUG_PORT
на порт отладки в вашей локальной среде.Добавьте точку останова в исходное код вашего приложения, которое приостанавливает обработку HTTP -запросов, и начните запуск и отладку с помощью
Debug Remote
.Взаимодействуйте с установленным дополнением Google Workspace. Ваше надстройка Google Workspace не отвечает, потому что он активно отлаживается в IDE
Visual Studio Code
.
Связанные темы
- Узнайте, как запросить журналы ошибок .
Как разработчик Add-Ad Add-On Google, вам может потребоваться отладить код для проверки изменений или устранения устранения сложных проблем. Отладка надстройки Google Workspace может быть выполнена по-разному в зависимости от архитектуры вашего приложения, того, что делает приложение, как развертывается ваше приложение, и ваши предпочтения.
На этой странице объясняется, как отладить http-google arderpace с использованием ngrok
, которая представляет собой единую платформу Ingress, которую вы можете использовать для тестирования местных сред. В этом руководстве вы тестируете изменения кода в локальной среде и устранения неполадок в удаленной среде.
Отладка в местной среде развития
В этом разделе вы взаимодействуете с надстройкой Google Workspace, которое выполняется в вашей локальной среде.
Предварительные условия
Node.js
- Последние версии
node
иnpm
, установленные в вашей локальной среде. Последняя версия
nodemon
, установленная в вашей локальной среде. Он используется для целей автоматической нагрузки:npm install -g nodemon
Проект Google Cloud . Вы можете следовать предварительным условиям разделов и настроить среду руководства QuickStart .
Код надстройки Google Workspace отладки в вашей локальной среде. Мы используем функции ссылки предварительного просмотра из примера
3p-resources
из репозитория Githubgoogleworkspace/add-ons-samples
в этом руководстве для целей иллюстрации.IDE, созданная в вашей местной среде, которая может отлаживать. Мы используем IDE
Visual Studio Code
и его функции отладки по умолчанию в этом руководстве для иллюстрации.Учетная запись
ngrok
.Последняя версия
gcloud
, установленную и инициализированную в вашей местной среде.
Питон
- Последняя версия
python3
, установленная в вашей местной среде. - Последняя версия
pip
иvirtualenv
установлена в вашей местной среде. Они используются для управления пакетами Python и виртуальными средами соответственно. - Проект Google Cloud . Вы можете следовать предварительным условиям разделов и настроить среду руководства QuickStart .
- Код надстройки Google Workspace отладки в вашей локальной среде. Мы используем функции ссылки предварительного просмотра из примера
3p-resources
из репозитория Githubgoogleworkspace/add-ons-samples
в этом руководстве для целей иллюстрации. - IDE, созданная в вашей местной среде, которая может отлаживать. Мы используем IDE
Visual Studio Code
и его функции отладки по умолчанию в этом руководстве для иллюстрации. - Учетная запись
ngrok
. - Последняя версия
gcloud
, установленную и инициализированную в вашей местной среде.
Ява
- Последняя стабильная версия
Java SE 11's JDK
установленной в вашей местной среде. - Последняя версия
Apache Maven
установлена в вашей местной среде. Он используется для управления Java Projects. - Проект Google Cloud . Вы можете следовать предварительным условиям разделов и настроить среду руководства QuickStart .
- Код надстройки Google Workspace отладки в вашей локальной среде. Мы используем функции ссылки предварительного просмотра из примера
3p-resources
из репозитория Githubgoogleworkspace/add-ons-samples
в этом руководстве для целей иллюстрации. - IDE, созданная в вашей местной среде, которая может отлаживать. Мы используем IDE
Visual Studio Code
и его функции отладки по умолчанию в этом руководстве для иллюстрации. - Учетная запись
ngrok
. - Последняя версия
gcloud
, установленную и инициализированную в вашей местной среде.
Сделайте услуги Localhost доступной публично
Вам необходимо подключить свою локальную среду к Интернету, чтобы дополнение Google Workspace могла получить к нему доступ. Приложение ngrok
используется для перенаправления HTTP -запросов, сделанных на публичный URL, в вашу местную среду.
- В браузере в вашей местной среде войдите в свою учетную запись
ngrok
. - Установите приложение и настройте свой
authtoken
в местной среде. - Создайте статический домен в своей учетной записи
ngrok
, в инструкциях этого руководства ссылается какNGROK_STATIC_DOMAIN
.
Создать и установить дополнительный развертывание
Настройте надстройку Google Workspace, чтобы отправить все его HTTP-запросы в свой статический домен. Ваш файл развертывания должен выглядеть следующим образом:
{ "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" } ] }, "httpOptions": { "granularOauthPermissionSupport": "OPT_IN" } } }
Замените
NGROK_STATIC_DOMAIN
статическим доменом в вашей учетной записиngrok
.Установите Google Cloud Project для использования:
gcloud config set project PROJECT_ID
Получите новые учетные данные пользователя для использования для приложений по умолчанию учетных данных :
gcloud auth application-default login
Замените
PROJECT_ID
на идентификатор проекта для Google Cloud Project приложения.Создайте развертывание:
gcloud workspace-add-ons deployments create manageSupportCases \ --deployment-file=DEPLOYMENT_FILE_PATH
Замените
DEPLOYMENT_FILE_PATH
путем вашего файла развертывания.Установите развертывание:
gcloud workspace-add-ons deployments install manageSupportCases
Рисунок 2. Дополнение Google Workspace отправляет все свои HTTP-запросы в статический домен. Общественная служба Ngrok` действует как мост между надстройкой Google Workspace и кодом приложения, который выполняется локально.
Проверьте дополнение Google Workspace
Вы можете локально развернуть, тестировать, отлаживать и автоматическую загрузку в Google Workspace.
Node.js
Из IDE
Visual Studio Code
, установленной в вашей локальной среде, сделайте следующее:- В новом окне откройте папку
add-ons-samples/node/3p-resources
. Настройте приложение для локального запуска и отладки автоматической нагрузки, добавив одну зависимость и два сценария в файле
package.json
:{ ... "dependencies": { ... "@google-cloud/functions-framework": "^3.3.0" }, "scripts": { ... "start": "npx functions-framework --target=createLinkPreview --port=9000", "debug-watch": "nodemon --watch ./ --exec npm start" } ... }
В корневом каталоге установите приложение:
npm install
Создайте и настраивайте запуск с именем
Debug Watch
, что запускает сценарийdebug-watch
, создавая файл.vscode/launch.json
в каталоге ROOT:{ "version": "0.2.0", "configurations": [{ "type": "node", "request": "launch", "name": "Debug Watch", "cwd": "${workspaceRoot}", "runtimeExecutable": "npm", "runtimeArgs": ["run-script", "debug-watch"] }] }
Добавьте точку останова, которая приостанавливает обработку HTTP -запроса в файле
index.js
, и начните запускать и отлаживать с помощью конфигурацииDebug Watch
, добавленной ранее. Приложение теперь работает и прослушивает HTTP -запросы на порту9000
.Рисунок 3. Приложение работает и прослушивает HTTP -запросы на порту 9000
.
- В новом окне откройте папку
Запустите приложение
ngrok
в вашей местной среде:ngrok http --domain=NGROK_STATIC_DOMAIN 9000
Замените
NGROK_STATIC_DOMAIN
статическим доменом в вашей учетной записиngrok
. Все запросы теперь перенаправляются на вашу местную среду и порт, используемый приложением.Рисунок 4. Терминал с ngrok
Server работает и перенаправляется.Веб -интерфейс также запускается на вашем локальном хосте приложением
ngrok
. Вы можете отслеживать все действия, открыв его в браузере.Рисунок 5. Веб -интерфейс, размещенный в приложении ngrok
, не показывающий HTTP -запросов.Проверьте дополнение Google Workspace, предварительно просмотрев URL-адрес случая в новом документе Google с учетной записью Tester:
Создайте Google Doc.
Введите следующую ссылку и нажмите
enter
:https://example.com/support/case/?name=Name1&description=Description1&priority=P1
Щелкните ссылку.
В
Visual Studio Code
в вашей локальной среде вы можете видеть, что выполнение приостановлено в установленной точке останова.Рисунок 6. Выполнение приостановлено в установленной точке останова. Когда вы возобновите выполнение от Debugger
Visual Studio Code
прежде чем Google Workspace AddOns Out Out, надстройка Google Workspace отображает предварительный просмотр ссылки в Google Doc из кэша.Вы можете проверить HTTP -запрос и журналы ответов из веб -интерфейса, размещенного приложением
ngrok
в вашей локальной среде.Рисунок 7. HTTP -запрос из веб -интерфейса, размещенного приложением ngrok
.Чтобы изменить поведение приложения, замените
Case
Case:
в строке51
index.js
. Когда вы сохраняете файл,nodemon
автоматически перезагружает приложение с помощью обновленного исходного кода, аVisual Studio Code
остается в режиме отладки.Рисунок 8. Приложение запускается и прослушивает HTTP -запросы в порту 9000
с загруженным изменением кода.На этот раз, вместо того, чтобы щелкнуть по ссылке и ждать несколько секунд в новом документе Google, вы можете выбрать последний HTTP -запрос, зарегистрированный в веб -интерфейсе, размещенном приложением
ngrok
в вашей локальной среде и нажатьReplay
. То же самое, что и в прошлый раз, ваше надстройка Google Workspace не отвечает, потому что он активно отлаживается .Когда вы возобновите выполнение от отладчика
Visual Studio Code
, вы можете увидеть из веб -интерфейса, размещенного приложениемngrok
в вашей локальной среде, приложение генерирует ответ с обновленной версией предварительной карты.
Питон
Из IDE
Visual Studio Code
, установленной в вашей локальной среде, сделайте следующее:- В новом окне откройте папку
add-ons-samples/python/3p-resources/create_link_preview
. Создайте виртуальную среду для Python
env
и активируйте ее:virtualenv env
source env/bin/activate
Установите все зависимости проекта, используя
pip
в виртуальной среде:pip install -r requirements.txt
Создайте файл
.vscode/launch.json
в каталоге ROOT и настройте запуск с именемDebug Watch
, что запускает приложение из модульныхfunctions-framework
в порту9000
в режиме отладки в Env Virtual Environmentenv
:{ "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" ] }] }
Добавьте точку останова, которая приостанавливает обработку HTTP -запроса в файле
main.py
, и начните запускать и отлаживать с помощью конфигурацииDebug Watch
, добавленной ранее. Приложение теперь работает и прослушивает HTTP -запросы на порту9000
.Рисунок 3. Приложение работает и прослушивает HTTP -запросы на порту 9000
.
- В новом окне откройте папку
Запустите приложение
ngrok
в вашей местной среде:ngrok http --domain=NGROK_STATIC_DOMAIN 9000
Замените
NGROK_STATIC_DOMAIN
статическим доменом в вашей учетной записиngrok
. Все запросы теперь перенаправляются на вашу местную среду и порт, используемый приложением.Рисунок 4. Терминал с ngrok
Server работает и перенаправляется.Веб -интерфейс также запускается на вашем локальном хосте приложением
ngrok
, вы можете отслеживать все действия, открыв его в браузере.Рисунок 5. Веб -интерфейс, размещенный в приложении ngrok
, не показывающий HTTP -запросов.Проверьте дополнение Google Workspace, предварительно просмотрев URL-адрес случая в новом документе Google с учетной записью Tester:
Создайте Google Doc.
Введите следующую ссылку и нажмите
enter
:https://example.com/support/case/?name=Name1&description=Description1&priority=P1
Щелкните ссылку.
В
Visual Studio Code
в вашей локальной среде вы можете видеть, что выполнение приостановлено в установленной точке останова.Рисунок 6. Выполнение приостановлено в установленной точке останова. Когда вы возобновите выполнение от Debugger
Visual Studio Code
прежде чем Google Workspace AddOns Out Out, надстройка Google Workspace отображает предварительный просмотр ссылки в Google Doc из кэша.Вы можете проверить HTTP -запрос и журналы ответов из веб -интерфейса, размещенного приложением
ngrok
в вашей локальной среде.Figure 7. The HTTP request from the web interface hosted by the ngrok
application.To change the application behavior, replace
Case
withCase:
on line56
of themain.py
file. When you save the file,Visual Studio Code
automatically reloads the application with the updated source code and remains in debug mode.Figure 8. The application is running and listening for HTTP requests on port 9000
with the code change loaded.This time, instead of clicking the link and waiting for a few seconds in a new Google Doc, you can select the last HTTP request logged on the web interface hosted by the
ngrok
application in your local environment and clickReplay
. Same as last time, your Google Workspace add-on doesn't reply because it's being actively debugged .When you resume the execution from the
Visual Studio Code
debugger, you can see from the web interface hosted by thengrok
application in your local environment that the application generates a response with the updated version of the preview card.
Ява
From the
Visual Studio Code
IDE installed in your local environment, do the following:- In a new window, open the folder
add-ons-samples/java/3p-resources
. Configure the Maven project to run the application
CreateLinkPreview
on port9000
locally by adding the Cloud Functions Framework build pluginfunction-maven-plugin
to thepom.xml
file:... <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> ...
You can now launch it locally in debug mode:
mvnDebug function:run Preparing to execute Maven in debug mode Listening for transport dt_socket at address: 8000
Create the file
.vscode/launch.json
in the root directory and configure a launch namedRemote Debug Watch
that attaches to the application previously launched on port8000
:{ "version": "0.2.0", "configurations": [{ "type": "java", "request": "attach", "name": "Remote Debug Watch", "projectName": "http-function", "hostName": "localhost", "port": 8000 }] }
Add a breakpoint that pauses the HTTP request processing in the
CreateLinkPreview.java
file, and start attaching and debugging with theRemote Debug Watch
configuration added before. The application is now running and listening for HTTP requests on port9000
.Figure 3. The application is running and listening for HTTP requests on port 9000
.
- In a new window, open the folder
Launch the
ngrok
application in your local environment:ngrok http --domain=NGROK_STATIC_DOMAIN 9000
Replace
NGROK_STATIC_DOMAIN
with the static domain in yourngrok
account. All requests are now redirected to your local environment and the port used by the application.Figure 4. The terminal with ngrok
server running and redirecting.A web interface is also started on your localhost by the
ngrok
application, you can monitor all activities by opening it in a browser.Figure 5. The web interface hosted by the ngrok
application showing no HTTP requests.Test your Google Workspace add-on by previewing a case URL in a new Google Doc with a tester account:
Create a Google Doc.
Type the following link and press
enter
:https://example.com/support/case/?name=Name1&description=Description1&priority=P1
Щелкните ссылку.
In the
Visual Studio Code
in your local environment, you can see that the execution is paused at the breakpoint that was set.Figure 6. The execution is paused at the breakpoint that was set. When you resume the execution from the
Visual Studio Code
debugger before Google Workspace add-ons times out, the Google Workspace add-on displays the link preview in the Google Doc from the cache.You can check the HTTP request and response logs from the web interface hosted by the
ngrok
application in your local environment.Figure 7. The HTTP request from the web interface hosted by the ngrok
application.To change the application behavior, replace
Case
withCase:
on line78
of theCreateLinkPreview.java
file, restart themvnDebug
process, and relaunchRemote Debug Watch
to reattach and restart debugging .This time, instead of clicking the link and waiting for a few seconds in a new Google Doc, you can select the last HTTP request logged on the web interface hosted by the
ngrok
application in your local environment and clickReplay
. Same as last time, your Google Workspace add-on doesn't reply because it's being actively debugged .When you resume the execution from the
Visual Studio Code
debugger, you can see from the web interface hosted by thengrok
application in your local environment that the application generates a response with the updated version of the preview card.
Debug from remote environment
In this section, you interact with your Google Workspace add-on that executes on a remote environment.
Предварительные условия
- Your Google Workspace add-on is deployed and installed.
- Your application is running in your remote environment with the debugger enabled on a given port, and it's referenced as
REMOTE_DEBUG_PORT
in the instructions of this guide. - Your local environment can
ssh
to your remote environment. - An IDE is set up in your local environment that can debug. We use the
Visual Studio Code
IDE and its default debugging features in this guide for illustration purposes.
Connect your local and remote environments
In your local environment from where you want to initiate a debug client connection, set up an SSH tunnel:
ssh -L LOCAL_DEBUG_PORT:localhost:REMOTE_DEBUG_PORT REMOTE_USERNAME@REMOTE_ADDRESS
Replace the following:
-
LOCAL_DEBUG_PORT
: The debug port in your local environment. -
REMOTE_USERNAME
: The username in your remote environment. -
REMOTE_ADDRESS
: The address of your remote environment. -
REMOTE_DEBUG_PORT
: The debug port in your remote environment.
The debug port in your local environment is now linked to the debug port in your remote environment.
Начните отладку
From the Visual Studio Code
IDE installed in your local environment, do the following:
- In a new window, open the source code of your app.
Create the file
.vscode/launch.json
in the root directory and configure a launch namedDebug Remote
that attaches to the debug port in your local environment:Node.js
{ "version": "0.2.0", "configurations": [{ "type": "node", "request": "attach", "name": "Debug Remote", "address": "127.0.0.1", "port": LOCAL_DEBUG_PORT }] }
Питон
{ "version": "0.2.0", "configurations": [{ "type": "python", "request": "attach", "name": "Debug Remote", "connect": { "host": "127.0.0.1", "port": LOCAL_DEBUG_PORT } }] }
Ява
{ "version": "0.2.0", "configurations": [{ "type": "java", "request": "attach", "name": "Debug Remote", "hostName": "127.0.0.1", "port": LOCAL_DEBUG_PORT }] }
Replace
LOCAL_DEBUG_PORT
with the debug port in your local environment.Add a breakpoint in the source code of your app that pauses the HTTP request processing, and start running and debugging with the
Debug Remote
configuration added before.Interact with your installed Google Workspace add-on. Your Google Workspace add-on doesn't reply because it's being actively debugged in the
Visual Studio Code
IDE.
Связанные темы
- Learn how to query error logs .