Testare e eseguire il debug dei componenti aggiuntivi di Google Workspace HTTP

In qualità di sviluppatore di componenti aggiuntivi di Google Workspace, potresti dover eseguire il debug del codice per testare le modifiche o risolvere problemi complessi. Il debug dei componenti aggiuntivi di Google Workspace può essere eseguito in molti modi diversi a seconda dell'architettura dell'app, di cosa fa l'app, di come viene implementata e delle tue preferenze.

Questa pagina spiega come eseguire il debug di un componente aggiuntivo Google Workspace HTTP utilizzando ngrok, una piattaforma di ingresso unificata che puoi utilizzare per testare gli ambienti di sviluppo locali. In questa guida, testerai le modifiche al codice in un ambiente locale e risolverai i problemi in un ambiente remoto.

Eseguire il debug dall'ambiente di sviluppo locale

In questa sezione interagisci con il componente aggiuntivo Google Workspace che viene eseguito nel tuo ambiente locale.

Esegui il debug in un ambiente di sviluppo locale.
Figura 1. Esegui il debug in un ambiente di sviluppo locale.

Prerequisiti

Node.js

  • Le versioni più recenti di node e npm installate nell'ambiente locale.
  • L'ultima versione di nodemon installata nel tuo ambiente locale. Viene utilizzata per la ricarica automatica:

    npm install -g nodemon
  • Un progetto Google Cloud. Puoi seguire le sezioni Prerequisiti e Configurare l'ambiente della guida rapida.

  • Il codice del componente aggiuntivo Google Workspace da eseguire il debug nel tuo ambiente locale. In questa guida utilizziamo le funzionalità del link di anteprima dell'esempio di codice 3p-resources del repository GitHub googleworkspace/add-ons-samples a scopo illustrativo.

  • Un IDE configurato nel tuo ambiente locale in grado di eseguire il debug. In questa guida utilizziamo l'IDE Visual Studio Code e le relative funzionalità di debug predefinite a scopo illustrativo.

  • Un account ngrok.

  • L'ultima versione di gcloud installata e inizializzata nel tuo ambiente locale.

Python

  • La versione più recente di python3 installata nel tuo ambiente locale.
  • L'ultima versione di pip e virtualenv installata nel tuo ambiente locale. Vengono utilizzati per gestire rispettivamente i pacchetti Python e gli ambienti virtuali.
  • Un progetto Google Cloud. Puoi seguire le sezioni Prerequisiti e Configurare l'ambiente della guida rapida.
  • Il codice del componente aggiuntivo Google Workspace da eseguire il debug nel tuo ambiente locale. In questa guida utilizziamo le funzionalità del link di anteprima dell'esempio di codice 3p-resources del repository GitHub googleworkspace/add-ons-samples a scopo illustrativo.
  • Un IDE configurato nel tuo ambiente locale in grado di eseguire il debug. In questa guida utilizziamo l'IDE Visual Studio Code e le relative funzionalità di debug predefinite a scopo illustrativo.
  • Un account ngrok.
  • L'ultima versione di gcloud installata e inizializzata nel tuo ambiente locale.

Java

  • L'ultima versione stabile di Java SE 11's JDK installata nel tuo ambiente locale.
  • La versione più recente di Apache Maven installata nel tuo ambiente locale. Viene utilizzato per gestire i progetti Java.
  • Un progetto Google Cloud. Puoi seguire le sezioni Prerequisiti e Configurare l'ambiente della guida rapida.
  • Il codice del componente aggiuntivo Google Workspace da eseguire il debug nel tuo ambiente locale. In questa guida utilizziamo le funzionalità del link di anteprima dell'esempio di codice 3p-resources del repository GitHub googleworkspace/add-ons-samples a scopo illustrativo.
  • Un IDE configurato nel tuo ambiente locale in grado di eseguire il debug. In questa guida utilizziamo l'IDE Visual Studio Code e le relative funzionalità di debug predefinite a scopo illustrativo.
  • Un account ngrok.
  • L'ultima versione di gcloud installata e inizializzata nel tuo ambiente locale.

Rendere disponibile pubblicamente il servizio localhost

Devi connettere il tuo ambiente locale a internet in modo che il componente aggiuntivo Google Workspace possa accedervi. L'applicazione ngrok viene utilizzata per reindirizzare le richieste HTTP effettuate a un URL pubblico al tuo ambiente locale.

  1. In un browser nel tuo ambiente locale, accedi al tuo account ngrok.
  2. Installa l'applicazione e configura authtoken nel tuo ambiente locale.
  3. Crea un dominio statico nel tuo account ngrok, a cui viene fatto riferimento come NGROK_STATIC_DOMAIN nelle istruzioni di questa guida.

Creare e installare il deployment del componente aggiuntivo

  1. Configura il componente aggiuntivo Google Workspace in modo che invii tutte le richieste HTTP al tuo dominio statico. Il file di deployment dovrebbe avere il seguente aspetto:

    {
      "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"
        }
      }
    }
    

    Sostituisci NGROK_STATIC_DOMAIN con il dominio statico nel tuo account ngrok.

  2. Imposta il progetto Google Cloud da utilizzare:

    gcloud config set project PROJECT_ID
  3. Acquisisci nuove credenziali utente da utilizzare per le credenziali predefinite dell'applicazione:

    gcloud auth application-default login

    Sostituisci PROJECT_ID con l'ID progetto del progetto Google Cloud dell'app.

  4. Crea il deployment:

    gcloud workspace-add-ons deployments create manageSupportCases \
        --deployment-file=DEPLOYMENT_FILE_PATH

    Sostituisci DEPLOYMENT_FILE_PATH con il percorso del file di deployment.

  5. Installa il deployment:

    gcloud workspace-add-ons deployments install manageSupportCases
    Il componente aggiuntivo Google Workspace invia tutte le richieste HTTP al dominio statico.
    Figura 2. Il componente aggiuntivo Google Workspace invia tutte le richieste HTTP al dominio statico. Il servizio pubblico `ngrok` funge da ponte tra il componente aggiuntivo Google Workspace e il codice dell'applicazione che viene eseguito localmente.

Testare il componente aggiuntivo di Google Workspace

Puoi eseguire il deployment, testare, eseguire il debug e ricaricare automaticamente il componente aggiuntivo Google Workspace in locale.

Node.js

  1. Dall'IDE Visual Studio Code installato nel tuo ambiente locale, fai quanto segue:

    1. In una nuova finestra, apri la cartella add-ons-samples/node/3p-resources.
    2. Configura l'applicazione per l'esecuzione locale e il debug con ricarica automatica aggiungendo una dipendenza e due script nel file 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"
          }
          ...
      }
      
    3. Dalla directory principale, installa l'applicazione:

      npm install
    4. Crea e configura un lancio denominato Debug Watch che attiva lo script debug-watch creando il file .vscode/launch.json nella directory principale:

      {
          "version": "0.2.0",
          "configurations": [{
              "type": "node",
              "request": "launch",
              "name": "Debug Watch",
              "cwd": "${workspaceRoot}",
              "runtimeExecutable": "npm",
              "runtimeArgs": ["run-script", "debug-watch"]
          }]
      }
      
    5. Aggiungi un punto di interruzione che sospende l'elaborazione della richiesta HTTP nel file index.js e avvia l'esecuzione e il debug con la configurazione Debug Watch aggiunta in precedenza. L'applicazione è ora in esecuzione e rimane in ascolto delle richieste HTTP sulla porta 9000.

      L'applicazione è in esecuzione e rimane in attesa delle richieste HTTP sulla porta 9000.
      Figura 3. L'applicazione è in esecuzione e rimane in ascolto delle richieste HTTP sulla porta 9000.
  2. Avvia l'applicazione ngrok nel tuo ambiente locale:

    ngrok http --domain=NGROK_STATIC_DOMAIN 9000

    Sostituisci NGROK_STATIC_DOMAIN con il dominio statico nel tuo account ngrok. Tutte le richieste vengono ora reindirizzate al tuo ambiente locale e alla porta utilizzata dall'applicazione.

    Il terminale con il server ngrok in esecuzione e il reindirizzamento.
    Figura 4. Il terminale con il server ngrok in esecuzione e il reindirizzamento.
  3. L'applicazione ngrok avvia anche un'interfaccia web su localhost. Puoi monitorare tutte le attività aprendole in un browser.

    L'interfaccia web ospitata dall'applicazione ngrok che non mostra richieste HTTP.
    Figura 5. L'interfaccia web ospitata dall'applicazione ngrok che non mostra richieste HTTP.
  4. Testa il componente aggiuntivo Google Workspace visualizzando l'anteprima di un URL di una richiesta in un nuovo documento Google con un account tester:

    • Crea un documento Google.

      Creare un documento Google

    • Digita il seguente link e premi enter:

      https://example.com/support/case/?name=Name1&description=Description1&priority=P1
      
    • Fai clic sul link.

  5. In Visual Studio Code nel tuo ambiente locale, puoi vedere che l'esecuzione è in pausa nel punto di interruzione impostato.

    L'esecuzione è in pausa nel punto di interruzione impostato.
    Figura 6. L'esecuzione è in pausa nel punto di interruzione impostato.
  6. Quando riprendi l'esecuzione dal Visual Studio Codedebugger prima del timeout dei componenti aggiuntivi Google Workspace, il componente aggiuntivo Google Workspace mostra l'anteprima del link nel documento Google dalla cache.

  7. Puoi controllare i log delle richieste e delle risposte HTTP dall'interfaccia web ospitata dall'applicazione ngrok nel tuo ambiente locale.

    La richiesta HTTP dall'interfaccia web ospitata dall'applicazione ngrok.
    Figura 7. La richiesta HTTP dall'interfaccia web ospitata dall'applicazione ngrok.
  8. Per modificare il comportamento dell'applicazione, sostituisci Case con Case: nella riga 51 di index.js. Quando salvi il file, nodemon ricarica automaticamente l'applicazione con il codice sorgente aggiornato e Visual Studio Code rimane in modalità di debug.

    L'applicazione è in esecuzione e rimane in ascolto delle richieste HTTP sulla porta 9000 con la modifica del codice caricata.
    Figura 8. L'applicazione è in esecuzione e rimane in ascolto delle richieste HTTP sulla porta 9000 con la modifica del codice caricata.
  9. Questa volta, anziché fare clic sul link e attendere qualche secondo in un nuovo documento Google, puoi selezionare l'ultima richiesta HTTP registrata nell'interfaccia web ospitata dall'applicazione ngrok nel tuo ambiente locale e fare clic su Replay. Come l'ultima volta, il tuo componente aggiuntivo Google Workspace non risponde perché è in fase di debug attivo.

  10. Quando riprendi l'esecuzione dal debugger Visual Studio Code, puoi vedere dall'interfaccia web ospitata dall'applicazione ngrok nel tuo ambiente locale che l'applicazione genera una risposta con la versione aggiornata della scheda di anteprima.

Python

  1. Dall'IDE Visual Studio Code installato nel tuo ambiente locale, fai quanto segue:

    1. In una nuova finestra, apri la cartella add-ons-samples/python/3p-resources/create_link_preview.
    2. Crea un ambiente virtuale per Python env e attivalo:

      virtualenv env
      source env/bin/activate
    3. Installa tutte le dipendenze del progetto utilizzando pip nell'ambiente virtuale:

      pip install -r requirements.txt
    4. Crea il file .vscode/launch.json nella directory principale e configura un avvio denominato Debug Watch che attiva l'applicazione dal modulo functions-framework sulla porta 9000 in modalità di debug nell'ambiente virtuale env:

      {
          "version": "0.2.0",
          "configurations": [{
              "type": "python",
              "request": "launch"