Como desarrollador de complementos de Google Workspace, es posible que debas depurar código para probar cambios o solucionar problemas complejos. Depuración de complementos de Google Workspace se puede hacer de muchas maneras diferentes según la arquitectura de tu app, hace la app, cómo se implementa y tus preferencias.
En esta página, se explica cómo depurar un complemento HTTP de Google Workspace con ngrok, una plataforma de entrada unificada que puedes usar para probar entornos de desarrollo de aplicaciones. En esta guía, probarás cambios de código en una instancia y solucionar problemas en un entorno remoto.
Cómo depurar desde un entorno de desarrollo local
En esta sección, interactuarás con tu complemento de Google Workspace que que se ejecuta en tu entorno local.
Figura 1: Depura en un entorno de desarrollo local.
Requisitos previos
Node.js
- Las versiones más recientes de
node
ynpm
instalada en tu entorno local. La versión más reciente de
nodemon
instalada en tu dispositivo local este se usa para la recarga automática:npm install -g nodemon
Un proyecto de Google Cloud. Puedes seguir las secciones Requisitos previos, y Configura la entorno de la Guía de inicio rápido guía.
El código del complemento de Google Workspace para depurar en tu entorno local en un entorno de nube. Usamos las funciones del vínculo de vista previa del ejemplo de código.
3p-resources
del repositorio de GitHubgoogleworkspace/add-ons-samples
en esta guía con fines ilustrativos.Un IDE configurado en tu entorno local que puede depurar. Usamos la
Visual Studio Code
IDE y su configuración predeterminada funciones de depuración en esta guía con fines ilustrativos.Una cuenta de
ngrok
Versión más reciente de
gcloud
instalada y se inicializa en tu entorno local.
Python
- Versión más reciente de
python3
instalada en tu entorno local. - La versión más reciente de
pip
y Se instalóvirtualenv
en tu en un entorno local, se usan para administrar paquetes de Python y APIs de manera respectiva. - Un proyecto de Google Cloud. Puedes seguir las secciones Requisitos previos, y Configura la entorno de la Guía de inicio rápido guía.
- El código del complemento de Google Workspace para depurar en tu entorno local
en un entorno de nube. Usamos las funciones del vínculo de vista previa del ejemplo de código.
3p-resources
del repositorio de GitHubgoogleworkspace/add-ons-samples
en esta guía con fines ilustrativos. - Un IDE configurado en tu entorno local que puede depurar. Usamos la
Visual Studio Code
IDE y su configuración predeterminada funciones de depuración en esta guía con fines ilustrativos. - Una cuenta de
ngrok
- Versión más reciente de
gcloud
instalada y se inicializa en tu entorno local.
Java
- La versión estable más reciente de
Java SE 11's JDK
instalada en tu app local en un entorno de nube. - Versión más reciente de
Apache Maven
instalada en tu entorno local se usa para administrar proyectos de Java. - Un proyecto de Google Cloud. Puedes seguir las secciones Requisitos previos, y Configura la entorno de la Guía de inicio rápido guía.
- El código del complemento de Google Workspace para depurar en tu entorno local
en un entorno de nube. Usamos las funciones del vínculo de vista previa del ejemplo de código.
3p-resources
del repositorio de GitHubgoogleworkspace/add-ons-samples
en esta guía con fines ilustrativos. - Un IDE configurado en tu entorno local que puede depurar. Usamos la
Visual Studio Code
IDE y su configuración predeterminada funciones de depuración en esta guía con fines ilustrativos. - Una cuenta de
ngrok
- Versión más reciente de
gcloud
instalada y se inicializa en tu entorno local.
Haz que el servicio localhost esté disponible de forma pública
Debes conectar tu entorno local a Internet para que el
el complemento de Google Workspace puede acceder a él. Se usa la aplicación ngrok
para redireccionar las solicitudes HTTP realizadas a una URL pública a tu entorno local.
- En un navegador de tu entorno local, accede a tu cuenta de
ngrok
. - Instala la aplicación y configura tu
authtoken
en tu entorno local entorno. - Crea un dominio estático en tu
ngrok
cuenta, se hace referencia a ella comoNGROK_STATIC_DOMAIN
en las instrucciones de esta guía.
Crea e instala la implementación del complemento
Configurar el complemento de Google Workspace para enviar todas sus solicitudes HTTP a tu dominio estático. Tu archivo de implementación debería verse de la siguiente manera:
{ "oauthScopes": [ "https://www.googleapis.com/auth/workspace.linkpreview", "https://www.googleapis.com/auth/workspace.linkcreate" ], "addOns": { "common": { "name": "Manage support cases", "logoUrl": "https://developers.google.com/workspace/add-ons/images/support-icon.png", "layoutProperties": { "primaryColor": "#dd4b39" } }, "docs": { "linkPreviewTriggers": [ { "runFunction": "NGROK_STATIC_DOMAIN", "patterns": [ { "hostPattern": "example.com", "pathPrefix": "support/cases" }, { "hostPattern": "*.example.com", "pathPrefix": "cases" }, { "hostPattern": "cases.example.com" } ], "labelText": "Support case", "localizedLabelText": { "es": "Caso de soporte" }, "logoUrl": "https://developers.google.com/workspace/add-ons/images/support-icon.png" } ], "createActionTriggers": [ { "id": "createCase", "labelText": "Create support case", "localizedLabelText": { "es": "Crear caso de soporte" }, "runFunction": "$URL2", "logoUrl": "https://developers.google.com/workspace/add-ons/images/support-icon.png" } ] } } }
Reemplaza
NGROK_STATIC_DOMAIN
por el dominio estático en tu Cuenta dengrok
.Configura el proyecto de Google Cloud que se usará:
gcloud config set project PROJECT_ID
Adquiere nuevas credenciales de usuario para utilizarlas como Configuración predeterminada de la aplicación Credenciales:
gcloud auth application-default login
Reemplaza
PROJECT_ID
por el ID del proyecto para el proyecto de Google Cloud de la app.Crea la implementación:
gcloud workspace-add-ons deployments create manageSupportCases \ --deployment-file=DEPLOYMENT_FILE_PATH
Reemplaza
DEPLOYMENT_FILE_PATH
por la ruta de acceso de tu archivo Deployment.Instala la implementación:
gcloud workspace-add-ons deployments install manageSupportCases
Figura 2: El complemento de Google Workspace envía todas sus solicitudes HTTP
al dominio estático. El servicio público de ngrok
actúa como un puente entre los
el complemento de Google Workspace y el código de la aplicación que se ejecuta
de forma local.
Prueba el complemento de Google Workspace
Puedes implementar, probar, depurar y volver a cargar automáticamente tus archivos el complemento de Google Workspace.
Node.js
Desde el IDE de
Visual Studio Code
instalado en tu entorno local, haz lo siguiente: haz lo siguiente:- En una ventana nueva, abre la carpeta.
add-ons-samples/node/3p-resources
Configura la aplicación para la ejecución local y vuelve a cargar la depuración automáticamente de la siguiente manera: Agrega una dependencia y dos secuencias de comandos en el archivo
package.json
:{ ... "dependencies": { ... "@google-cloud/functions-framework": "^3.3.0" }, "scripts": { ... "start": "npx functions-framework --target=createLinkPreview --port=9000", "debug-watch": "nodemon --watch ./ --exec npm start" } ... }
Desde el directorio raíz, instala la aplicación:
npm install
Crea y configura un lanzamiento llamado
Debug Watch
que active la función de secuencia de comandosdebug-watch
creando el archivo.vscode/launch.json
en directorio raíz:{ "version": "0.2.0", "configurations": [{ "type": "node", "request": "launch", "name": "Debug Watch", "cwd": "${workspaceRoot}", "runtimeExecutable": "npm", "runtimeArgs": ["run-script", "debug-watch"] }] }
Agrega un punto de interrupción que detenga el procesamiento de solicitudes HTTP en la
index.js
y comenzar a ejecutar y la depuración con el Se agregó la configuración deDebug Watch
antes. Ahora la aplicación ejecuta y escucha solicitudes HTTP en el puerto9000
.Figura 3: La aplicación se ejecuta y escucha HTTP de estado en el puerto
9000
.
- En una ventana nueva, abre la carpeta.
Inicia la aplicación
ngrok
en tu entorno local:ngrok http --domain=NGROK_STATIC_DOMAIN 9000
Reemplaza
NGROK_STATIC_DOMAIN
por el dominio estático en tu cuenta dengrok
. Todas las solicitudes se redireccionarán a la instancia y el puerto que usa la aplicación.Figura 4: La terminal con el servidor
ngrok
en ejecución y redireccionando.ngrok
también inicia una interfaz web en tu localhost. puedes supervisar todas las actividades abriéndola en un navegador.Figura 5: La interfaz web que aloja la aplicación
ngrok
que no muestra solicitudes HTTP.Obtén una vista previa de la URL de un caso en una nueva ventana para probar tu complemento de Google Workspace Documento de Google con una cuenta de verificador:
Crea un nuevo documento de Google.
Escribe el siguiente vínculo y presiona
enter
:https://example.com/support/case/?name=Name1&description=Description1&priority=P1
Haga clic en el vínculo.
En el
Visual Studio Code
de tu entorno local, puedes ver que se pausó la ejecución en el punto de interrupción que se estableció.Figura 6: Se pausó la ejecución en el punto de interrupción que se estableció.
Cuando reanudas la ejecución desde el depurador de
Visual Studio Code
antes de que se agote el tiempo de espera de los complementos de Google Workspace muestra la vista previa del vínculo en el documento de Google de la caché.Puedes verificar los registros de solicitud y respuesta HTTP desde la interfaz web alojada por la aplicación
ngrok
en tu entorno local.Figura 7: La solicitud HTTP de la interfaz web alojada por el
ngrok
.Para cambiar el comportamiento de la aplicación, reemplaza
Case
porCase:
intercalado.51
deindex.js
Cuando guardes el archivo,nodemon
automáticamente vuelve a cargar la aplicación con el código fuente actualizadoVisual Studio Code
permanece en modo de depuración.Figura 8: La aplicación se ejecuta y detecta solicitudes HTTP. en el puerto
9000
con el cambio de código cargadoEsta vez, en vez de hacer clic en el vínculo y esperar unos segundos un nuevo documento de Google, puedes seleccionar la última solicitud HTTP registrada en la Web interfaz alojada por la aplicación
ngrok
en tu entorno local y haz clic enReplay
. Al igual que la última vez, tu complemento de Google Workspace no responde porque se está depurando activamente.Cuando reanudas la ejecución desde el depurador de
Visual Studio Code
Desde la interfaz web que aloja la aplicaciónngrok
en tu entorno local con el que la aplicación genera una respuesta la versión actualizada de la tarjeta de vista previa.
Python
Desde el IDE de
Visual Studio Code
instalado en tu entorno local, haz lo siguiente: haz lo siguiente:- En una ventana nueva, abre la carpeta.
add-ons-samples/python/3p-resources/create_link_preview
Crea un entorno virtual nuevo para
env
de Python y actívalo:virtualenv env
source env/bin/activate
Instala todas las dependencias del proyecto usando
pip
en el entorno:pip install -r requirements.txt
Crea el archivo
.vscode/launch.json
en el directorio raíz. configurar un lanzamiento llamadoDebug Watch
que active la aplicación del módulofunctions-framework
en el puerto9000
, en modo de depuración en el entorno virtualenv
:{ "version": "0.2.0", "configurations": [{ "type": "python", "request": "launch", "name": "Debug Watch", "python": "${workspaceFolder}/env/bin/python3", "module": "functions_framework", "args": [ "--target", "create_link_preview", "--port", "9000", "--debug" ] }] }
Agrega un punto de interrupción que detenga el procesamiento de solicitudes HTTP en la
main.py
y comenzar a ejecutar y la depuración con el Se agregó la configuración deDebug Watch
antes. Ahora la aplicación ejecuta y escucha solicitudes HTTP en el puerto9000
.Figura 3: La aplicación se ejecuta y escucha HTTP de estado en el puerto
9000
.
- En una ventana nueva, abre la carpeta.
Inicia la aplicación
ngrok
en tu entorno local:ngrok http --domain=NGROK_STATIC_DOMAIN 9000
Reemplaza
NGROK_STATIC_DOMAIN
por el dominio estático en tu cuenta dengrok
. Todas las solicitudes se redireccionarán a la instancia y el puerto que usa la aplicación.Figura 4: La terminal con el servidor
ngrok
en ejecución y redireccionando.ngrok
también inicia una interfaz web en tu localhost. puedes supervisar todas las actividades abriéndola en un navegador.Figura 5: La interfaz web que aloja la aplicación
ngrok
que no muestra solicitudes HTTP.Obtén una vista previa de la URL de un caso en una nueva ventana para probar tu complemento de Google Workspace Documento de Google con una cuenta de verificador:
Crea un nuevo documento de Google.
Escribe el siguiente vínculo y presiona
enter
:https://example.com/support/case/?name=Name1&description=Description1&priority=P1
Haga clic en el vínculo.
En el
Visual Studio Code
de tu entorno local, puedes ver que se pausó la ejecución en el punto de interrupción que se estableció.Figura 6: Se pausó la ejecución en el punto de interrupción que se estableció.
Cuando reanudas la ejecución desde el depurador de
Visual Studio Code
antes de que se agote el tiempo de espera de los complementos de Google Workspace muestra la vista previa del vínculo en el documento de Google de la caché.Puedes verificar los registros de solicitud y respuesta HTTP desde la interfaz web alojada por la aplicación
ngrok
en tu entorno local.Figura 7: La solicitud HTTP de la interfaz web alojada por el
ngrok
.Para cambiar el comportamiento de la aplicación, reemplaza
Case
porCase:
intercalado.56
del archivomain.py
. Cuando guardes el archivo,Visual Studio Code
vuelve a cargar automáticamente la aplicación con el código fuente actualizado y permanece en modo de depuración.Figura 8: La aplicación se ejecuta y detecta solicitudes HTTP. en el puerto
9000
con el cambio de código cargadoEsta vez, en vez de hacer clic en el vínculo y esperar unos segundos un nuevo documento de Google, puedes seleccionar la última solicitud HTTP registrada en la Web interfaz alojada por la aplicación
ngrok
en tu entorno local y haz clic enReplay
. Al igual que la última vez, tu complemento de Google Workspace no responde porque se está depurando activamente.Cuando reanudas la ejecución desde el depurador de
Visual Studio Code
Desde la interfaz web que aloja la aplicaciónngrok
en tu entorno local con el que la aplicación genera una respuesta la versión actualizada de la tarjeta de vista previa.
Java
Desde el IDE de
Visual Studio Code
instalado en tu entorno local, haz lo siguiente: haz lo siguiente:- En una ventana nueva, abre la carpeta.
add-ons-samples/java/3p-resources
Configura el proyecto de Maven para ejecutar la aplicación
CreateLinkPreview
en el puerto9000
de forma local agregando el Cloud El complemento de compilaciónfunction-maven-plugin
de Functions Framework en Archivopom.xml
:... <plugin> <groupId>com.google.cloud.functions</groupId> <artifactId>function-maven-plugin</artifactId> <version>0.11.0</version> <configuration> <functionTarget>CreateLinkPreview</functionTarget> <port>9000</port> </configuration> </plugin> ...
Ahora puedes iniciarla de manera local en modo de depuración:
mvnDebug function:run Preparing to execute Maven in debug mode Listening for transport dt_socket at address: 8000
Crea el archivo
.vscode/launch.json
en el directorio raíz. configurar un lanzamiento llamadoRemote Debug Watch
que se conecte al aplicación iniciada anteriormente con el puerto8000
:{ "version": "0.2.0", "configurations": [{ "type": "java", "request": "attach", "name": "Remote Debug Watch", "projectName": "http-function", "hostName": "localhost", "port": 8000 }] }
Agrega un punto de interrupción que detenga el procesamiento de solicitudes HTTP en la
CreateLinkPreview.java
y comenzar a adjuntar y la depuración con el Se agregó la configuración deRemote Debug Watch
antes. La aplicación es que ahora se ejecutan y están a la escucha de solicitudes HTTP en el puerto9000
.Figura 3: La aplicación ejecuta y escucha HTTP de estado en el puerto
9000
.
- En una ventana nueva, abre la carpeta.
Inicia la aplicación
ngrok
en tu entorno local:ngrok http --domain=NGROK_STATIC_DOMAIN 9000
Reemplaza
NGROK_STATIC_DOMAIN
por el dominio estático en tu cuenta dengrok
. Todas las solicitudes se redireccionarán a la instancia y el puerto que usa la aplicación.Figura 4: La terminal con el servidor
ngrok
en ejecución y redireccionando.ngrok
también inicia una interfaz web en tu localhost. puedes supervisar todas las actividades abriéndola en un navegador.Figura 5: La interfaz web que aloja la aplicación
ngrok
que no muestra solicitudes HTTP.Obtén una vista previa de la URL de un caso en una nueva ventana para probar tu complemento de Google Workspace Documento de Google con una cuenta de verificador:
Crea un nuevo documento de Google.
Escribe el siguiente vínculo y presiona
enter
:https://example.com/support/case/?name=Name1&description=Description1&priority=P1
Haga clic en el vínculo.
En el
Visual Studio Code
de tu entorno local, puedes ver que se pausó la ejecución en el punto de interrupción que se estableció.Figura 6: Se pausó la ejecución en el punto de interrupción que se estableció.
Cuando reanudas la ejecución desde el depurador de
Visual Studio Code
antes de que se agote el tiempo de espera de los complementos de Google Workspace muestra la vista previa del vínculo en el documento de Google de la caché.Puedes verificar los registros de solicitud y respuesta HTTP desde la interfaz web alojada por la aplicación
ngrok
en tu entorno local.Figura 7: La solicitud HTTP de la interfaz web alojada por el
ngrok
.Para cambiar el comportamiento de la aplicación, reemplaza
Case
porCase:
intercalado.78
del archivoCreateLinkPreview.java
; reiniciamvnDebug
y reiniciaRemote Debug Watch
para reconectarla y reiniciarla. del contenedor.Esta vez, en vez de hacer clic en el vínculo y esperar unos segundos un nuevo documento de Google, puedes seleccionar la última solicitud HTTP registrada en la Web interfaz alojada por la aplicación
ngrok
en tu entorno local y haz clic enReplay
. Al igual que la última vez, tu complemento de Google Workspace no responde porque se está depurando activamente.Cuando reanudas la ejecución desde el depurador de
Visual Studio Code
Desde la interfaz web que aloja la aplicaciónngrok
en tu entorno local con el que la aplicación genera una respuesta la versión actualizada de la tarjeta de vista previa.
Depurar desde un entorno remoto
En esta sección, interactuarás con tu complemento de Google Workspace que se ejecuta en un entorno remoto.
Figura 9: Depurar desde un entorno remoto
Requisitos previos
- Se implementó y se instaló tu complemento de Google Workspace.
- Tu aplicación que se ejecuta en tu entorno remoto con el depurador
habilitado en un puerto determinado, se denomina
REMOTE_DEBUG_PORT
en las instrucciones de esta guía. - Tu entorno local puede
ssh
a tu entorno remoto. - Un IDE configurado en tu entorno local que puede depurar. Usamos la
Visual Studio Code
IDE y su configuración predeterminada funciones de depuración de este con fines ilustrativos.
Conecta tus entornos locales y remotos
En tu entorno local desde el que quieres iniciar un cliente de depuración de red, configura un túnel SSH:
ssh -L LOCAL_DEBUG_PORT:localhost:REMOTE_DEBUG_PORT REMOTE_USERNAME@REMOTE_ADDRESS
Reemplaza lo siguiente:
LOCAL_DEBUG_PORT
: Es el puerto de depuración en tu entorno local. en un entorno de nube.REMOTE_USERNAME
: Es el nombre de usuario en el entorno remoto.REMOTE_ADDRESS
: Es la dirección de tu entorno remoto.REMOTE_DEBUG_PORT
: Es el puerto de depuración del control remoto. en un entorno de nube.
El puerto de depuración en tu entorno local ahora está vinculado al puerto de depuración en tu en un entorno remoto.
Cómo iniciar la depuración
Desde el IDE de Visual Studio Code
instalado en tu entorno local, haz lo siguiente:
lo siguiente:
- En una ventana nueva, abre el código fuente de la app.
Crea el archivo
.vscode/launch.json
en el directorio raíz y configura una Inicia con el nombreDebug Remote
que se conecta al puerto de depuración en tu red local entorno: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 }] }
Reemplaza
LOCAL_DEBUG_PORT
por el puerto de depuración en tu entorno local.Agrega un punto de interrupción en el código fuente de tu app que detenga la solicitud HTTP. procesamiento y comenzar a ejecutar y depurando con la configuración
Debug Remote
que se agregó antes.
Interactúa con el complemento de Google Workspace instalado. Tu
El complemento de Google Workspace no responde porque se está usando activamente
depurado
en el IDE de Visual Studio Code
.
Temas relacionados
Aprende a consultar registros de errores.