Jako programista dodatków do Google Workspace możesz potrzebować debugowania kodu, aby przetestować zmiany lub rozwiązać złożone problemy. Debugowanie dodatków do Google Workspace można przeprowadzać na wiele różnych sposobów w zależności od architektury aplikacji, jej funkcji, sposobu wdrażania i Twoich preferencji.
Na tej stronie dowiesz się, jak debugować dodatek HTTP do Google Workspace za pomocą ngrok, czyli ujednoliconej platformy wejścia, której możesz używać do testowania lokalnych środowisk programistycznych. W tym przewodniku przetestujesz zmiany w kodzie w środowisku lokalnym i rozwiążesz problemy w środowisku zdalnym.
Debugowanie w lokalnym środowisku programistycznym
W tej sekcji możesz korzystać z dodatku do Google Workspace, który działa w środowisku lokalnym.
Wymagania wstępne
Node.js
- Najnowsze wersje
nodeinpmzainstalowane w środowisku lokalnym. Najnowsza wersja
nodemonzainstalowana w środowisku lokalnym. Jest używana do automatycznego doładowywania:npm install -g nodemonProjekt Google Cloud. Postępuj zgodnie z instrukcjami w sekcjach Wymagania wstępne i Konfigurowanie środowiska w krótkim wprowadzeniu.
Kod dodatku Google Workspace do debugowania w środowisku lokalnym. W tym przewodniku używamy funkcji linku podglądu z przykładowego kodu
3p-resourcesz repozytorium GitHubgoogleworkspace/add-ons-samplesw celach ilustracyjnych.Środowisko IDE skonfigurowane w środowisku lokalnym, które umożliwia debugowanie. W tym przewodniku używamy
Visual Studio CodeIDE i jego domyślnych funkcji debugowania w celach ilustracyjnych.Konto
ngrok.Najnowsza wersja pakietu
gcloudzainstalowana i zainicjowana w środowisku lokalnym.
Python
- Najnowsza wersja
python3zainstalowana w środowisku lokalnym. - Najnowsza wersja
pipivirtualenvzainstalowana w środowisku lokalnym. Służą one do zarządzania pakietami Pythona i wirtualnymi środowiskami. - Projekt Google Cloud. Postępuj zgodnie z instrukcjami w sekcjach Wymagania wstępne i Konfigurowanie środowiska w krótkim wprowadzeniu.
- Kod dodatku Google Workspace do debugowania w środowisku lokalnym. W tym przewodniku używamy funkcji linku podglądu z przykładowego kodu
3p-resourcesz repozytorium GitHubgoogleworkspace/add-ons-samplesw celach ilustracyjnych. - Środowisko IDE skonfigurowane w środowisku lokalnym, które umożliwia debugowanie. W tym przewodniku używamy
Visual Studio CodeIDE i jego domyślnych funkcji debugowania w celach ilustracyjnych. - Konto
ngrok. - Najnowsza wersja pakietu
gcloudzainstalowana i zainicjowana w środowisku lokalnym.
Java
- Najnowsza stabilna wersja
Java SE 11's JDKzainstalowana w środowisku lokalnym. - Najnowsza wersja
Apache Mavenzainstalowana w środowisku lokalnym. Służy do zarządzania projektami Java. - Projekt Google Cloud. Postępuj zgodnie z instrukcjami w sekcjach Wymagania wstępne i Konfigurowanie środowiska w krótkim wprowadzeniu.
- Kod dodatku Google Workspace do debugowania w środowisku lokalnym. W tym przewodniku używamy funkcji linku podglądu z przykładowego kodu
3p-resourcesz repozytorium GitHubgoogleworkspace/add-ons-samplesw celach ilustracyjnych. - Środowisko IDE skonfigurowane w środowisku lokalnym, które umożliwia debugowanie. W tym przewodniku używamy
Visual Studio CodeIDE i jego domyślnych funkcji debugowania w celach ilustracyjnych. - Konto
ngrok. - Najnowsza wersja pakietu
gcloudzainstalowana i zainicjowana w środowisku lokalnym.
Udostępnianie usługi localhost publicznie
Musisz połączyć środowisko lokalne z internetem, aby dodatek Google Workspace mógł uzyskać do niego dostęp. ngrok Aplikacja służy do przekierowywania żądań HTTP wysyłanych pod publiczny adres URL do środowiska lokalnego.
- W przeglądarce w środowisku lokalnym zaloguj się na konto
ngrok. - Zainstaluj aplikację i skonfiguruj
authtokenw środowisku lokalnym. - Utwórz domenę statyczną na koncie
ngrok. W instrukcjach w tym przewodniku jest ona oznaczona jakoNGROK_STATIC_DOMAIN.
Tworzenie i instalowanie wdrożenia dodatku
Skonfiguruj dodatek do Google Workspace tak, aby wysyłał wszystkie żądania HTTP do Twojej statycznej domeny. Plik wdrożenia powinien wyglądać tak:
{ "oauthScopes": [ "https://www.googleapis.com/auth/workspace.linkpreview", "https://www.googleapis.com/auth/workspace.linkcreate" ], "addOns": { "common": { "name": "Manage support cases", "logoUrl": "https://developers.google.com/workspace/add-ons/images/support-icon.png", "layoutProperties": { "primaryColor": "#dd4b39" } }, "docs": { "linkPreviewTriggers": [ { "runFunction": "NGROK_STATIC_DOMAIN", "patterns": [ { "hostPattern": "example.com", "pathPrefix": "support/cases" }, { "hostPattern": "*.example.com", "pathPrefix": "cases" }, { "hostPattern": "cases.example.com" } ], "labelText": "Support case", "localizedLabelText": { "es": "Caso de soporte" }, "logoUrl": "https://developers.google.com/workspace/add-ons/images/support-icon.png" } ], "createActionTriggers": [ { "id": "createCase", "labelText": "Create support case", "localizedLabelText": { "es": "Crear caso de soporte" }, "runFunction": "$URL2", "logoUrl": "https://developers.google.com/workspace/add-ons/images/support-icon.png" } ] }, "httpOptions": { "granularOauthPermissionSupport": "OPT_IN" } } }Zastąp
NGROK_STATIC_DOMAINstatyczną domeną na konciengrok.Ustaw projekt Google Cloud, którego chcesz używać:
gcloud config set project PROJECT_IDUzyskaj nowe dane logowania użytkownika, aby używać ich w domyślnych danych logowania aplikacji:
gcloud auth application-default loginZastąp
PROJECT_IDidentyfikatorem projektu projektu Google Cloud aplikacji.Utwórz wdrożenie:
gcloud workspace-add-ons deployments create manageSupportCases \ --deployment-file=DEPLOYMENT_FILE_PATHZastąp
DEPLOYMENT_FILE_PATHścieżką do pliku wdrożenia.Zainstaluj wdrożenie:
gcloud workspace-add-ons deployments install manageSupportCasesRysunek 2. Dodatek do Google Workspace wysyła wszystkie żądania HTTP do domeny statycznej. Usługa publiczna `ngrok` działa jako pomost między dodatkiem do Google Workspace a kodem aplikacji, który jest wykonywany lokalnie.
Testowanie dodatku do Google Workspace
Dodatek do Google Workspace możesz wdrażać, testować, debugować i automatycznie przeładowywać lokalnie.
Node.js
W
Visual Studio CodeIDE zainstalowanym w środowisku lokalnym wykonaj te czynności:- W nowym oknie otwórz folder
add-ons-samples/node/3p-resources. Skonfiguruj aplikację do lokalnego uruchamiania i automatycznego przeładowywania debugowania, dodając 1 zależność i 2 skrypty w pliku
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" } ... }Zainstaluj aplikację z katalogu głównego:
npm installUtwórz i skonfiguruj uruchomienie o nazwie
Debug Watch, które wywołuje skryptdebug-watch, tworząc plik.vscode/launch.jsonw katalogu głównym:{ "version": "0.2.0", "configurations": [{ "type": "node", "request": "launch", "name": "Debug Watch", "cwd": "${workspaceRoot}", "runtimeExecutable": "npm", "runtimeArgs": ["run-script", "debug-watch"] }] }Dodaj punkt przerwania, który wstrzymuje przetwarzanie żądania HTTP w pliku
index.js, i rozpocznij uruchamianie i debugowanie za pomocą dodanej wcześniej konfiguracjiDebug Watch. Aplikacja działa i nasłuchuje żądań HTTP na porcie9000.
Rysunek 3. Aplikacja działa i nasłuchuje żądań HTTP na porcie 9000.
- W nowym oknie otwórz folder
Uruchom aplikację
ngrokw środowisku lokalnym:ngrok http --domain=NGROK_STATIC_DOMAIN 9000Zastąp
NGROK_STATIC_DOMAINstatyczną domeną na konciengrok. Wszystkie żądania są teraz przekierowywane do środowiska lokalnego i portu używanego przez aplikację.
Rysunek 4. Terminal z .ngrokdziałającym serwerem i przekierowaniemAplikacja
ngrokuruchamia też interfejs internetowy na Twoim lokalnym hoście. Możesz monitorować wszystkie działania, otwierając go w przeglądarce.
Rysunek 5. Interfejs internetowy hostowany przez aplikację ngrok, który nie pokazuje żadnych żądań HTTP.Przetestuj dodatek do Google Workspace, wyświetlając podgląd adresu URL zgłoszenia w nowym dokumencie Google z kontem testera:
Utwórz dokument Google.
Wpisz ten link i naciśnij
enter:https://example.com/support/case/?name=Name1&description=Description1&priority=P1Kliknij link.
W
Visual Studio Codew środowisku lokalnym możesz zobaczyć, że wykonanie zostało wstrzymane w ustawionym punkcie przerwania.
Rysunek 6. Wykonywanie jest wstrzymane w ustawionym punkcie przerwania. Gdy wznowisz wykonywanie w
Visual Studio Codedebuggerze zanim dodatki do Google Workspace przekroczą limit czasu, dodatek do Google Workspace wyświetli podgląd linku w Dokumencie Google z pamięci podręcznej.Dzienniki żądań i odpowiedzi HTTP możesz sprawdzić w interfejsie internetowym hostowanym przez aplikację
ngrokw środowisku lokalnym.
Rysunek 7. Żądanie HTTP z interfejsu internetowego hostowanego przez aplikację ngrok.Aby zmienić działanie aplikacji, zastąp
CaseciągiemCase:w wierszu51w plikuindex.js. Gdy zapiszesz plik,nodemonautomatycznie ponownie załaduje aplikację ze zaktualizowanym kodem źródłowym, aVisual Studio Codepozostanie w trybie debugowania.
Rysunek 8. Aplikacja działa i nasłuchuje żądań HTTP na porcie 9000ze wczytaną zmianą kodu.Tym razem zamiast klikać link i czekać kilka sekund w nowym dokumencie Google możesz wybrać ostatnie żądanie HTTP zarejestrowane w interfejsie internetowym hostowanym przez aplikację
ngrokw środowisku lokalnym i kliknąćReplay. Podobnie jak ostatnio, dodatek do Google Workspace nie odpowiada, ponieważ jest aktywnie debugowany.Gdy wznowisz wykonywanie w debuggerze
Visual Studio Code, w interfejsie internetowym hostowanym przez aplikacjęngrokw środowisku lokalnym zobaczysz, że aplikacja generuje odpowiedź ze zaktualizowaną wersją karty podglądu.
Python
W
Visual Studio CodeIDE zainstalowanym w środowisku lokalnym wykonaj te czynności:- W nowym oknie otwórz folder
add-ons-samples/python/3p-resources/create_link_preview. Utwórz środowisko wirtualne dla Pythona
envi aktywuj je:virtualenv envsource env/bin/activateZainstaluj wszystkie zależności projektu za pomocą polecenia
pipw środowisku wirtualnym:pip install -r requirements.txtUtwórz w katalogu głównym plik
.vscode/launch.jsoni skonfiguruj uruchomienie o nazwieDebug Watch, które uruchamia aplikację z modułufunctions-frameworkna porcie9000w trybie debugowania w środowisku wirtualnymenv:{ "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" ] }] }Dodaj punkt przerwania, który wstrzymuje przetwarzanie żądania HTTP w pliku
main.py, i rozpocznij uruchamianie i debugowanie za pomocą dodanej wcześniej konfiguracjiDebug Watch. Aplikacja działa i nasłuchuje żądań HTTP na porcie9000.
Rysunek 3. Aplikacja działa i nasłuchuje żądań HTTP na porcie 9000.
- W nowym oknie otwórz folder
Uruchom aplikację
ngrokw środowisku lokalnym:ngrok http --domain=NGROK_STATIC_DOMAIN 9000Zastąp
NGROK_STATIC_DOMAINstatyczną domeną na konciengrok. Wszystkie żądania są teraz przekierowywane do środowiska lokalnego i portu używanego przez aplikację.
Rysunek 4. Terminal z .ngrokdziałającym serwerem i przekierowaniemAplikacja
ngrokuruchamia też interfejs internetowy na Twoim lokalnym hoście. Monitoruj wszystkie działania, otwierając go w przeglądarce.
Rysunek 5. Interfejs internetowy hostowany przez aplikację ngrok, który nie pokazuje żadnych żądań HTTP.Przetestuj dodatek do Google Workspace, wyświetlając podgląd adresu URL zgłoszenia w nowym dokumencie Google z kontem testera:
Utwórz dokument Google.
Wpisz ten link i naciśnij
enter:https://example.com/support/case/?name=Name1&description=Description1&priority=P1Kliknij link.
W
Visual Studio Codew środowisku lokalnym możesz zobaczyć, że wykonanie zostało wstrzymane w ustawionym punkcie przerwania.
Rysunek 6. Wykonywanie jest wstrzymane w ustawionym punkcie przerwania. Gdy wznowisz wykonywanie w
Visual Studio Codedebuggerze zanim dodatki do Google Workspace przekroczą limit czasu, dodatek do Google Workspace wyświetli podgląd linku w Dokumencie Google z pamięci podręcznej.Dzienniki żądań i odpowiedzi HTTP możesz sprawdzić w interfejsie internetowym hostowanym przez aplikację
ngrokw środowisku lokalnym.
Rysunek 7. Żądanie HTTP z interfejsu internetowego hostowanego przez aplikację ngrok.Aby zmienić działanie aplikacji, zastąp
CaseciągiemCase:w wierszu56w plikumain.py. Gdy zapiszesz plik,Visual Studio Codeaplikacja automatycznie wczyta się ponownie ze zaktualizowanym kodem źródłowym i pozostanie w trybie debugowania.
Rysunek 8. Aplikacja działa i nasłuchuje żądań HTTP na porcie 9000ze wczytaną zmianą kodu.Tym razem zamiast klikać link i czekać kilka sekund w nowym dokumencie Google możesz wybrać ostatnie żądanie HTTP zarejestrowane w interfejsie internetowym hostowanym przez aplikację
ngrokw środowisku lokalnym i kliknąćReplay. Podobnie jak ostatnio, dodatek do Google Workspace nie odpowiada, ponieważ jest aktywnie debugowany.Gdy wznowisz wykonywanie w debuggerze
Visual Studio Code, w interfejsie internetowym hostowanym przez aplikacjęngrokw środowisku lokalnym zobaczysz, że aplikacja generuje odpowiedź ze zaktualizowaną wersją karty podglądu.
Java
W
Visual Studio CodeIDE zainstalowanym w środowisku lokalnym wykonaj te czynności:- W nowym oknie otwórz folder
add-ons-samples/java/3p-resources. Skonfiguruj projekt Maven, aby uruchamiać aplikację
CreateLinkPreviewlokalnie na porcie9000, dodając wtyczkę kompilacji Cloud Functions Frameworkfunction-maven-plugindo plikupom.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> ...Teraz możesz uruchomić go lokalnie w trybie debugowania:
mvnDebug function:run Preparing to execute Maven in debug mode Listening for transport dt_socket at address: 8000Utwórz w katalogu głównym plik
.vscode/launch.jsoni skonfiguruj uruchomienie o nazwieRemote Debug Watch, które dołącza do aplikacji uruchomionej wcześniej na porcie8000:{ "version": "0.2.0", "configurations": [{ "type": "java", "request": "attach", "name": "Remote Debug Watch", "projectName": "http-function", "hostName": "localhost", "port": 8000 }] }Dodaj punkt przerwania, który wstrzymuje przetwarzanie żądania HTTP w pliku
CreateLinkPreview.java, i rozpocznij dołączanie i debugowanie za pomocą dodanej wcześniej konfiguracjiRemote Debug Watch. Aplikacja działa i nasłuchuje żądań HTTP na porcie9000.
Rysunek 3. Aplikacja działa i nasłuchuje żądań HTTP na porcie 9000.
- W nowym oknie otwórz folder
Uruchom aplikację
ngrokw środowisku lokalnym:ngrok http --domain=NGROK_STATIC_DOMAIN 9000Zastąp
NGROK_STATIC_DOMAINstatyczną domeną na konciengrok. Wszystkie żądania są teraz przekierowywane do środowiska lokalnego i portu używanego przez aplikację.
Rysunek 4. Terminal z .ngrokdziałającym serwerem i przekierowaniemAplikacja
ngrokuruchamia też interfejs internetowy na Twoim lokalnym hoście. Monitoruj wszystkie działania, otwierając go w przeglądarce.
Rysunek 5. Interfejs internetowy hostowany przez aplikację ngrok, który nie pokazuje żadnych żądań HTTP.Przetestuj dodatek do Google Workspace, wyświetlając podgląd adresu URL zgłoszenia w nowym dokumencie Google z kontem testera:
Utwórz dokument Google.
Wpisz ten link i naciśnij
enter:https://example.com/support/case/?name=Name1&description=Description1&priority=P1Kliknij link.
W
Visual Studio Codew środowisku lokalnym możesz zobaczyć, że wykonanie zostało wstrzymane w ustawionym punkcie przerwania.
Rysunek 6. Wykonywanie jest wstrzymane w ustawionym punkcie przerwania. Gdy wznowisz wykonywanie w
Visual Studio Codedebuggerze zanim dodatki do Google Workspace przekroczą limit czasu, dodatek do Google Workspace wyświetli podgląd linku w Dokumencie Google z pamięci podręcznej.Dzienniki żądań i odpowiedzi HTTP możesz sprawdzić w interfejsie internetowym hostowanym przez aplikację
ngrokw środowisku lokalnym.
Rysunek 7. Żądanie HTTP z interfejsu internetowego hostowanego przez aplikację ngrok.Aby zmienić działanie aplikacji, zastąp
CasesłowemCase:w wierszu78w plikuCreateLinkPreview.java, uruchom ponownie procesmvnDebugi ponownie uruchomRemote Debug Watch, aby ponownie podłączyć i uruchomić debugowanie.Tym razem zamiast klikać link i czekać kilka sekund w nowym dokumencie Google możesz wybrać ostatnie żądanie HTTP zarejestrowane w interfejsie internetowym hostowanym przez aplikację
ngrokw środowisku lokalnym i kliknąćReplay. Podobnie jak ostatnio, dodatek do Google Workspace nie odpowiada, ponieważ jest aktywnie debugowany.Gdy wznowisz wykonywanie w debuggerze
Visual Studio Code, w interfejsie internetowym hostowanym przez aplikacjęngrokw środowisku lokalnym zobaczysz, że aplikacja generuje odpowiedź ze zaktualizowaną wersją karty podglądu.
Debugowanie w środowisku zdalnym
W tej sekcji możesz korzystać z dodatku do Google Workspace, który działa w środowisku zdalnym.
Wymagania wstępne
- Dodatek do Google Workspace zostanie wdrożony i zainstalowany.
- Aplikacja działa w środowisku zdalnym z włączonym debugerem na danym porcie i jest oznaczona jako
REMOTE_DEBUG_PORTw instrukcjach tego przewodnika. - Środowisko lokalne może
sshze środowiskiem zdalnym. - W środowisku lokalnym skonfigurowano środowisko IDE, które może debugować. W tym przewodniku używamy
Visual Studio CodeIDE i jego domyślnych funkcji debugowania w celach ilustracyjnych.
Łączenie środowisk lokalnego i zdalnego
W środowisku lokalnym, z którego chcesz zainicjować połączenie klienta debugowania, skonfiguruj tunel SSH:
ssh -L LOCAL_DEBUG_PORT:localhost:REMOTE_DEBUG_PORT REMOTE_USERNAME@REMOTE_ADDRESSZastąp następujące elementy:
LOCAL_DEBUG_PORT: Port debugowania w środowisku lokalnym.REMOTE_USERNAME: Nazwa użytkownika w środowisku zdalnym.REMOTE_ADDRESS: Adres zdalnego środowiska.REMOTE_DEBUG_PORT: Port debugowania w środowisku zdalnym.
Port debugowania w środowisku lokalnym jest teraz połączony z portem debugowania w środowisku zdalnym.
Rozpoczynanie debugowania
W środowisku Visual Studio Code IDE zainstalowanym w środowisku lokalnym wykonaj te czynności:
- W nowym oknie otwórz kod źródłowy aplikacji.
Utwórz w katalogu głównym plik
.vscode/launch.jsoni skonfiguruj uruchomienie o nazwieDebug Remote, które będzie się łączyć z portem debugowania w środowisku lokalnym: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 }] }Zastąp
LOCAL_DEBUG_PORTportem debugowania w środowisku lokalnym.Dodaj w kodzie źródłowym aplikacji punkt przerwania, który wstrzyma przetwarzanie żądania HTTP, a następnie uruchom i debuguj aplikację za pomocą dodanej wcześniej konfiguracji
Debug Remote.Korzystaj z zainstalowanego dodatku do Google Workspace. Dodatek do Google Workspace nie odpowiada, ponieważ jest aktywnie debugowany w
Visual Studio CodeIDE.
Powiązane artykuły
- Dowiedz się, jak tworzyć zapytania do logów błędów.