Как разработчику приложений Google Chat вам может потребоваться отладка кода для проверки изменений или устранения сложных проблем. Отладку приложений чата можно выполнять разными способами в зависимости от архитектуры вашего приложения, его функций, способа его развертывания и ваших предпочтений.
На этой странице объясняется, как отладить приложение HTTP Chat с помощью ngrok — единой входящей платформы, которую можно использовать для тестирования локальных сред разработки. В этом руководстве вы тестируете изменения кода в локальной среде и устраняете проблемы в удаленной среде.
Отладка из локальной среды разработки
В этом разделе вы взаимодействуете с приложением чата, которое выполняется в вашей локальной среде.
Рисунок 1. Отладка в локальной среде разработки.
Мастерская
Node.js
Питон
Ява
Предварительные условия
Node.js
- Последние версии
node
иnpm
установленные в вашей локальной среде. Последняя версия
nodemon
, установленная в вашей локальной среде, используется для автоматической перезагрузки:npm install -g nodemon
Приложение HTTP Chat, настроенное для обмена сообщениями. Вы можете следовать разделам «Предварительные требования» , «Настройка среды » и «Публикация приложения в Google Chat» краткого руководства . Единственная разница заключается в том, что вам необходимо установить имя приложения
Debug App
и URL-адрес конечной точки HTTP , напримерhttp://example.com
.IDE, установленная в вашей локальной среде и поддерживающая отладку. В этом руководстве в целях иллюстрации мы используем
Visual Studio Code
IDE и ее функции отладки по умолчанию.Git
установлен в вашей локальной среде.Аккаунт
ngrok
.
Питон
- Последняя версия
python3
установленная в вашей локальной среде. - В вашей локальной среде установлены последние версии
pip
иvirtualenv
. Они используются для управления пакетами Python и виртуальными средами соответственно. - Приложение HTTP Chat, настроенное для обмена сообщениями. Вы можете следовать разделам «Предварительные требования» , «Настройка среды » и «Публикация приложения в Google Chat» краткого руководства . Единственная разница заключается в том, что вам необходимо установить имя приложения
Debug App
и URL-адрес конечной точки HTTP , напримерhttp://example.com
. - IDE, установленная в вашей локальной среде и поддерживающая отладку. В этом руководстве в целях иллюстрации мы используем
Visual Studio Code
IDE и ее функции отладки по умолчанию. -
Git
установлен в вашей локальной среде. - Аккаунт
ngrok
. - Последняя версия
gcloud
установлена и инициализирована в вашей локальной среде.
Ява
- Последняя стабильная версия
Java SE 11's JDK
установленная в вашей локальной среде. - Последняя версия
Apache Maven
, установленная в вашей локальной среде, используется для управления проектами Java. - Приложение HTTP Chat, настроенное для обмена сообщениями. Вы можете следовать разделам «Предварительные требования» , «Настройка среды » и «Публикация приложения в Google Chat» краткого руководства . Единственная разница заключается в том, что вам необходимо установить имя приложения
Debug App
и URL-адрес конечной точки HTTP , напримерhttp://example.com
. - IDE, установленная в вашей локальной среде и поддерживающая отладку. В этом руководстве в целях иллюстрации мы используем
Visual Studio Code
IDE и ее функции отладки по умолчанию. -
Git
установлен в вашей локальной среде. - Аккаунт
ngrok
. - Последняя версия
gcloud
установлена и инициализирована в вашей локальной среде.
Сделайте службу localhost общедоступной.
Вам необходимо подключить локальную среду к Интернету, чтобы приложение Chat могло получить к ней доступ. Приложение ngrok
используется для перенаправления HTTP-запросов, сделанных на общедоступный URL-адрес, в вашу локальную среду.
- В браузере в вашей локальной среде войдите в свою учетную запись
ngrok
. - Установите приложение и настройте токен
authtoken
в своей локальной среде. - Создайте статический домен в своей учетной записи
ngrok
, в инструкциях этого руководства он обозначается какNGROK_STATIC_DOMAIN
.
Настройте приложение чата
Настройте приложение Chat для отправки всех HTTP-запросов в ваш статический домен.
В консоли Google Cloud откройте страницу Google Chat API:
Откройте вкладку Конфигурация .
Перейдите в раздел «Интерактивные функции» > «Настройки подключения» и установите значение URL-адреса конечной точки HTTP текстового поля:
https://NGROK_STATIC_DOMAIN
Замените
NGROK_STATIC_DOMAIN
на статический домен в вашей учетной записиngrok
.Нажмите Сохранить .
Рисунок 2. Приложение Chat отправляет все свои HTTP-запросы в статический домен. Публичная служба ngrok
действует как мост между приложением Chat и кодом приложения, который выполняется локально.
Протестируйте приложение Чат
Вы можете локально развернуть, настроить, протестировать, отладить и автоматически перезагрузить приложение Chat.
Node.js
Клонируйте репозиторий
googleworkspace/google-chat-samples
из GitHub в вашу локальную среду. Он содержит код приложения для выполнения:git clone https://github.com/googleworkspace/google-chat-samples.git
В среде
Visual Studio Code
IDE, установленной в вашей локальной среде, выполните следующие действия:- В новом окне откройте папку
google-chat-samples/node/basic-app
. Настройте приложение для автоматической перезагрузки отладки, добавив два скрипта в файл
package.json
:{ ... "scripts": { ... "debug": "node --inspect index.js", "debug-watch": "nodemon --watch ./ --exec npm run debug" } ... }
Из корневого каталога установите приложение:
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-запросов.Проверьте свое приложение Chat, отправив ему прямое сообщение:
Откройте Google Чат.
Нажмите
новый чат» .В диалоговом окне введите название вашего приложения чата.
В результатах поиска найдите свое приложение Chat, нажмите «Добавить» > «Чат» .
В области прямых сообщений введите
Hello
и нажмитеenter
. Ваше приложение чата не отвечает, поскольку оно активно отлаживается.
В
Visual Studio Code
в вашей локальной среде вы можете видеть, что выполнение приостанавливается в установленной точке останова.Рисунок 6. Выполнение приостанавливается в установленной точке останова.
Когда вы возобновляете выполнение
Visual Studio Code
из отладчика до истечения времени ожидания Google Chat, приложение Chat отвечает наYour message : Hello
.Вы можете проверить журналы HTTP-запросов и ответов из веб-интерфейса, размещенного приложением
ngrok
в вашей локальной среде.Рисунок 7. HTTP-запрос из веб-интерфейса приложения
ngrok
.Чтобы изменить поведение приложения, замените
Your message
наHere was your message
встроенное в строку35
файлаindex.json
. Когда вы сохраняете файл,nodemon
автоматически перезагружает приложение с обновленным исходным кодом, аVisual Studio Code
остается в режиме отладки.Рисунок 8. Приложение запущено и прослушивает HTTP-запросы на порту
9000
с загруженным изменением кода.На этот раз вместо отправки второго сообщения
Hello
в пространстве вы можете выбрать последний HTTP-запрос, зарегистрированный в веб-интерфейсе, размещенном приложениемngrok
в вашей локальной среде, и нажатьReplay
. Как и в прошлый раз, ваше приложение чата не отвечает, поскольку оно активно отлаживается.Когда вы возобновляете выполнение из отладчика
Visual Studio Code
вы можете видеть из веб-интерфейса, размещенного приложениемngrok
в вашей локальной среде, что приложение генерирует ответ с обновленной версией сообщения.Here was your message : Hello
.
Питон
Получите новые учетные данные пользователя для использования в качестве учетных данных приложения по умолчанию :
gcloud config set project PROJECT_ID
gcloud auth application-default login
Замените
PROJECT_ID
идентификатором облачного проекта приложения.Клонируйте репозиторий
googleworkspace/google-chat-samples
из GitHub в свою локальную среду. Он содержит код приложения:git clone https://github.com/googleworkspace/google-chat-samples.git
В среде
Visual Studio Code
IDE, установленной в вашей локальной среде, выполните следующие действия:- В новом окне откройте папку
google-chat-samples/python/avatar-app
. Создайте новую виртуальную среду для
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", "avatar_app", "--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-запросов.Проверьте свое приложение Chat, отправив ему прямое сообщение:
Откройте Google Чат.
Нажмите
новый чат» .В диалоговом окне введите название вашего приложения чата.
В результатах поиска найдите свое приложение Chat, нажмите «Добавить» > «Чат» .
В области прямого сообщения введите
Hey!
и нажмитеenter
. Ваше приложение чата не отвечает, поскольку оно активно отлаживается.
В
Visual Studio Code
в вашей локальной среде вы можете видеть, что выполнение приостанавливается в установленной точке останова.Рисунок 6. Выполнение приостанавливается в установленной точке останова.
Когда вы возобновляете выполнение
Visual Studio Code
из отладчика до истечения времени ожидания Google Chat, приложение Chat отвечает вашим именем и изображением аватара в сообщении.Вы можете проверить журналы HTTP-запросов и ответов из веб-интерфейса, размещенного приложением
ngrok
в вашей локальной среде.Рисунок 7. HTTP-запрос из веб-интерфейса приложения
ngrok
.Чтобы изменить поведение приложения, замените
Hello
наHey
в строке51
файлаmain.py
Когда вы сохраняете файл,Visual Studio Code
автоматически перезагружает приложение с обновленным исходным кодом и остается в режиме отладки.Рисунок 8. Приложение запущено и прослушивает HTTP-запросы на порту
9000
с загруженным изменением кода.На этот раз вместо отправки второго сообщения
Hey!
в этом пространстве вы можете выбрать последний HTTP-запрос, зарегистрированный в веб-интерфейсе, размещенном приложениемngrok
в вашей локальной среде, и нажатьReplay
. Как и в прошлый раз, ваше приложение чата не отвечает, поскольку оно активно отлаживается.Когда вы возобновляете выполнение из отладчика
Visual Studio Code
вы можете видеть в веб-интерфейсе, размещенном приложениемngrok
в вашей локальной среде, что приложение генерирует ответ с обновленной версией сообщения.
Ява
Получите новые учетные данные пользователя для использования в качестве учетных данных приложения по умолчанию :
gcloud config set project PROJECT_ID
gcloud auth application-default login
Замените
PROJECT_ID
идентификатором облачного проекта приложения.Клонируйте репозиторий
googleworkspace/google-chat-samples
с GitHub в вашей локальной среде. Он содержит код приложения:git clone https://github.com/googleworkspace/google-chat-samples.git
В среде
Visual Studio Code
IDE, установленной в вашей локальной среде, выполните следующие действия:- В новом окне откройте папку
google-chat-samples/java/avatar-app
. Настройте проект Maven для локального запуска
App
на порту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>App</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-запроса в файле
App.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-запросов.Проверьте свое приложение Chat, отправив ему прямое сообщение:
Откройте Google Чат.
Нажмите
новый чат» .В диалоговом окне введите название вашего приложения чата.
В результатах поиска найдите свое приложение Chat, нажмите «Добавить» > «Чат» .
В области прямого сообщения введите
Hey!
и нажмитеenter
. Ваше приложение чата не отвечает, поскольку оно активно отлаживается.
В
Visual Studio Code
в вашей локальной среде вы можете видеть, что выполнение приостанавливается в установленной точке останова.Рисунок 6. Выполнение приостанавливается в установленной точке останова.
Когда вы возобновляете выполнение
Visual Studio Code
из отладчика до истечения времени ожидания Google Chat, приложение Chat отвечает вашим именем и изображением аватара в сообщении.Вы можете проверить журналы HTTP-запросов и ответов из веб-интерфейса, размещенного приложением
ngrok
в вашей локальной среде.Рисунок 7. HTTP-запрос из веб-интерфейса приложения
ngrok
.Чтобы изменить поведение приложения, замените
Hello
наHey
в строке55
файлаApp.java
, перезапустите процессmvnDebug
и перезапуститеRemote Debug Watch
, чтобы повторно подключиться и перезапустить отладку .На этот раз вместо отправки второго сообщения
Hey!
в этом пространстве вы можете выбрать последний HTTP-запрос, зарегистрированный в веб-интерфейсе, размещенном приложениемngrok
в вашей локальной среде, и нажатьReplay
. Как и в прошлый раз, ваше приложение чата не отвечает, поскольку оно активно отлаживается.Когда вы возобновляете выполнение из отладчика
Visual Studio Code
вы можете видеть в веб-интерфейсе, размещенном приложениемngrok
в вашей локальной среде, что приложение генерирует ответ с обновленной версией сообщения.
Отладка из удаленной среды
В этом разделе вы взаимодействуете со своим приложением чата, которое выполняется в удаленной среде.
Рисунок 9. Отладка из удаленной среды.
Предварительные условия
- Место для прямых сообщений с вашим приложением Chat. Вы можете следовать разделу «Проверка приложения чата» в кратком руководстве по началу работы и найти свое приложение чата, чтобы запустить его.
- Ваше приложение, работающее в удаленной среде с включенным отладчиком на определенном порту, в инструкциях этого руководства обозначается как
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
.
В области прямых сообщений приложения Chat введите все, что хотите проверить, и нажмите enter
. Ваше приложение чата не отвечает, поскольку оно активно отлаживается в интегрированной среде разработки Visual Studio Code
.
Связанные темы
- Узнайте, как включить и запросить журналы ошибок.
- Узнайте, как исправить ошибки приложения Google Chat, такие как «Приложение не отвечает», «API Google Chat доступен только пользователям Google Workspace» или «Пользователей можно исключить из групп».
- Узнайте, как исправить ошибки карточек, такие как сообщения карточек, диалоги или предварительный просмотр ссылок, которые не отображаются или не работают должным образом.
Как разработчику приложений Google Chat вам может потребоваться отладка кода для проверки изменений или устранения сложных проблем. Отладку приложений чата можно выполнять разными способами в зависимости от архитектуры вашего приложения, его функций, способа его развертывания и ваших предпочтений.
На этой странице объясняется, как отладить приложение HTTP Chat с помощью ngrok — единой входящей платформы, которую можно использовать для тестирования локальных сред разработки. В этом руководстве вы тестируете изменения кода в локальной среде и устраняете проблемы в удаленной среде.
Отладка из локальной среды разработки
В этом разделе вы взаимодействуете с приложением чата, которое выполняется в вашей локальной среде.
Рисунок 1. Отладка в локальной среде разработки.
Мастерская
Node.js
Питон
Ява
Предварительные условия
Node.js
- Последние версии
node
иnpm
установленные в вашей локальной среде. Последняя версия
nodemon
, установленная в вашей локальной среде, используется для автоматической перезагрузки:npm install -g nodemon
Приложение HTTP Chat, настроенное для обмена сообщениями. Вы можете следовать разделам «Предварительные требования» , «Настройка среды » и «Публикация приложения в Google Chat» краткого руководства . Единственная разница заключается в том, что вам необходимо установить имя приложения
Debug App
и URL-адрес конечной точки HTTP , напримерhttp://example.com
.IDE, установленная в вашей локальной среде и поддерживающая отладку. В этом руководстве в целях иллюстрации мы используем
Visual Studio Code
IDE и ее функции отладки по умолчанию.Git
установлен в вашей локальной среде.Аккаунт
ngrok
.
Питон
- Последняя версия
python3
установленная в вашей локальной среде. - В вашей локальной среде установлены последние версии
pip
иvirtualenv
. Они используются для управления пакетами Python и виртуальными средами соответственно. - Приложение HTTP Chat, настроенное для обмена сообщениями. Вы можете следовать разделам «Предварительные требования» , «Настройка среды » и «Публикация приложения в Google Chat» краткого руководства . Единственная разница заключается в том, что вам необходимо установить имя приложения
Debug App
и URL-адрес конечной точки HTTP , напримерhttp://example.com
. - IDE, установленная в вашей локальной среде и поддерживающая отладку. В этом руководстве в целях иллюстрации мы используем
Visual Studio Code
IDE и ее функции отладки по умолчанию. -
Git
установлен в вашей локальной среде. - Аккаунт
ngrok
. - Последняя версия
gcloud
установлена и инициализирована в вашей локальной среде.
Ява
- Последняя стабильная версия
Java SE 11's JDK
установленная в вашей локальной среде. - Последняя версия
Apache Maven
, установленная в вашей локальной среде, используется для управления проектами Java. - Приложение HTTP Chat, настроенное для обмена сообщениями. Вы можете следовать разделам «Предварительные требования» , «Настройка среды » и «Публикация приложения в Google Chat» краткого руководства . Единственная разница заключается в том, что вам необходимо установить имя приложения
Debug App
и URL-адрес конечной точки HTTP , напримерhttp://example.com
. - IDE, установленная в вашей локальной среде и поддерживающая отладку. В этом руководстве в целях иллюстрации мы используем
Visual Studio Code
IDE и ее функции отладки по умолчанию. -
Git
установлен в вашей локальной среде. - Аккаунт
ngrok
. - Последняя версия
gcloud
установлена и инициализирована в вашей локальной среде.
Сделайте службу localhost общедоступной.
Вам необходимо подключить локальную среду к Интернету, чтобы приложение Chat могло получить к ней доступ. Приложение ngrok
используется для перенаправления HTTP-запросов, сделанных на общедоступный URL-адрес, в вашу локальную среду.
- В браузере в вашей локальной среде войдите в свою учетную запись
ngrok
. - Установите приложение и настройте токен
authtoken
в своей локальной среде. - Создайте статический домен в своей учетной записи
ngrok
, в инструкциях этого руководства он обозначается какNGROK_STATIC_DOMAIN
.
Настройте приложение чата
Настройте приложение Chat для отправки всех HTTP-запросов в ваш статический домен.
В консоли Google Cloud откройте страницу Google Chat API:
Откройте вкладку Конфигурация .
Перейдите в раздел «Интерактивные функции» > «Настройки подключения» и установите значение URL-адреса конечной точки HTTP текстового поля:
https://NGROK_STATIC_DOMAIN
Замените
NGROK_STATIC_DOMAIN
на статический домен в вашей учетной записиngrok
.Нажмите Сохранить .
Рисунок 2. Приложение Chat отправляет все свои HTTP-запросы в статический домен. Публичная служба ngrok
действует как мост между приложением Chat и кодом приложения, который выполняется локально.
Протестируйте приложение Чат
Вы можете локально развернуть, настроить, протестировать, отладить и автоматически перезагрузить приложение Chat.
Node.js
Клонируйте репозиторий
googleworkspace/google-chat-samples
из GitHub в вашу локальную среду. Он содержит код приложения для выполнения:git clone https://github.com/googleworkspace/google-chat-samples.git
В среде
Visual Studio Code
IDE, установленной в вашей локальной среде, выполните следующие действия:- В новом окне откройте папку
google-chat-samples/node/basic-app
. Настройте приложение для автоматической перезагрузки отладки, добавив два скрипта в файл
package.json
:{ ... "scripts": { ... "debug": "node --inspect index.js", "debug-watch": "nodemon --watch ./ --exec npm run debug" } ... }
Из корневого каталога установите приложение:
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-запросов.Проверьте свое приложение Chat, отправив ему прямое сообщение:
Откройте Google Чат.
Нажмите
новый чат» .В диалоговом окне введите название вашего приложения чата.
В результатах поиска найдите свое приложение Chat, нажмите «Добавить» > «Чат» .
В области прямых сообщений введите
Hello
и нажмитеenter
. Ваше приложение чата не отвечает, поскольку оно активно отлаживается.
В
Visual Studio Code
в вашей локальной среде вы можете видеть, что выполнение приостанавливается в установленной точке останова.Рисунок 6. Выполнение приостанавливается в установленной точке останова.
Когда вы возобновляете выполнение
Visual Studio Code
из отладчика до истечения времени ожидания Google Chat, приложение Chat отвечает наYour message : Hello
.Вы можете проверить журналы HTTP-запросов и ответов из веб-интерфейса, размещенного приложением
ngrok
в вашей локальной среде.Рисунок 7. HTTP-запрос из веб-интерфейса приложения
ngrok
.Чтобы изменить поведение приложения, замените
Your message
наHere was your message
встроенное в строку35
файлаindex.json
. Когда вы сохраняете файл,nodemon
автоматически перезагружает приложение с обновленным исходным кодом, аVisual Studio Code
остается в режиме отладки.Рисунок 8. Приложение запущено и прослушивает HTTP-запросы на порту
9000
с загруженным изменением кода.На этот раз вместо отправки второго сообщения
Hello
в пространстве вы можете выбрать последний HTTP-запрос, зарегистрированный в веб-интерфейсе, размещенном приложениемngrok
в вашей локальной среде, и нажатьReplay
. Как и в прошлый раз, ваше приложение чата не отвечает, поскольку оно активно отлаживается.Когда вы возобновляете выполнение из отладчика
Visual Studio Code
вы можете видеть из веб-интерфейса, размещенного приложениемngrok
в вашей локальной среде, что приложение генерирует ответ с обновленной версией сообщения.Here was your message : Hello
.
Питон
Получите новые учетные данные пользователя для использования в качестве учетных данных приложения по умолчанию :
gcloud config set project PROJECT_ID
gcloud auth application-default login
Замените
PROJECT_ID
идентификатором облачного проекта приложения.Клонируйте репозиторий
googleworkspace/google-chat-samples
из GitHub в свою локальную среду. Он содержит код приложения:git clone https://github.com/googleworkspace/google-chat-samples.git
В среде
Visual Studio Code
IDE, установленной в вашей локальной среде, выполните следующие действия:- В новом окне откройте папку
google-chat-samples/python/avatar-app
. Создайте новую виртуальную среду для
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", "avatar_app", "--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-запросов.Проверьте свое приложение Chat, отправив ему прямое сообщение:
Откройте Google Чат.
Нажмите
новый чат» .В диалоговом окне введите название вашего приложения чата.
В результатах поиска найдите свое приложение Chat, нажмите «Добавить» > «Чат» .
В области прямого сообщения введите
Hey!
и нажмитеenter
. Ваше приложение чата не отвечает, поскольку оно активно отлаживается.
В
Visual Studio Code
в вашей локальной среде вы можете видеть, что выполнение приостанавливается в установленной точке останова.Рисунок 6. Выполнение приостанавливается в установленной точке останова.
Когда вы возобновляете выполнение
Visual Studio Code
из отладчика до истечения времени ожидания Google Chat, приложение Chat отвечает вашим именем и изображением аватара в сообщении.Вы можете проверить журналы HTTP-запросов и ответов из веб-интерфейса, размещенного приложением
ngrok
в вашей локальной среде.Рисунок 7. HTTP-запрос из веб-интерфейса приложения
ngrok
.Чтобы изменить поведение приложения, замените
Hello
наHey
в строке51
файлаmain.py
Когда вы сохраняете файл,Visual Studio Code
автоматически перезагружает приложение с обновленным исходным кодом и остается в режиме отладки.Рисунок 8. Приложение запущено и прослушивает HTTP-запросы на порту
9000
с загруженным изменением кода.На этот раз вместо отправки второго сообщения
Hey!
в этом пространстве вы можете выбрать последний HTTP-запрос, зарегистрированный в веб-интерфейсе, размещенном приложениемngrok
в вашей локальной среде, и нажатьReplay
. Как и в прошлый раз, ваше приложение чата не отвечает, поскольку оно активно отлаживается.Когда вы возобновляете выполнение из отладчика
Visual Studio Code
вы можете видеть в веб-интерфейсе, размещенном приложениемngrok
в вашей локальной среде, что приложение генерирует ответ с обновленной версией сообщения.
Ява
Получите новые учетные данные пользователя для использования в качестве учетных данных приложения по умолчанию :
gcloud config set project PROJECT_ID
gcloud auth application-default login
Замените
PROJECT_ID
идентификатором облачного проекта приложения.Клонируйте репозиторий
googleworkspace/google-chat-samples
с GitHub в вашей локальной среде. Он содержит код приложения:git clone https://github.com/googleworkspace/google-chat-samples.git
В среде
Visual Studio Code
IDE, установленной в вашей локальной среде, выполните следующие действия:- В новом окне откройте папку
google-chat-samples/java/avatar-app
. Настройте проект Maven для локального запуска
App
на порту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>App</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-запроса в файле
App.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-запросов.Проверьте свое приложение Chat, отправив ему прямое сообщение:
Откройте Google Чат.
Нажмите
новый чат» .В диалоговом окне введите название вашего приложения чата.
В результатах поиска найдите свое приложение Chat, нажмите «Добавить» > «Чат» .
В области прямого сообщения введите
Hey!
и нажмитеenter
. Ваше приложение чата не отвечает, поскольку оно активно отлаживается.
В
Visual Studio Code
в вашей локальной среде вы можете видеть, что выполнение приостанавливается в установленной точке останова.Рисунок 6. Выполнение приостанавливается в установленной точке останова.
Когда вы возобновляете выполнение
Visual Studio Code
из отладчика до истечения времени ожидания Google Chat, приложение Chat отвечает вашим именем и изображением аватара в сообщении.Вы можете проверить журналы HTTP-запросов и ответов из веб-интерфейса, размещенного приложением
ngrok
в вашей локальной среде.Рисунок 7. HTTP-запрос из веб-интерфейса приложения
ngrok
.Чтобы изменить поведение приложения, замените
Hello
наHey
в строке55
файлаApp.java
, перезапустите процессmvnDebug
и перезапуститеRemote Debug Watch
, чтобы повторно подключиться и перезапустить отладку .На этот раз вместо отправки второго сообщения
Hey!
в этом пространстве вы можете выбрать последний HTTP-запрос, зарегистрированный в веб-интерфейсе, размещенном приложениемngrok
в вашей локальной среде, и нажатьReplay
. Как и в прошлый раз, ваше приложение чата не отвечает, поскольку оно активно отлаживается.Когда вы возобновляете выполнение из отладчика
Visual Studio Code
вы можете видеть в веб-интерфейсе, размещенном приложениемngrok
в вашей локальной среде, что приложение генерирует ответ с обновленной версией сообщения.
Отладка из удаленной среды
В этом разделе вы взаимодействуете со своим приложением чата, которое выполняется в удаленной среде.
Рисунок 9. Отладка из удаленной среды.
Предварительные условия
- Место для прямых сообщений с вашим приложением Chat. Вы можете следовать разделу «Проверка приложения чата» в кратком руководстве по началу работы и найти свое приложение чата, чтобы запустить его.
- Ваше приложение, работающее в удаленной среде с включенным отладчиком на определенном порту, в инструкциях этого руководства обозначается как
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
.
В области прямых сообщений приложения Chat введите все, что хотите проверить, и нажмите enter
. Ваше приложение чата не отвечает, поскольку оно активно отлаживается в интегрированной среде разработки Visual Studio Code
.
Связанные темы
- Узнайте, как включить и запросить журналы ошибок.
- Узнайте, как исправить ошибки приложения Google Chat, такие как «Приложение не отвечает», «API Google Chat доступен только пользователям Google Workspace» или «Пользователей можно исключить из групп».
- Узнайте, как исправить ошибки карточек, такие как сообщения карточек, диалоги или предварительный просмотр ссылок, которые не отображаются или не работают должным образом.
Как разработчику приложений Google Chat вам может потребоваться отладка кода для проверки изменений или устранения сложных проблем. Отладку приложений чата можно выполнять разными способами в зависимости от архитектуры вашего приложения, его функций, способа его развертывания и ваших предпочтений.
На этой странице объясняется, как отладить приложение HTTP Chat с помощью ngrok — единой входящей платформы, которую можно использовать для тестирования локальных сред разработки. В этом руководстве вы тестируете изменения кода в локальной среде и устраняете проблемы в удаленной среде.
Отладка из локальной среды разработки
В этом разделе вы взаимодействуете с приложением чата, которое выполняется в вашей локальной среде.
Рисунок 1. Отладка в локальной среде разработки.
Мастерская
Node.js
Питон
Ява
Предварительные условия
Node.js
- Последние версии
node
иnpm
установленные в вашей локальной среде. Последняя версия
nodemon
, установленная в вашей локальной среде, используется для автоматической перезагрузки:npm install -g nodemon
Приложение HTTP Chat, настроенное для обмена сообщениями. Вы можете следовать разделам «Предварительные требования» , «Настройка среды » и «Публикация приложения в Google Chat» краткого руководства . Единственная разница заключается в том, что вам необходимо установить имя приложения
Debug App
и URL-адрес конечной точки HTTP , напримерhttp://example.com
.IDE, установленная в вашей локальной среде и поддерживающая отладку. В этом руководстве в целях иллюстрации мы используем
Visual Studio Code
IDE и ее функции отладки по умолчанию.Git
установлен в вашей локальной среде.Аккаунт
ngrok
.
Питон
- Последняя версия
python3
установленная в вашей локальной среде. - В вашей локальной среде установлены последние версии
pip
иvirtualenv
. Они используются для управления пакетами Python и виртуальными средами соответственно. - Приложение HTTP Chat, настроенное для обмена сообщениями. Вы можете следовать разделам «Предварительные требования» , «Настройка среды » и «Публикация приложения в Google Chat» краткого руководства . Единственная разница заключается в том, что вам необходимо установить имя приложения
Debug App
и URL-адрес конечной точки HTTP , напримерhttp://example.com
. - IDE, установленная в вашей локальной среде и поддерживающая отладку. В этом руководстве в целях иллюстрации мы используем
Visual Studio Code
IDE и ее функции отладки по умолчанию. -
Git
установлен в вашей локальной среде. - Аккаунт
ngrok
. - Последняя версия
gcloud
установлена и инициализирована в вашей локальной среде.
Ява
- Последняя стабильная версия
Java SE 11's JDK
установленная в вашей локальной среде. - Последняя версия
Apache Maven
, установленная в вашей локальной среде, используется для управления проектами Java. - Приложение HTTP Chat, настроенное для обмена сообщениями. Вы можете следовать разделам «Предварительные требования» , «Настройка среды » и «Публикация приложения в Google Chat» краткого руководства . Единственная разница заключается в том, что вам необходимо установить имя приложения
Debug App
и URL-адрес конечной точки HTTP , напримерhttp://example.com
. - IDE, установленная в вашей локальной среде и поддерживающая отладку. В этом руководстве в целях иллюстрации мы используем
Visual Studio Code
IDE и ее функции отладки по умолчанию. -
Git
установлен в вашей локальной среде. - Аккаунт
ngrok
. - Последняя версия
gcloud
установлена и инициализирована в вашей локальной среде.
Сделайте службу localhost общедоступной.
Вам необходимо подключить локальную среду к Интернету, чтобы приложение Chat могло получить к ней доступ. Приложение ngrok
используется для перенаправления HTTP-запросов, сделанных на общедоступный URL-адрес, в вашу локальную среду.
- В браузере в вашей локальной среде войдите в свою учетную запись
ngrok
. - Установите приложение и настройте токен
authtoken
в своей локальной среде. - Создайте статический домен в своей учетной записи
ngrok
, в инструкциях этого руководства он обозначается какNGROK_STATIC_DOMAIN
.
Настройте приложение чата
Настройте приложение Chat для отправки всех HTTP-запросов в ваш статический домен.
В консоли Google Cloud откройте страницу Google Chat API:
Откройте вкладку Конфигурация .
Перейдите в раздел «Интерактивные функции» > «Настройки подключения» и установите значение URL-адреса конечной точки HTTP текстового поля:
https://NGROK_STATIC_DOMAIN
Замените
NGROK_STATIC_DOMAIN
на статический домен в вашей учетной записиngrok
.Нажмите Сохранить .
Рисунок 2. Приложение Chat отправляет все свои HTTP-запросы в статический домен. Публичная служба ngrok
действует как мост между приложением Chat и кодом приложения, который выполняется локально.
Протестируйте приложение Чат
Вы можете локально развернуть, настроить, протестировать, отладить и автоматически перезагрузить приложение Chat.
Node.js
Клонируйте репозиторий
googleworkspace/google-chat-samples
из GitHub в вашу локальную среду. Он содержит код приложения для выполнения:git clone https://github.com/googleworkspace/google-chat-samples.git
В среде
Visual Studio Code
IDE, установленной в вашей локальной среде, выполните следующие действия:- В новом окне откройте папку
google-chat-samples/node/basic-app
. Настройте приложение для автоматической перезагрузки отладки, добавив два скрипта в файл
package.json
:{ ... "scripts": { ... "debug": "node --inspect index.js", "debug-watch": "nodemon --watch ./ --exec npm run debug" } ... }
Из корневого каталога установите приложение:
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-запросов.Проверьте свое приложение Chat, отправив ему прямое сообщение:
Откройте Google Чат.
Нажмите
новый чат» .В диалоговом окне введите название вашего приложения чата.
В результатах поиска найдите свое приложение Chat, нажмите «Добавить» > «Чат» .
В области прямых сообщений введите
Hello
и нажмитеenter
. Ваше приложение чата не отвечает, поскольку оно активно отлаживается.
В
Visual Studio Code
в вашей локальной среде вы можете видеть, что выполнение приостанавливается в установленной точке останова.Рисунок 6. Выполнение приостанавливается в установленной точке останова.
Когда вы возобновляете выполнение
Visual Studio Code
из отладчика до истечения времени ожидания Google Chat, приложение Chat отвечает наYour message : Hello
.Вы можете проверить журналы HTTP-запросов и ответов из веб-интерфейса, размещенного приложением
ngrok
в вашей локальной среде.Рисунок 7. HTTP-запрос из веб-интерфейса приложения
ngrok
.Чтобы изменить поведение приложения, замените
Your message
наHere was your message
встроенное в строку35
файлаindex.json
. Когда вы сохраняете файл,nodemon
автоматически перезагружает приложение с обновленным исходным кодом, аVisual Studio Code
остается в режиме отладки.Рисунок 8. Приложение запущено и прослушивает HTTP-запросы на порту
9000
с загруженным изменением кода.На этот раз вместо отправки второго сообщения
Hello
в пространстве вы можете выбрать последний HTTP-запрос, зарегистрированный в веб-интерфейсе, размещенном приложениемngrok
в вашей локальной среде, и нажатьReplay
. Как и в прошлый раз, ваше приложение чата не отвечает, поскольку оно активно отлаживается.Когда вы возобновляете выполнение из отладчика
Visual Studio Code
вы можете видеть из веб-интерфейса, размещенного приложениемngrok
в вашей локальной среде, что приложение генерирует ответ с обновленной версией сообщения.Here was your message : Hello
.
Питон
Получите новые учетные данные пользователя для использования в качестве учетных данных приложения по умолчанию :
gcloud config set project PROJECT_ID
gcloud auth application-default login
Замените
PROJECT_ID
идентификатором облачного проекта приложения.Клонируйте репозиторий
googleworkspace/google-chat-samples
из GitHub в свою локальную среду. Он содержит код приложения:git clone https://github.com/googleworkspace/google-chat-samples.git
В среде
Visual Studio Code
IDE, установленной в вашей локальной среде, выполните следующие действия:- В новом окне откройте папку
google-chat-samples/python/avatar-app
. Создайте новую виртуальную среду для
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", "avatar_app", "--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-запросов.Проверьте свое приложение Chat, отправив ему прямое сообщение:
Откройте Google Чат.
Нажмите
новый чат» .В диалоговом окне введите название вашего приложения чата.
В результатах поиска найдите свое приложение Chat, нажмите «Добавить» > «Чат» .
В области прямого сообщения введите
Hey!
и нажмитеenter
. Ваше приложение чата не отвечает, поскольку оно активно отлаживается.
В
Visual Studio Code
в вашей локальной среде вы можете видеть, что выполнение приостанавливается в установленной точке останова.Рисунок 6. Выполнение приостанавливается в установленной точке останова.
Когда вы возобновляете выполнение
Visual Studio Code
из отладчика до истечения времени ожидания Google Chat, приложение Chat отвечает вашим именем и изображением аватара в сообщении.Вы можете проверить журналы HTTP-запросов и ответов из веб-интерфейса, размещенного приложением
ngrok
в вашей локальной среде.Рисунок 7. HTTP-запрос из веб-интерфейса приложения
ngrok
.Чтобы изменить поведение приложения, замените
Hello
наHey
в строке51
файлаmain.py
Когда вы сохраняете файл,Visual Studio Code
автоматически перезагружает приложение с обновленным исходным кодом и остается в режиме отладки.Рисунок 8. Приложение запущено и прослушивает HTTP-запросы на порту
9000
с загруженным изменением кода.На этот раз вместо отправки второго сообщения
Hey!
в этом пространстве вы можете выбрать последний HTTP-запрос, зарегистрированный в веб-интерфейсе, размещенном приложениемngrok
в вашей локальной среде, и нажатьReplay
. Как и в прошлый раз, ваше приложение чата не отвечает, поскольку оно активно отлаживается.Когда вы возобновляете выполнение из отладчика
Visual Studio Code
вы можете видеть в веб-интерфейсе, размещенном приложениемngrok
в вашей локальной среде, что приложение генерирует ответ с обновленной версией сообщения.
Ява
Получите новые учетные данные пользователя для использования в качестве учетных данных приложения по умолчанию :
gcloud config set project PROJECT_ID
gcloud auth application-default login
Замените
PROJECT_ID
идентификатором облачного проекта приложения.Клонируйте репозиторий
googleworkspace/google-chat-samples
с GitHub в вашей локальной среде. Он содержит код приложения:git clone https://github.com/googleworkspace/google-chat-samples.git
В среде
Visual Studio Code
IDE, установленной в вашей локальной среде, выполните следующие действия:- В новом окне откройте папку
google-chat-samples/java/avatar-app
. Настройте проект Maven для локального запуска
App
на порту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>App</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-запроса в файле
App.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-запросов.Проверьте свое приложение Chat, отправив ему прямое сообщение:
Откройте Google Чат.
Нажмите
новый чат» .В диалоговом окне введите название вашего приложения чата.
В результатах поиска найдите свое приложение Chat, нажмите «Добавить» > «Чат» .
В области прямого сообщения введите
Hey!
и нажмитеenter
. Ваше приложение чата не отвечает, поскольку оно активно отлаживается.
В
Visual Studio Code
в вашей локальной среде вы можете видеть, что выполнение приостанавливается в установленной точке останова.Рисунок 6. Выполнение приостанавливается в установленной точке останова.
Когда вы возобновляете выполнение
Visual Studio Code
из отладчика до истечения времени ожидания Google Chat, приложение Chat отвечает вашим именем и изображением аватара в сообщении.Вы можете проверить журналы HTTP-запросов и ответов из веб-интерфейса, размещенного приложением
ngrok
в вашей локальной среде.Рисунок 7. HTTP-запрос из веб-интерфейса приложения
ngrok
.Чтобы изменить поведение приложения, замените
Hello
наHey
в строке55
файлаApp.java
, перезапустите процессmvnDebug
и перезапуститеRemote Debug Watch
, чтобы повторно подключиться и перезапустить отладку .На этот раз вместо отправки второго сообщения
Hey!
в этом пространстве вы можете выбрать последний HTTP-запрос, зарегистрированный в веб-интерфейсе, размещенном приложениемngrok
в вашей локальной среде, и нажатьReplay
. Как и в прошлый раз, ваше приложение чата не отвечает, поскольку оно активно отлаживается.Когда вы возобновляете выполнение из отладчика
Visual Studio Code
вы можете видеть в веб-интерфейсе, размещенном приложениемngrok
в вашей локальной среде, что приложение генерирует ответ с обновленной версией сообщения.
Отладка из удаленной среды
В этом разделе вы взаимодействуете со своим приложением чата, которое выполняется в удаленной среде.
Рисунок 9. Отладка из удаленной среды.
Предварительные условия
- Место для прямых сообщений с вашим приложением Chat. Вы можете следовать разделу «Проверка приложения чата» в кратком руководстве по началу работы и найти свое приложение чата, чтобы запустить его.
- Ваше приложение, работающее в удаленной среде с включенным отладчиком на определенном порту, в инструкциях этого руководства обозначается как
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
.
В области прямых сообщений приложения Chat введите все, что хотите проверить, и нажмите enter
. Ваше приложение чата не отвечает, поскольку оно активно отлаживается в интегрированной среде разработки Visual Studio Code
.
Связанные темы
- Узнайте, как включить и запросить журналы ошибок.
- Узнайте, как исправить ошибки приложения Google Chat, такие как «Приложение не отвечает», «API Google Chat доступен только пользователям Google Workspace» или «Пользователей можно исключить из групп».
- Узнайте, как исправить ошибки карточек, такие как сообщения карточек, диалоги или предварительный просмотр ссылок, которые не отображаются или не работают должным образом.
Как разработчику приложений Google Chat вам может потребоваться отладка кода для проверки изменений или устранения сложных проблем. Отладку приложений чата можно выполнять разными способами в зависимости от архитектуры вашего приложения, его функций, способа его развертывания и ваших предпочтений.
На этой странице объясняется, как отладить приложение HTTP Chat с помощью ngrok — единой входящей платформы, которую можно использовать для тестирования локальных сред разработки. В этом руководстве вы тестируете изменения кода в локальной среде и устраняете проблемы в удаленной среде.
Отладка из локальной среды разработки
В этом разделе вы взаимодействуете с приложением чата, которое выполняется в вашей локальной среде.
Рисунок 1. Отладка в локальной среде разработки.
Мастерская
Node.js
Питон
Ява
Предварительные условия
Node.js
- Последние версии
node
иnpm
установленные в вашей локальной среде. Последняя версия
nodemon
, установленная в вашей локальной среде, используется для автоматической перезагрузки:npm install -g nodemon
Приложение HTTP Chat, настроенное для обмена сообщениями. Вы можете следовать разделам «Предварительные требования» , «Настройка среды » и «Публикация приложения в Google Chat» краткого руководства . Единственная разница заключается в том, что вам необходимо установить имя приложения
Debug App
и URL-адрес конечной точки HTTP , напримерhttp://example.com
.IDE, установленная в вашей локальной среде и поддерживающая отладку. В этом руководстве в целях иллюстрации мы используем
Visual Studio Code
IDE и ее функции отладки по умолчанию.Git
установлен в вашей локальной среде.Аккаунт
ngrok
.
Питон
- Последняя версия
python3
установленная в вашей локальной среде. - В вашей локальной среде установлены последние версии
pip
иvirtualenv
. Они используются для управления пакетами Python и виртуальными средами соответственно. - Приложение HTTP Chat, настроенное для обмена сообщениями. Вы можете следовать разделам «Предварительные требования» , «Настройка среды » и «Публикация приложения в Google Chat» краткого руководства . Единственная разница заключается в том, что вам необходимо установить имя приложения
Debug App
и URL-адрес конечной точки HTTP , напримерhttp://example.com
. - IDE, установленная в вашей локальной среде и поддерживающая отладку. В этом руководстве в целях иллюстрации мы используем
Visual Studio Code
IDE и ее функции отладки по умолчанию. -
Git
установлен в вашей локальной среде. - Аккаунт
ngrok
. - Последняя версия
gcloud
установлена и инициализирована в вашей локальной среде.
Ява
- Последняя стабильная версия
Java SE 11's JDK
установленная в вашей локальной среде. - Последняя версия
Apache Maven
, установленная в вашей локальной среде, используется для управления проектами Java. - Приложение HTTP Chat, настроенное для обмена сообщениями. Вы можете следовать разделам «Предварительные требования» , «Настройка среды » и «Публикация приложения в Google Chat» краткого руководства . Единственная разница заключается в том, что вам необходимо установить имя приложения
Debug App
и URL-адрес конечной точки HTTP , напримерhttp://example.com
. - IDE, установленная в вашей локальной среде и поддерживающая отладку. В этом руководстве в целях иллюстрации мы используем
Visual Studio Code
IDE и ее функции отладки по умолчанию. -
Git
установлен в вашей локальной среде. - Аккаунт
ngrok
. - Последняя версия
gcloud
установлена и инициализирована в вашей локальной среде.
Сделайте службу localhost общедоступной.
Вам необходимо подключить локальную среду к Интернету, чтобы приложение Chat могло получить к ней доступ. Приложение ngrok
используется для перенаправления HTTP-запросов, сделанных на общедоступный URL-адрес, в вашу локальную среду.
- В браузере в вашей локальной среде войдите в свою учетную запись
ngrok
. - Установите приложение и настройте токен
authtoken
в своей локальной среде. - Создайте статический домен в своей учетной записи
ngrok
, в инструкциях этого руководства он обозначается какNGROK_STATIC_DOMAIN
.
Настройте приложение чата
Настройте приложение Chat для отправки всех HTTP-запросов в ваш статический домен.
В консоли Google Cloud откройте страницу Google Chat API:
Откройте вкладку Конфигурация .
Перейдите в раздел «Интерактивные функции» > «Настройки подключения» и установите значение URL-адреса конечной точки HTTP текстового поля:
https://NGROK_STATIC_DOMAIN
Замените
NGROK_STATIC_DOMAIN
на статический домен в вашей учетной записиngrok
.Нажмите Сохранить .
Рисунок 2. Приложение Chat отправляет все свои HTTP-запросы в статический домен. Публичная служба ngrok
действует как мост между приложением Chat и кодом приложения, который выполняется локально.
Протестируйте приложение Чат
Вы можете локально развернуть, настроить, протестировать, отладить и автоматически перезагрузить приложение Chat.
Node.js
Клонируйте репозиторий
googleworkspace/google-chat-samples
из GitHub в вашу локальную среду. Он содержит код приложения для выполнения:git clone https://github.com/googleworkspace/google-chat-samples.git
В среде
Visual Studio Code
IDE, установленной в вашей локальной среде, выполните следующие действия:- В новом окне откройте папку
google-chat-samples/node/basic-app
. Настройте приложение для автоматической перезагрузки отладки, добавив два скрипта в файл
package.json
:{ ... "scripts": { ... "debug": "node --inspect index.js", "debug-watch": "nodemon --watch ./ --exec npm run debug" } ... }
Из корневого каталога установите приложение:
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-запросов.Проверьте свое приложение Chat, отправив ему прямое сообщение:
Откройте Google Чат.
Нажмите
новый чат» .В диалоговом окне введите название вашего приложения чата.
В результатах поиска найдите свое приложение Chat, нажмите «Добавить» > «Чат» .
В области прямых сообщений введите
Hello
и нажмитеenter
. Ваше приложение чата не отвечает, поскольку оно активно отлаживается.
В
Visual Studio Code
в вашей локальной среде вы можете видеть, что выполнение приостанавливается в установленной точке останова.Рисунок 6. Выполнение приостанавливается в установленной точке останова.
Когда вы возобновляете выполнение
Visual Studio Code
из отладчика до истечения времени ожидания Google Chat, приложение Chat отвечает наYour message : Hello
.Вы можете проверить журналы HTTP-запросов и ответов из веб-интерфейса, размещенного приложением
ngrok
в вашей локальной среде.Рисунок 7. HTTP-запрос из веб-интерфейса приложения
ngrok
.Чтобы изменить поведение приложения, замените
Your message
наHere was your message
встроенное в строку35
файлаindex.json
. Когда вы сохраняете файл,nodemon
автоматически перезагружает приложение с обновленным исходным кодом, аVisual Studio Code
остается в режиме отладки.Рисунок 8. Приложение запущено и прослушивает HTTP-запросы на порту
9000
с загруженным изменением кода.На этот раз вместо отправки второго сообщения
Hello
в пространстве вы можете выбрать последний HTTP-запрос, зарегистрированный в веб-интерфейсе, размещенном приложениемngrok
в вашей локальной среде, и нажатьReplay
. Как и в прошлый раз, ваше приложение чата не отвечает, поскольку оно активно отлаживается.Когда вы возобновляете выполнение из отладчика
Visual Studio Code
вы можете видеть из веб-интерфейса, размещенного приложениемngrok
в вашей локальной среде, что приложение генерирует ответ с обновленной версией сообщения.Here was your message : Hello
.
Питон
Получите новые учетные данные пользователя для использования в качестве учетных данных приложения по умолчанию :
gcloud config set project PROJECT_ID
gcloud auth application-default login
Замените
PROJECT_ID
идентификатором облачного проекта приложения.Клонируйте репозиторий
googleworkspace/google-chat-samples
из GitHub в свою локальную среду. Он содержит код приложения:git clone https://github.com/googleworkspace/google-chat-samples.git
В среде
Visual Studio Code
IDE, установленной в вашей локальной среде, выполните следующие действия:- В новом окне откройте папку
google-chat-samples/python/avatar-app
. Создайте новую виртуальную среду для
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", "avatar_app", "--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-запросов.Проверьте свое приложение Chat, отправив ему прямое сообщение:
Откройте Google Чат.
Нажмите
новый чат» .В диалоговом окне введите название вашего приложения чата.
В результатах поиска найдите свое приложение Chat, нажмите «Добавить» > «Чат» .
В области прямого сообщения введите
Hey!
и нажмитеenter
. Ваше приложение чата не отвечает, поскольку оно активно отлаживается.
В
Visual Studio Code
в вашей локальной среде вы можете видеть, что выполнение приостанавливается в установленной точке останова.Рисунок 6. Выполнение приостанавливается в установленной точке останова.
Когда вы возобновляете выполнение
Visual Studio Code
из отладчика до истечения времени ожидания Google Chat, приложение Chat отвечает вашим именем и изображением аватара в сообщении.Вы можете проверить журналы HTTP-запросов и ответов из веб-интерфейса, размещенного приложением
ngrok
в вашей локальной среде.Рисунок 7. HTTP-запрос из веб-интерфейса приложения
ngrok
.Чтобы изменить поведение приложения, замените
Hello
наHey
в строке51
файлаmain.py
Когда вы сохраняете файл,Visual Studio Code
автоматически перезагружает приложение с обновленным исходным кодом и остается в режиме отладки.Рисунок 8. Приложение запущено и прослушивает HTTP-запросы на порту
9000
с загруженным изменением кода.На этот раз вместо отправки второго сообщения
Hey!
в этом пространстве вы можете выбрать последний HTTP-запрос, зарегистрированный в веб-интерфейсе, размещенном приложениемngrok
в вашей локальной среде, и нажатьReplay
. Как и в прошлый раз, ваше приложение чата не отвечает, поскольку оно активно отлаживается.Когда вы возобновляете выполнение из отладчика
Visual Studio Code
вы можете видеть в веб-интерфейсе, размещенном приложениемngrok
в вашей локальной среде, что приложение генерирует ответ с обновленной версией сообщения.
Ява
Получите новые учетные данные пользователя для использования в качестве учетных данных приложения по умолчанию :
gcloud config set project PROJECT_ID
gcloud auth application-default login
Замените
PROJECT_ID
идентификатором облачного проекта приложения.Клонируйте репозиторий
googleworkspace/google-chat-samples
с GitHub в вашей локальной среде. Он содержит код приложения:git clone https://github.com/googleworkspace/google-chat-samples.git
В среде
Visual Studio Code
IDE, установленной в вашей локальной среде, выполните следующие действия:- В новом окне откройте папку
google-chat-samples/java/avatar-app
. Настройте проект Maven для локального запуска
App
на порту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>App</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-запроса в файле
App.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-запросов.Проверьте свое приложение Chat, отправив ему прямое сообщение:
Откройте Google Чат.
Нажмите
новый чат» .В диалоговом окне введите название вашего приложения чата.
В результатах поиска найдите свое приложение Chat, нажмите «Добавить» > «Чат» .
В области прямого сообщения введите
Hey!
и нажмитеenter
. Ваше приложение чата не отвечает, поскольку оно активно отлаживается.
В
Visual Studio Code
в вашей локальной среде вы можете видеть, что выполнение приостанавливается в установленной точке останова.Рисунок 6. Выполнение приостанавливается в установленной точке останова.
Когда вы возобновляете выполнение
Visual Studio Code
из отладчика до истечения времени ожидания Google Chat, приложение Chat отвечает вашим именем и изображением аватара в сообщении.Вы можете проверить журналы HTTP-запросов и ответов из веб-интерфейса, размещенного приложением
ngrok
в вашей локальной среде.Рисунок 7. HTTP-запрос из веб-интерфейса приложения
ngrok
.Чтобы изменить поведение приложения, замените
Hello
наHey
в строке55
файлаApp.java
, перезапустите процессmvnDebug
и перезапуститеRemote Debug Watch
, чтобы повторно подключиться и перезапустить отладку .На этот раз вместо отправки второго сообщения
Hey!
в этом пространстве вы можете выбрать последний HTTP-запрос, зарегистрированный в веб-интерфейсе, размещенном приложениемngrok
в вашей локальной среде, и нажатьReplay
. Как и в прошлый раз, ваше приложение чата не отвечает, поскольку оно активно отлаживается.Когда вы возобновляете выполнение из отладчика
Visual Studio Code
вы можете видеть в веб-интерфейсе, размещенном приложениемngrok
в вашей локальной среде, что приложение генерирует ответ с обновленной версией сообщения.
Отладка из удаленной среды
В этом разделе вы взаимодействуете со своим приложением чата, которое выполняется в удаленной среде.
Рисунок 9. Отладка из удаленной среды.
Предварительные условия
- Место для прямых сообщений с вашим приложением Chat. Вы можете следовать разделу «Проверка приложения чата» в кратком руководстве по началу работы и найти свое приложение чата, чтобы запустить его.
- Ваше приложение, работающее в удаленной среде с включенным отладчиком на определенном порту, в инструкциях этого руководства обозначается как
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
.
В области прямых сообщений приложения Chat введите все, что хотите проверить, и нажмите enter
. Ваше приложение чата не отвечает, поскольку оно активно отлаживается в интегрированной среде разработки Visual Studio Code
.
Связанные темы
- Узнайте, как включить и запросить журналы ошибок.
- Узнайте, как исправить ошибки приложения Google Chat, такие как «Приложение не отвечает», «API Google Chat доступен только пользователям Google Workspace» или «Пользователей можно исключить из групп».
- Узнайте, как исправить ошибки карточек, такие как сообщения карточек, диалоги или предварительный просмотр ссылок, которые не отображаются или не работают должным образом.