Como desenvolvedor de apps do Google Chat, talvez você precise depurar o código para: testar alterações ou resolver problemas complexos. Como depurar apps do Chat pode ser feito de várias maneiras diferentes dependendo da arquitetura do app, quais o que o app faz, como ele é implantado e suas preferências.
Esta página explica como depurar um app de chat HTTP usando ngrok, que é uma plataforma de entrada unificada que pode ser usada para testar ambientes de desenvolvimento de software. Neste guia, você vai testar mudanças de código em uma e solucionar problemas em um ambiente remoto.
Depurar a partir do ambiente de desenvolvimento local
Nesta seção, você vai interagir com o app do Chat que é executado no seu ambiente local.
Figura 1. Depurar em um ambiente de desenvolvimento local.
Workshop
Node.js
Python
Java
Pré-requisitos
Node.js
- Versões mais recentes do
node
e donpm
instalado no seu ambiente local. A versão mais recente do
nodemon
instalada no seu local da Web, ele é usado para fins de atualização automática:npm install -g nodemon
Um app de chat HTTP configurado para troca de mensagens. Siga as seções Pré-requisitos Configure do Google Cloud, e Publicar o app no Google Chat do Guia de início rápido. O único As diferenças são que você precisa definir o Nome do app como
Debug App
e o URL do app para algo comohttp://example.com
.Um ambiente de desenvolvimento integrado configurado no ambiente local para depuração. Usamos o
Visual Studio Code
IDE e os respectivos recursos de depuração na neste guia para fins ilustrativos.Git
instalado no seu ambiente local.Uma conta do
ngrok
.
Python
- Versão mais recente do app
python3
instalado no seu ambiente local. - Versão mais recente do
pip
evirtualenv
instalado no seu ambiente local, elas são usadas para gerenciar pacotes Python e ambientes, respectivamente. - Um app de chat HTTP configurado para
troca de mensagens. Siga as seções
Pré-requisitos
Configure
do Google Cloud,
e Publicar o app no Google
Chat do
Guia de início rápido. O único
As diferenças são que você precisa definir o Nome do app como
Debug App
e o URL do app para algo comohttp://example.com
. - Um ambiente de desenvolvimento integrado configurado no ambiente local para depuração. Usamos o
Visual Studio Code
IDE e os respectivos recursos de depuração na neste guia para fins ilustrativos. Git
instalado no seu ambiente local.- Uma conta do
ngrok
. - Versão mais recente do app
gcloud
instalado e inicializado no no ambiente local.
Java
- Versão estável mais recente do
Java SE 11's JDK
instalado no seu sistema local de nuvem. - Versão mais recente do app
Apache Maven
instalado no seu ambiente local, que é usada para gerenciar projetos Java. - Um app de chat HTTP configurado para
troca de mensagens. Siga as seções
Pré-requisitos
Configure
do Google Cloud,
e Publicar o app no Google
Chat do
Guia de início rápido. O único
As diferenças são que você precisa definir o Nome do app como
Debug App
e o URL do app para algo comohttp://example.com
. - Um ambiente de desenvolvimento integrado configurado no ambiente local para depuração. Usamos o
Visual Studio Code
IDE e os respectivos recursos de depuração na neste guia para fins ilustrativos. Git
instalado no seu ambiente local.- Uma conta do
ngrok
. - Versão mais recente do app
gcloud
instalado e inicializado no no ambiente local.
Tornar o serviço localhost disponível publicamente
Você precisa conectar seu ambiente local à internet para que o
o app do Chat pode acessá-lo. O aplicativo ngrok
é usado
para redirecionar solicitações HTTP feitas em um URL público para seu ambiente local.
- Em um navegador no seu ambiente local, faça login na conta
ngrok
. - Instale o aplicativo e configure o
authtoken
no seu local de nuvem. - Crie um domínio estático no seu
ngrok
, é referenciada comoNGROK_STATIC_DOMAIN
nas instruções deste guia.
Configurar o app do Chat
Configure o app do Chat para enviar todas as solicitações HTTP dele a seu domínio estático.
No console do Google Cloud, abra a página da API Google Chat:
Clique na guia Configuração.
Acesse Recursos interativos > Configurações de conexão e defina o valor do campo de texto App Url para:
https://NGROK_STATIC_DOMAIN
Substitua
NGROK_STATIC_DOMAIN
pelo domínio estático em sua contangrok
.Clique em Salvar.
Figura 2. O app do Chat envia todas as solicitações HTTP
ao domínio estático. O serviço público ngrok
atua como uma ponte entre as
App do Chat e o código do aplicativo executado
localmente.
Teste o app do Chat
Implante, configure, teste, depure e atualize automaticamente App Chat.
Node.js
Clone o repositório
googleworkspace/google-chat-samples
do GitHub ao seu ambiente local, ele contém o código do aplicativo para execute:git clone https://github.com/googleworkspace/google-chat-samples.git
No ambiente de desenvolvimento integrado
Visual Studio Code
instalado no ambiente local, faça o seguinte:- Em uma nova janela, abra a pasta
google-chat-samples/node/basic-app
: Configure o aplicativo para depuração de atualização automática adicionando dois scripts no arquivo
package.json
:{ ... "scripts": { ... "debug": "node --inspect index.js", "debug-watch": "nodemon --watch ./ --exec npm run debug" } ... }
No diretório raiz, instale o aplicativo:
npm install
Crie e configure uma inicialização chamada
Debug Watch
que acione o scriptdebug-watch
criando o arquivo.vscode/launch.json
diretório raiz:{ "version": "0.2.0", "configurations": [{ "type": "node", "request": "launch", "name": "Debug Watch", "cwd": "${workspaceRoot}", "runtimeExecutable": "npm", "runtimeArgs": ["run-script", "debug-watch"] }] }
Adicione um ponto de interrupção que interrompa o processamento da solicitação HTTP no
index.js
arquivo e comece a executar e depurando com o ConfiguraçãoDebug Watch
adicionada anteriormente. Agora o aplicativo está executar e detectar solicitações HTTP na porta9000
.Figura 3. O aplicativo está em execução e detectando HTTP solicitações na porta
9000
.
- Em uma nova janela, abra a pasta
Inicie o aplicativo
ngrok
no seu ambiente local:ngrok http --domain=NGROK_STATIC_DOMAIN 9000
Substitua
NGROK_STATIC_DOMAIN
pelo domínio estático em sua contangrok
. Todas as solicitações agora são redirecionadas ao seu local e a porta usada pelo aplicativo.Figura 4. O terminal com o servidor do
ngrok
em execução e redirecionando.Uma interface da Web também é iniciada no localhost pelo
ngrok
. você pode monitorar todas as atividades abrindo-o em um navegador.Figura 5. A interface da Web hospedada pelo aplicativo
ngrok
sem mostrar solicitações HTTP.Envie uma mensagem direta para testar o app do Chat mensagem:
Abra o Google Chat.
Clique em Nova conversa
.Na caixa de diálogo, insira o nome do seu App Chat.
Nos resultados da pesquisa, encontre seu app do Chat. Clique em Adicionar > Chat.
No espaço da mensagem direta, digite
Hello
e pressioneenter
. Seu O app do Chat não responde porque está sendo depurados ativamente.
No
Visual Studio Code
do seu ambiente local, é possível observar que a execução é pausada no ponto de interrupção definido.Figura 6. A execução é pausada no ponto de interrupção definido.
Quando você retomar a execução do depurador de
Visual Studio Code
antes que o app do Google Chat expire respondeYour message : Hello
.É possível verificar os registros de solicitação e resposta HTTP na interface da Web hospedado pelo aplicativo
ngrok
no seu ambiente local.Figura 7. A solicitação HTTP da interface da Web hospedada pelo
ngrok
.Para mudar o comportamento do aplicativo, substitua
Your message
porHere was your message
in-line35
doindex.json
. Ao salvar o arquivo, onodemon
recarrega automaticamente o aplicativo com o o código-fonte atualizado eVisual Studio Code
permanece no modo de depuração.Figura 8. O aplicativo está em execução e recebendo solicitações HTTP na porta
9000
com a mudança de código carregada.Desta vez, em vez de enviar uma segunda mensagem
Hello
no espaço, você podemos selecionar a última solicitação HTTP registrada na interface da Web hospedada pelongrok
no ambiente local e clique emReplay
. Igual à última vez, seu app do Chat não responde porque está sendo depurado ativamente.Quando você retomar a execução do depurador de
Visual Studio Code
como podemos ver na interface da Web hospedada pelo aplicativongrok
em seu ambiente local para o qual o aplicativo gera uma resposta a versão atualizada da mensagemHere was your message : Hello
.
Python
Consiga novas credenciais de usuário que serão usadas no Application Default Credenciais:
gcloud config set project PROJECT_ID
gcloud auth application-default login
Substitua
PROJECT_ID
pelo ID do projeto para o projeto do app na nuvem.Clone o repositório
googleworkspace/google-chat-samples
do GitHub ao seu ambiente local, ele contém o código do aplicativo:git clone https://github.com/googleworkspace/google-chat-samples.git
No ambiente de desenvolvimento integrado
Visual Studio Code
instalado no ambiente local, faça o seguinte:- Em uma nova janela, abra a pasta
google-chat-samples/python/avatar-app
: Crie um novo ambiente virtual para o Python
env
e ative-o:virtualenv env
source env/bin/activate
Instale todas as dependências do projeto usando
pip
na de nuvem:pip install -r requirements.txt
Crie o arquivo
.vscode/launch.json
no diretório raiz e configure uma inicialização chamadaDebug Watch
que aciona o aplicativo do módulofunctions-framework
na porta9000
no modo de depuração no ambiente virtualenv
:{ "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" ] }] }
Adicione um ponto de interrupção que interrompa o processamento da solicitação HTTP no
main.py
arquivo e comece a executar e depurando com o ConfiguraçãoDebug Watch
adicionada anteriormente. Agora o aplicativo está executar e detectar solicitações HTTP na porta9000
.Figura 3. O aplicativo está em execução e detectando HTTP solicitações na porta
9000
.
- Em uma nova janela, abra a pasta
Inicie o aplicativo
ngrok
no seu ambiente local:ngrok http --domain=NGROK_STATIC_DOMAIN 9000
Substitua
NGROK_STATIC_DOMAIN
pelo domínio estático em sua contangrok
. Todas as solicitações agora são redirecionadas ao seu local e a porta usada pelo aplicativo.Figura 4. O terminal com o servidor do
ngrok
em execução e redirecionando.Uma interface da Web também é iniciada no localhost pelo
ngrok
. você pode monitorar todas as atividades abrindo-o em um navegador.Figura 5. A interface da Web hospedada pelo aplicativo
ngrok
sem mostrar solicitações HTTP.Envie uma mensagem direta para testar o app do Chat mensagem:
Abra o Google Chat.
Clique em Nova conversa
.Na caixa de diálogo, insira o nome do seu App Chat.
Nos resultados da pesquisa, encontre seu app do Chat. Clique em Adicionar > Chat.
No espaço da mensagem direta, digite
Hey!
e pressioneenter
. Seu O app do Chat não responde porque está sendo depurados ativamente.
No
Visual Studio Code
do seu ambiente local, é possível observar que a execução é pausada no ponto de interrupção definido.Figura 6. A execução é pausada no ponto de interrupção definido.
Quando você retomar a execução do depurador de
Visual Studio Code
antes que o app do Google Chat expire responde com seu nome e a foto do avatar na mensagem.É possível verificar os registros de solicitação e resposta HTTP na interface da Web hospedado pelo aplicativo
ngrok
no seu ambiente local.Figura 7. A solicitação HTTP da interface da Web hospedada pelo
ngrok
.Para mudar o comportamento do aplicativo, substitua
Hello
porHey
inline51
do arquivomain.py
. Quando você salvar o arquivo,Visual Studio Code
recarrega automaticamente o aplicativo com o código-fonte atualizado e permanece no modo de depuração.Figura 8. O aplicativo está em execução e recebendo solicitações HTTP na porta
9000
com a mudança de código carregada.Desta vez, em vez de enviar uma segunda mensagem
Hey!
no espaço, você podemos selecionar a última solicitação HTTP registrada na interface da Web hospedada pelongrok
no ambiente local e clique emReplay
. Igual à última vez, seu app do Chat não responde porque está sendo depurado ativamente.Quando você retomar a execução do depurador de
Visual Studio Code
como podemos ver na interface da Web hospedada pelo aplicativongrok
em seu ambiente local para o qual o aplicativo gera uma resposta a versão atualizada da mensagem.
Java
Consiga novas credenciais de usuário que serão usadas no Application Default Credenciais:
gcloud config set project PROJECT_ID
gcloud auth application-default login
Substitua
PROJECT_ID
pelo ID do projeto para o projeto do app na nuvem.Clone o repositório
googleworkspace/google-chat-samples
do GitHub no seu ambiente local, ele contém o código do aplicativo:git clone https://github.com/googleworkspace/google-chat-samples.git
No ambiente de desenvolvimento integrado
Visual Studio Code
instalado no ambiente local, faça o seguinte:- Em uma nova janela, abra a pasta
google-chat-samples/java/avatar-app
: Configure o projeto Maven para executar o aplicativo
App
em porta9000
localmente adicionando o build do Cloud Functions Framework plug-infunction-maven-plugin
no arquivopom.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> ...
Agora você pode iniciá-lo localmente no modo de depuração:
mvnDebug function:run Preparing to execute Maven in debug mode Listening for transport dt_socket at address: 8000
Crie o arquivo
.vscode/launch.json
no diretório raiz e configure uma inicialização chamadaRemote Debug Watch
que é anexada ao aplicativo iniciado anteriormente com a porta8000
:{ "version": "0.2.0", "configurations": [{ "type": "java", "request": "attach", "name": "Remote Debug Watch", "projectName": "http-function", "hostName": "localhost", "port": 8000 }] }
Adicione um ponto de interrupção que interrompa o processamento da solicitação HTTP no
App.java
arquivo e comece a anexar e depurando com o ConfiguraçãoRemote Debug Watch
adicionada anteriormente. O aplicativo é Agora em execução e detectando solicitações HTTP na porta9000
.Figura 3. O aplicativo está em execução e detectando HTTP solicitações na porta
9000
.
- Em uma nova janela, abra a pasta
Inicie o aplicativo
ngrok
no seu ambiente local:ngrok http --domain=NGROK_STATIC_DOMAIN 9000
Substitua
NGROK_STATIC_DOMAIN
pelo domínio estático em sua contangrok
. Todas as solicitações agora são redirecionadas ao seu local e a porta usada pelo aplicativo.Figura 4. O terminal com o servidor do
ngrok
em execução e redirecionando.Uma interface da Web também é iniciada no localhost pelo
ngrok
. você pode monitorar todas as atividades abrindo-o em um navegador.Figura 5. A interface da Web hospedada pelo aplicativo
ngrok
sem mostrar solicitações HTTP.Envie uma mensagem direta para testar o app do Chat mensagem:
Abra o Google Chat.
Clique em Nova conversa
.Na caixa de diálogo, insira o nome do seu App Chat.
Nos resultados da pesquisa, encontre seu app do Chat. Clique em Adicionar > Chat.
No espaço da mensagem direta, digite
Hey!
e pressioneenter
. Seu O app do Chat não responde porque está sendo depurados ativamente.
No
Visual Studio Code
do seu ambiente local, é possível observar que a execução é pausada no ponto de interrupção definido.Figura 6. A execução é pausada no ponto de interrupção definido.
Quando você retomar a execução do depurador de
Visual Studio Code
antes que o app do Google Chat expire responde com seu nome e a foto do avatar na mensagem.É possível verificar os registros de solicitação e resposta HTTP na interface da Web hospedado pelo aplicativo
ngrok
no seu ambiente local.Figura 7. A solicitação HTTP da interface da Web hospedada pelo
ngrok
.Para mudar o comportamento do aplicativo, substitua
Hello
porHey
inline55
do arquivoApp.java
, reinicie o processomvnDebug
e reinicieRemote Debug Watch
para reanexar e reiniciar depuração.Desta vez, em vez de enviar uma segunda mensagem
Hey!
no espaço, você podemos selecionar a última solicitação HTTP registrada na interface da Web hospedada pelongrok
no ambiente local e clique emReplay
. Igual à última vez, seu app do Chat não responde porque está sendo depurado ativamente.Quando você retomar a execução do depurador de
Visual Studio Code
como podemos ver na interface da Web hospedada pelo aplicativongrok
em seu ambiente local para o qual o aplicativo gera uma resposta a versão atualizada da mensagem.
Depurar a partir do ambiente remoto
Nesta seção, você vai interagir com o app do Chat que é executado em um ambiente remoto.
Figura 9. Depurar do ambiente remoto.
Pré-requisitos
- Um espaço de mensagem direta com seu app do Chat. Você pode siga a seção Teste o app do Chat do Guia de início rápido e pesquise pelo Chat para iniciar um.
- O aplicativo em execução no ambiente remoto com o depurador
ativado em uma determinada porta, ele é referenciado como
REMOTE_DEBUG_PORT
nas instruções deste guia. - O ambiente local pode
ssh
para o ambiente remoto. - Um ambiente de desenvolvimento integrado configurado no ambiente local para depuração. Usamos o
Visual Studio Code
IDE e os respectivos de depuração nessa para fins ilustrativos.
Conecte seus ambientes local e remoto
No ambiente local a partir do qual você quer iniciar um cliente de depuração configure um túnel SSH:
ssh -L LOCAL_DEBUG_PORT:localhost:REMOTE_DEBUG_PORT REMOTE_USERNAME@REMOTE_ADDRESS
Substitua:
LOCAL_DEBUG_PORT
: a porta de depuração no seu diretório local de nuvem.REMOTE_USERNAME
: o nome de usuário no ambiente remoto.REMOTE_ADDRESS
: o endereço do ambiente remoto.REMOTE_DEBUG_PORT
: a porta de depuração no controle remoto de nuvem.
A porta de depuração no seu ambiente local agora está vinculada à porta de depuração do seu ambiente remoto.
Começar a depurar
No ambiente de desenvolvimento integrado Visual Studio Code
instalado no ambiente local, faça o
seguinte:
- Em uma nova janela, abra o código-fonte do app.
Crie o arquivo
.vscode/launch.json
no diretório raiz e configure um inicialização chamadaDebug Remote
, que é anexada à porta de depuração no de nuvem:Node.js
{ "version": "0.2.0", "configurations": [{ "type": "node", "request": "attach", "name": "Debug Remote", "address": "127.0.0.1", "port": LOCAL_DEBUG_PORT }] }
Python
{ "version": "0.2.0", "configurations": [{ "type": "python", "request": "attach", "name": "Debug Remote", "connect": { "host": "127.0.0.1", "port": LOCAL_DEBUG_PORT } }] }
Java
{ "version": "0.2.0", "configurations": [{ "type": "java", "request": "attach", "name": "Debug Remote", "hostName": "127.0.0.1", "port": LOCAL_DEBUG_PORT }] }
Substitua
LOCAL_DEBUG_PORT
pela porta de depuração no no ambiente local.Adicionar um ponto de interrupção no código-fonte do app que pause a solicitação HTTP e começar a executar depuração com a configuração
Debug Remote
adicionada antes.
No espaço da mensagem direta com seu app do Chat, digite
tudo o que você quiser testar e pressione enter
. Seu
O app do Chat não responde porque está participando
depurado
no ambiente de desenvolvimento integrado Visual Studio Code
.
Temas relacionados
- Saiba como ativar e query.
- Saiba como corrigir o app Google Chat erros como "O app não está respondendo", "API Google Chat" só está disponível para usuários do Google Workspace" ou "Os usuários podem ser excluídos usando espaços".
- Saiba como corrigir erros, como mensagens, caixas de diálogo ou visualizações de links não são renderizadas nem funcionam como esperado.