Tutorial sui target ospitati

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
info

I tutorial seguenti spiegano come eseguire il deployment delle applicazioni Node.js in Edge utilizzando gli target ospitati, un ambiente di runtime Node.js nativo ospitato da Apigee.

I tutorial illustrano le seguenti attività:

  • Esegui il deployment di un'app Node.js in Destinazioni ospitate utilizzando l'interfaccia utente di Edge.
  • Deployment di un'app Node.js in destinazioni ospitate dal computer di sviluppo locale.
  • Migrazione di un proxy esistente con un'implementazione tradizionale del target Node.js Edge ai target ospitati.

Esegui il deployment di un'app Node.js in destinazioni ospitate utilizzando l'interfaccia utente Edge

In questo tutorial, eseguirai il deployment di una semplice app Node.js in Destinazioni ospitate utilizzando l'interfaccia utente di Edge. Una volta completato il tutorial, comprenderai la struttura di base e i contenuti di un proxy per le destinazioni ospitate e comprenderai come accedere ai file di log di deployment e creazione.

Accedi

  1. Vai a: apigee.com/edge
  2. Inserisci le tue credenziali di accesso Apigee per accedere.

Crea un nuovo proxy

  1. Nel menu di navigazione laterale, seleziona Sviluppa > Proxy API.
  2. Fai clic su + Proxy.
  3. Nella pagina Crea proxy, seleziona Destinazione ospitata.
  4. Fai clic su Avanti.
  5. Nel campo Nome proxy, inserisci hello-hosted-targets.
  6. Assicurati che sia selezionato Esempio "Hello World".
  7. Fai clic su Avanti.
  8. Nella pagina Sicurezza, seleziona Trasferisci (nessuno) per l'autorizzazione.
  9. Fai clic su Avanti.
  10. Fai clic su Avanti.
  11. Nella pagina Build, assicurati che sia selezionato l'ambiente test. Tieni presente che il tipo di proxy è Destinazioni ospitate.
  12. Fai clic su Crea ed esegui il deployment. Il completamento del deployment del proxy potrebbe richiedere alcuni istanti.
  13. Dopo aver eseguito il deployment del proxy, fai clic su Visualizza il proxy hello-hosted-targets nella parte inferiore della pagina.
  14. Chiama il proxy dell'API. Il modo più semplice per farlo è andare alla scheda Trace, avviare una sessione di Trace e fare clic su Invia. Dovresti ricevere lo stato 200 con la seguente risposta:
    {"date":"2018-09-26T14:23:04.550Z","msg":"Hello, World!"}

Esamina il proxy

  1. Nell'interfaccia utente di Edge, fai clic sulla scheda Sviluppa.
  2. In Navigator, seleziona predefinito in Endpoint target.
  3. Nell'editor di codice, noterai che sotto l'elemento <TargetEndpoint> è presente un elemento secondario <HostedTarget/> vuoto. Questo tag vuoto è obbligatorio. Comunica a Edge che la destinazione del proxy è un'applicazione di cui è stato eseguito il deployment nell'ambiente Hosted Destinazioni.

  4. Nel Navigator, controlla i contenuti nella sezione Script. I file dell'app Node.js sono elencati sotto l'etichetta hosted.

  5. Nell'interfaccia utente di Edge, esamina i file elencati in hosted in Script:
    • Il file app.yaml contiene le informazioni di configurazione. Ad esempio, puoi aggiungere variabili di ambiente che saranno disponibili per l'applicazione Node.js in fase di runtime. Per questo esempio non è necessario modificare questo file.
    • Il file index.js è il file principale dell'app Node.js.
    • Se l'app ha dipendenze del modulo, queste devono essere elencate in package.json.

Visualizza i file di log

I file di log delle applicazioni possono essere utili per il debug dei problemi che si verificano durante la fase di creazione e anche in fase di runtime.

  1. Nella UI di Edge, fai clic sulla scheda Sviluppo.
  2. Per visualizzare il log della build, fai clic su Log build.
  3. Per visualizzare il log di deployment, fai clic su Log di runtime.

    Vedi anche Accedere ai file di log.

Riepilogo

  • Hai eseguito il deployment di una semplice applicazione Node.js nell'ambiente Hosted Destinazioni e l'hai testata nella UI Edge.
  • Hai appreso che un proxy per i target ospitati richiede uno speciale tag vuoto nell'endpoint di destinazione chiamato <HostedTarget/>.
  • Hai imparato che Edge carica automaticamente le dipendenze dei moduli per te e che le dipendenze devono essere elencate nel file package.json.
  • Hai anche imparato a controllare i file di log di build e runtime.

Esegui il deployment di Node.js dal tuo sistema a Edge

Questa sezione spiega come eseguire il deployment di un'applicazione Node.js autonoma dal sistema locale a destinazione ospitata utilizzando apigeetool. L'utilità apigeetool raggruppa l'app Node.js in un nuovo proxy Hosted Destinazioni e ne esegue il deployment su Edge.

Installa apigeetool

L'utilizzo di apigeetool è il modo consigliato per gli sviluppatori di eseguire il deployment del codice proxy su Edge. Per installare apigeetool, esegui questo comando di NPM:

npm install -g apigeetool

Crea l'app Node.js

Per semplificare le cose, ti viene fornito il codice per una semplice app Node.js.

  1. Crea una directory per l'app Node.js. Chiama la directory node-hosted-express.
  2. cd alla nuova directory.
  3. Crea un file denominato index.js e copia al suo interno questo codice.
  4. var express = require('express')
    var app = express()
    
    app.get('/', function(req, res) {
        res.json({
            hello: "Hello World!"
        })
    })
    
    app.get('/hello/:name', function(req, res) {
        var name = req.params.name
        res.json({
            hello: "hello " + name
        })
    })
    
    var server = app.listen(process.env.PORT || 9000, function() {
        console.log('Listening on port %d', server.address().port)
    })
    
  5. Crea un file denominato package.json e copia al suo interno questo codice. Tieni presente che il modulo Express è elencato come dipendenza.
  6. {
        "name": "hello-world",
        "version": "1.0.0",
        "main": "index.js",
        "scripts": {
            "start": "node index.js --use_strict"
        },
        "author": "",
        "license": "",
        "dependencies": {
            "express": "^4.16.0"
        }
    }
    
  7. Crea un file denominato app.yaml e copia al suo interno questo codice:
  8. runtime: node
    runtimeVersion: 8
    application: my-express-app
    env:
      - name: NODE_ENV
        value: production
      - name: LOG_LEVEL
        value: 3
    
  9. Assicurati che la tua directory sia simile a questa:
    ls
    app.yaml index.js package.json
    

Revisione della struttura di directory richiesta per il codice dell'app

L'app Node.js deve avere la stessa struttura di un'app Node.js standard. Tuttavia, assicurati di aver seguito questi requisiti prima di eseguire il deployment con apigeetool in Edge:

  • Il file manifest app.yaml è obbligatorio e deve esistere nella directory radice della tua app. Per scoprire di più su questo file, consulta File manifest.
  • È richiesto un file package.json. Deve elencare le eventuali dipendenze richieste dall'app.
  • La cartella node_modules non è obbligatoria. Edge esegue npm install per te quando viene eseguito il deployment dell'app Node.js. Recupera le dipendenze da package.json. L'unico caso in cui devi fornire esplicitamente node_modules è se hai dei moduli personalizzati che non sono disponibili tramite npm.

Esegui il deployment del proxy

  1. In un terminale, esegui cd per accedere alla directory principale dell'applicazione Node.js.
  2. Esegui apigeetool con il comando deployhostedtarget:
  3. apigeetool deployhostedtarget -o org -e env -n proxy-name -b /node-hosted-express -u username

    dove -n è il nome che vuoi assegnare al nuovo proxy. Deve essere univoco all'interno dell'organizzazione. I caratteri che puoi utilizzare nel nome sono limitati ai seguenti: a-z0-9._\-$%

    Ad esempio:

    apigeetool deployhostedtarget -o myorg -e test -n node-hosted-express -b /node-hosted-express -u jdoe@apigee.com

    Per ulteriori informazioni sull'utilizzo di apigeetool, consulta https://github.com/apigee/apigeetool-node.

Testare il proxy

Puoi testare il proxy con un comando cURL, con un client REST come Postman, o nella UI Edge nello strumento Trace. Ecco un esempio di comando cURL.

curl http://myorg-test.apigee.net/node-hosted-express
     {"date":1506992197427,"msg":"hello-world"}

Ottenere i log di compilazione

I log di build mostrano l'output relativo al deployment e alla creazione dell'app Node.js. Vedi anche File di log.

apigeetool getlogs -u username -o org -e env --hosted-build -n proxy-name

Ad esempio:

apigeetool getlogs -u jdoe@apigee.com -o myorg -e test --hosted-build -n node-hosted-express

Recupero dei log di runtime

I log di runtime mostrano l'output relativo all'app in esecuzione. I log di runtime hanno come ambito l'ambiente e restituiscono i log per la revisione del proxy attualmente di cui è stato eseguito il deployment. Vedi anche File di log.

apigeetool getlogs -u username -o org -e env --hosted-runtime -n proxy-name

Ad esempio:

apigeetool getlogs -u jdoe@apigee.com -o myorg -e test --hosted-runtime -n node-hosted-express

Visualizzazione del proxy nella UI Edge

Una volta eseguito il deployment, puoi visualizzare e modificare il proxy nei proxy API della UI Edge.

Migrazione di un proxy Node.js esistente a un proxy di destinazioni ospitate

Questa sezione spiega come eseguire manualmente la migrazione di un proxy API Edge esistente che utilizza l'implementazione tradizionale dei target Node.js ai target ospitati. Viene inoltre spiegato come eseguire il deployment del proxy dopo aver eseguito i passaggi di migrazione.

I passaggi di migrazione preservano la struttura, i criteri, i flussi e altri elementi di configurazione del proxy API. Puoi eseguire la migrazione in quattro passaggi, come descritto di seguito, quindi eseguire il deployment del proxy migrato con apigeetool.

Passaggio 1: modifica la struttura del file del proxy

Per regolare la struttura dei file, il proxy API deve trovarsi nel file system locale. Se il proxy è stato implementato su Edge, devi scaricarlo prima di continuare. Nella configurazione tradizionale, il "bundle" di proxy perimetrale che include il codice Node.js segue questa struttura di file. Il codice dell'applicazione Node.js viene inserito nella directory resources/node:

apiproxy/
    policies/
    proxies/
    targets/
    resources/
      node/
        Your application code


Per i target ospitati, devi posizionare la directory principale della tua app Node.js in una directory denominata resources/hosted. È sufficiente creare una nuova directory denominata resources/hosted e spostarvi i contenuti di resources/node. Dopodiché potrai eliminare la directory resources/node.

apiproxy/
     policies/
     proxies/
     targets/
     resources/
       hosted/
         Your application code

Passaggio 2: aggiungi il file manifest

Crea un file manifest denominato app.yaml e posizionalo nella directory apiproxy/resources/hosted.

Di seguito è riportato un file app.yaml di esempio. Specifica che il runtime è Node.js (obbligatorio). Inoltre, crea una variabile di ambiente nell'ambiente di esecuzione (una variabile a cui l'app Node.js può accedere). La variabile di ambiente è facoltativa e viene mostrata qui solo come esempio. Per ulteriori dettagli ed esempi, vedi Il file manifest.

runtime: node
  env:
    - name: NODE_ENV
      value: production


L'esempio seguente mostra una struttura di progetto Node.js nella posizione corretta nel proxy per il deployment dei target ospitati:

apiproxy/
   resources/
      hosted/
        index.js
        node_modules/
        app.yaml
        package.json

Passaggio 3: assicurati di avere un file package.json

Nei proxy Edge Node.js tradizionali, package.json era facoltativo. Tuttavia, per i target ospitati devi fornirne uno nella directory apiproxy/resources/hosted. Assicurati di specificare in questo file eventuali dipendenze richieste per la tua app.

Passaggio 4: modifica l'endpoint di destinazione del proxy

Un proxy Node.js tradizionale richiede che nel file dell'endpoint di destinazione (in genere /apiproxy/targets/default.xml) sia presente un tag denominato <ScriptTarget>. Per i target ospitati, devi aggiungere un tag vuoto denominato <HostedTarget/>. Se nel file è presente un tag ScriptTarget, puoi semplicemente rimuoverlo. Ad esempio:

    <?xml version="1.0" encoding="UTF-8"?>
    <TargetEndpoint name="default">
       <Description />
       <FaultRules />
       <PreFlow name="PreFlow">
          <Request />
          <Response />
       </PreFlow>
       <PostFlow name="PostFlow">
          <Request />
          <Response />
       </PostFlow>
       <Flows />
       <HostedTarget />
    </TargetEndpoint>
    

Esegui il deployment del proxy

Ora puoi eseguire il deployment del proxy utilizzando il comando apigeetool deployproxy.

  1. cd nella directory principale del proxy: /apiproxy
  2. Utilizza questo comando per eseguire il deployment del proxy:
  3. apigeetool deployproxy -u username -o org -e env -n proxy-name -d .

    Ad esempio:

    apigeetool deployproxy -u jdoe -o docs -e test -n hello-world -d .

Per ulteriori informazioni sull'utilizzo di apigeetool, consulta: https://github.com/apigee/apigeetool-node/blob/master/README.md.

Testare il proxy

Puoi testare il proxy con un comando cURL, con un client REST come Postman, o nella UI Edge nello strumento Trace. Ecco un esempio di comando cURL:

curl http://myorg-test.apigee.net/hello-world
Hello,World!