Tutorial sui target ospitati

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

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

I tutorial illustrano le seguenti attività:

  • Deployment di un'app Node.js nelle destinazioni ospitate utilizzando l'interfaccia utente Edge.
  • Deployment di un'app Node.js nelle destinazioni ospitate dalla tua macchina di sviluppo locale.
  • Migrazione di un proxy esistente con un'implementazione tradizionale di destinazione Node.js Edge alle destinazioni ospitate.

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

In questo tutorial, eseguirai il deployment di una semplice app Node.js nelle destinazioni ospitate utilizzando l'interfaccia utente perimetrale. Al termine del tutorial, comprenderai la struttura e i contenuti di base di un proxy di destinazioni in hosting e imparerai ad accedere al deployment e a creare file di log.

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 Sviluppo > 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 l'opzione Esempio "Hello World" sia selezionato.
  7. Fai clic su Avanti.
  8. Nella pagina Sicurezza, seleziona Passthrough (nessuno) per Autorizzazione.
  9. Fai clic su Avanti.
  10. Fai clic su Avanti.
  11. Nella pagina Crea, assicurati che sia selezionato l'ambiente di test. Nota che il tipo di proxy è Target ospitati.
  12. Fai clic su Crea ed esegui il deployment. Il completamento del deployment del proxy potrebbe richiedere alcuni istanti.
  13. Una volta eseguito il deployment del proxy, fai clic su Visualizza proxy hello-hosted-targets nella parte inferiore della pagina.
  14. Chiama il proxy API. Il modo più semplice per farlo è andare alla scheda Trace, avviare una sessione di Trace e fare clic su Invia. Dovresti ricevere uno 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 Sviluppo.
  2. Nel menu di navigazione, seleziona default in Endpoint di destinazione.
  3. Nell'editor di codice, nota che sotto l'elemento <TargetEndpoint> c'è un elemento secondario <HostedTarget/> vuoto. Questo tag vuoto è obbligatorio. Comunica a Edge che la destinazione del proxy è un'applicazione di cui viene eseguito il deployment nell'ambiente Destinazioni ospitate.

  4. Nella barra di navigazione, osserva il contenuto della sezione Script. I file dell'app Node.js sono elencati sotto l'etichetta hosted.

  5. Nella UI di Edge, esamina i file elencati nella sezione hosted in Script:
    • Il file app.yaml contiene 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 il file.
    • Il file index.js è il file principale dell'app Node.js.
    • Se la tua app ha dipendenze dei moduli, queste devono essere elencate in package.json.

Visualizza i file di log

I file di log dell'applicazione possono essere utili per il debug dei problemi che si verificano durante la fase di build e anche in fase di runtime.

  1. Nell'interfaccia utente di Edge, fai clic sulla scheda Sviluppo.
  2. Per visualizzare il log di build, fai clic su Log di build.
  3. Per visualizzare il log del 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 Target ospitati e l'hai testata nella UI perimetrale.
  • Hai appreso che un proxy destinazioni ospitate richiede un tag vuoto speciale nell'endpoint di destinazione denominato <HostedTarget/>.
  • Hai imparato che Edge carica automaticamente le dipendenze dei moduli per te, che 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 sistema a Edge

Questa sezione spiega come eseguire il deployment di un'applicazione Node.js autonoma dal tuo sistema locale alle destinazioni ospitate utilizzando apigeetool. L'utilità apigeetool raggruppa l'app Node.js in un nuovo proxy di destinazioni in hosting e ne esegue il deployment su Edge.

Installa apigeetool

Gli sviluppatori possono utilizzare apigeetool per eseguire il deployment del codice proxy su Edge. Per installare apigeetool, esegui il seguente comando 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 nella 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 il codice. Nota 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 questo codice al suo interno:
  8. runtime: node
    runtimeVersion: 8
    application: my-express-app
    env:
      - name: NODE_ENV
        value: production
      - name: LOG_LEVEL
        value: 3
    
  9. Assicurati che la directory abbia il seguente aspetto:
    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 a Edge:

  • Il file manifest app.yaml è obbligatorio e deve esistere nella directory principale dell'app. Per ulteriori informazioni su questo file, consulta l'articolo sul file manifest.
  • È richiesto un file package.json. Deve elencare tutte le dipendenze richieste dalla tua app.
  • La cartella node_modules non è obbligatoria. Edge esegue l'installazione npm al posto tuo quando viene eseguito il deployment dell'app Node.js. Recupera le dipendenze da package.json. Puoi fornire esplicitamente node_modules solo se disponi di moduli personalizzati che non sono disponibili tramite npm.

Deployment del proxy

  1. In un terminale, premi cd nella 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 è consentito utilizzare nel nome sono limitati a quanto segue: 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'uso di apigeetool, consulta https://github.com/apigee/apigeetool-node.

Test del proxy in corso...

Puoi testare il proxy con un comando cURL, con un client REST come Postman oppure nell'interfaccia utente Edge nello strumento Trace. Ecco un esempio di comando cURL.

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

Recupero dei log di build

I log di build mostrano gli output relativi 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 nell'interfaccia utente Edge

Dopo un deployment riuscito, puoi visualizzare e modificare il proxy nella parte dei proxy API della UI perimetrale.

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 della destinazione Node.js nelle destinazioni ospitate. Viene inoltre spiegato come eseguire il deployment del proxy dopo aver eseguito la procedura 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, ed eseguire il deployment del proxy migrato con apigeetool.

Passaggio 1: modifica la struttura dei file proxy

Per modificare la struttura del file, il proxy API deve trovarsi nel file system locale. Se il deployment del proxy viene eseguito 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 si trova nella directory resources/node:

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


Per le destinazioni ospitate, devi posizionare la directory principale dell'app Node.js in una directory denominata resources/hosted. Basta creare una nuova directory denominata resources/hosted e spostarvi i contenuti di resources/node. Dopodiché puoi eliminare la directory resources/node.

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

Passaggio 2: aggiungi il file manifest

Crea un file manifest con il nome app.yaml e inseriscilo nella directory apiproxy/resources/hosted.

Di seguito è riportato un file app.yaml di esempio. Specifica che il runtime è Node.js (obbligatorio). Crea inoltre 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, consulta l'articolo sul file manifest.

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


L'esempio seguente mostra la struttura di un progetto Node.js che si trova nella posizione corretta nel proxy per il deployment delle destinazioni ospitate:

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

Passaggio 3: assicurati di avere un file Package.json

Nei proxy Node.js tradizionali perimetrali, package.json era facoltativo. Tuttavia, per le destinazioni ospitate, devi fornirne una nella directory apiproxy/resources/hosted. Assicurati di specificare tutte le dipendenze obbligatorie per la tua app in questo file.

Passaggio 4: modifica l'endpoint di destinazione del proxy

Un proxy Node.js tradizionale richiede la presenza di un tag denominato <ScriptTarget> nel file dell'endpoint di destinazione (in genere /apiproxy/targets/default.xml). Per destinazioni ospitate, devi aggiungere un tag vuoto denominato <HostedTarget/>. Se il file contiene 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>
    

Deployment del proxy

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

  1. cd alla directory radice 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.

Test del proxy in corso...

Puoi testare il proxy con un comando cURL, con un client REST come Postman oppure nell'interfaccia utente Edge nello strumento Trace. Ecco un esempio di comando cURL:

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