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
- Vai a: apigee.com/edge
- Inserisci le tue credenziali di accesso Apigee per accedere.
Crea un nuovo proxy
- Nel menu di navigazione laterale, seleziona Sviluppo > Proxy API.
- Fai clic su + Proxy.
- Nella pagina Crea proxy, seleziona Destinazione ospitata.
- Fai clic su Avanti.
- Nel campo Nome proxy, inserisci
hello-hosted-targets
. - Assicurati che l'opzione Esempio "Hello World" sia selezionato.
- Fai clic su Avanti.
- Nella pagina Sicurezza, seleziona Passthrough (nessuno) per Autorizzazione.
- Fai clic su Avanti.
- Fai clic su Avanti.
- Nella pagina Crea, assicurati che sia selezionato l'ambiente di test. Nota che il tipo di proxy è Target ospitati.
- Fai clic su Crea ed esegui il deployment. Il completamento del deployment del proxy potrebbe richiedere alcuni istanti.
- Una volta eseguito il deployment del proxy, fai clic su Visualizza proxy hello-hosted-targets nella parte inferiore della pagina.
- 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
- Nell'interfaccia utente di Edge, fai clic sulla scheda Sviluppo.
- Nel menu di navigazione, seleziona default in Endpoint di destinazione.
- 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. - Nella barra di navigazione, osserva il contenuto della sezione Script. I file dell'app Node.js sono elencati sotto l'etichetta hosted.
- 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.
- Nell'interfaccia utente di Edge, fai clic sulla scheda Sviluppo.
- Per visualizzare il log di build, fai clic su Log di build.
- 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.
- Crea una directory per l'app Node.js. Chiama la directory node-hosted-express.
- cd nella nuova directory.
- Crea un file denominato index.js e copia al suo interno questo codice.
- Crea un file denominato package.json e copia al suo interno il codice. Nota che il modulo express è elencato come dipendenza.
- Crea un file denominato app.yaml e copia questo codice al suo interno:
- Assicurati che la directory abbia il seguente aspetto:
ls app.yaml index.js package.json
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) })
{ "name": "hello-world", "version": "1.0.0", "main": "index.js", "scripts": { "start": "node index.js --use_strict" }, "author": "", "license": "", "dependencies": { "express": "^4.16.0" } }
runtime: node runtimeVersion: 8 application: my-express-app env: - name: NODE_ENV value: production - name: LOG_LEVEL value: 3
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
- In un terminale, premi cd nella directory principale dell'applicazione Node.js.
- Esegui apigeetool con il comando deployhostedtarget:
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
.
- cd alla directory radice del proxy: /apiproxy
- Utilizza questo comando per eseguire il deployment del proxy:
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!