Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X. info
Questo argomento spiega come eseguire il deployment di un'applicazione Node.js dal sistema locale ad Apigee Edge.
In questo argomento, illustreremo come utilizzare uno strumento a riga di comando chiamato apigeetool
per eseguire il deployment di applicazioni Node.js in Apigee Edge.
Informazioni sul deployment del codice Node.js in Apigee Edge
Puoi eseguire il deployment di un'applicazione API Node.js esistente, inclusi tutti i moduli Node.js dipendenti, dal tuo sistema locale ad Apigee Edge, utilizzando un'utilità a riga di comando denominata apigeetool
. L'utilità raggruppa automaticamente l'applicazione e le sue dipendenze in un proxy API e ne esegue il deployment su Edge.
Ad esempio, supponiamo che tu abbia utilizzato Express per creare un'applicazione web in Node.js. L'applicazione
viene eseguita come un server HTTP che ascolta le richieste HTTP, le elabora,
restituisce i dati e così via. Quando utilizzi apigeetool
per eseguire il deployment di un'applicazione Node.js in Edge, questa viene sottoposta a wrapping in un proxy e viene eseguita nel contesto della piattaforma Edge. Puoi quindi chiamare l'applicazione tramite il nuovo URL proxy e aggiungerne valore "personalizzandola" con le funzionalità standard di Edge, come la sicurezza OAuth, i criteri di quota, i criteri di protezione dalle minacce, i flussi condizionali, la memorizzazione nella cache e molte altre.
Che cosa fa apigeetool?
Quando esegui l'utilità apigeetool
con l'opzione deploynodeapp
,
esegue le seguenti operazioni:
- Genera un pacchetto di configurazione del proxy API per ospitare l'applicazione Node.js.
- Pacchettizza l'applicazione Node.js con qualsiasi pacchetto Node.js installato con NPM (Node Packaged Modules).
- Importa il bundle di configurazione del proxy API nell'organizzazione specificata su Apigee Edge utilizzando l'API di gestione di Edge.
- Esegue il deployment del proxy API in un ambiente.
- Esegue l'applicazione Node.js su Apigee Edge e la rende disponibile sulla rete.
Preparazione all'utilizzo di apigeetool
Prima di iniziare, devi installare l'utilità apigeetool
.
Puoi installare apigeetool tramite npm o clonando e collegando il codice da GitHub.
Installazione da npm
Il modulo apigeetool
e le relative dipendenze sono progettati per Node.js e sono disponibili tramite npm utilizzando il seguente comando:
$ sudo npm install -g apigeetool
In genere, l'opzione -g inserisce i moduli in:
/usr/local/lib/node_modules/apigeetool
su macchine basate su *nix.
Installazione da GitHub
Scarica o clona gli strumenti della piattaforma API da GitHub. Per le istruzioni di installazione, consulta il file README nella directory principale del repository.
$ git clone https://github.com/apigee/apigeetool-node.git
Al termine dell'installazione, assicurati che l'eseguibile apigeetool
si trovi nel
tuo percorso. Per testarlo, digita:
$ apigeetool -h
Eseguire il deployment di un'applicazione Node.js su Edge con apigeetool
Nota:prima di eseguire il deployment, devi conoscere il nome dell'organizzazione Apigee Edge, il nome utente e la password del tuo account Apigee Edge. Queste informazioni sono necessarie per formare correttamente il comando apigeetool
.
Per eseguire il deployment di un'applicazione Node.js utilizzando apigeetool
:
- In una finestra del terminale,
cd
la directory principale della tua applicazione Node.js. - Esegui l'utilità
apigeetool
con il comandodeploynodeapp
:
$ apigeetool deploynodeapp -n {A name for your new proxy} -d {The root directory of your Node.js app} -m {The name of the main Node.js file} -o {Your org name on Edge} -e {The environment to deploy to} -b {The base URL for your proxy} -u {Your Edge email address} -p {Your Edge password}
Ad esempio:
$ apigeetool deploynodeapp -n myNodeApp -d . -m server.js -o myorg -e test -b /myNodeApp -u ntesla -p myPassword
- Controlla l'output nella finestra del terminale. Sarà simile a questo:
Importing new application myNodeApp Imported new app revision 1 Deploying revision 1 Deployed. Proxy: "myNodeApp" Revision 1 Environment: test BasePath: /myNodeApp Status: deployed
Se vedi "Stato: dispiegamento", non devi fare altro. Tutto è andato liscio. L'app Node.js è incapsulata in un proxy API, è dipiattata in Edge, è in esecuzione e in attesa di gestire le richieste. È pronta per essere testata.
- Testa il proxy. Ad esempio:
$ curl http://myorg-test.apigee.net/myNodeApp Hello, My Node App!
- Se vuoi, accedi al tuo account Apigee Edge e vai alla pagina Proxy API dell'interfaccia utente di gestione. Vedrai il nuovo proxy elencato.
In che modo apigeetool gestisce i file e i moduli dipendenti
Se la tua applicazione Node.js dipende dai moduli installati, apigeetool li gestisce comprimendo la cartella node_modules
e aggiungendola al bundle proxy. Non sono necessarie altre azioni. Lo stesso vale per le directory che contengono codice sorgente aggiuntivo. L'utilità apigeetool le comprime e le esegue il deployment con il bundle.
Non puoi modificare i file in queste directory compresse nell'editor dell'interfaccia utente di gestione di Edge. Se devi modificarli, puoi esportare il progetto, modificare i file localmente e poi eseguire nuovamente il deployment utilizzando apigeetool o importando il progetto esportato utilizzando l'interfaccia utente di gestione. Consulta anche "Esportazione e importazione di un proxy con codice Node.js".
Informazioni di base sull'utilizzo per apigeetool
Per informazioni di base sull'utilizzo dei parametri di input dell'utilità apigeetool
,
inserisci:
$ apigeetool deploynodeapp -h Usage: deploynodeapp -n [name] -o [organization] -e [environment] -d [directory name] -m [main script file] -u [username] -p [password] -b [base path] -l [apigee API url] -z [zip file] -i -h -o Apigee organization name -e Apigee environment name -n Apigee proxy name -d Apigee proxy directory -m Main script name: Should be at the top level of the directory -u Apigee user name -p Apigee password -b Base path (optional, defaults to /) -L Apigee API URL (optional, defaults to https://api.enterprise.apigee.com) -z ZIP file to save (optional for debugging) -i import only, do not deploy -R Resolve Node.js modules on Apigee Edge. Equivalent to running npm install on your project. -U Uploads Node.js modules to Apigee Edge. -h Print this message
Creazione di un nuovo proxy con file Node.js esistenti
Un altro modo per integrare un'applicazione Node.js esistente in un proxy API è aggiungere l'applicazione al momento della creazione del proxy. Puoi eseguire questa operazione interamente tramite l'interfaccia utente di gestione e la finestra di dialogo Nuovo proxy API.
- Nella pagina di riepilogo del proxy API, fai clic su +Proxy API.
- Nella finestra di dialogo Nuovo proxy API, seleziona Node.js esistente.
- Utilizza il pulsante Scegli file per selezionare uno o più file Node.js da importare.
- Assegna un nome al proxy. In questo esempio, lo chiamiamo
hellonode
. - Aggiungi la versione
/v1
al percorso base del progetto. La gestione delle versioni dell'API è una best practice. - Fai clic su Compila.
- Fai clic su Sviluppa per accedere alla visualizzazione Sviluppa.
- Apri il file
TargetEndpoint
nell'editor di codice. - Assicurati che l'elemento
<ScriptTarget>
specifichi il file Node.js principale, come segue:
<ScriptTarget> <ResourceURL>node://server.js</ResourceURL> <Properties/> </ScriptTarget>
- Fai clic su Salva.
Aggiunta e chiamata di nuovi file di risorse Node.js
Un altro modo per aggiungere codice Node.js a un proxy è aggiungerlo direttamente tramite l'interfaccia utente o caricandolo dal file system locale. Puoi anche specificare quale file Node.js è il file principale, ovvero il file invocato da Edge quando viene eseguito il deployment del proxy.
Aggiunta di nuovi file Node.js tramite la UI
L'interfaccia utente di gestione ti consente di aggiungere altri file di origine Node.js a un proxy sulla piattaforma Edge. Puoi crearli direttamente nell'interfaccia utente o importarli dal file system. Per prima cosa, vediamo come eseguire questa operazione dall'interfaccia utente.
Per creare un nuovo file di risorse Node.js:
- Nella visualizzazione Sviluppa, seleziona Nuovo script dal menu Nuovo.
- Nella finestra di dialogo Aggiungi script, seleziona il tipo di file Node e assegna un nome allo script.
- Fai clic su Aggiungi.
Il nuovo file Node.js vuoto si apre nell'editor. Puoi tagliare e incollare il codice nel
file. Il file viene visualizzato anche nella sezione Script di Navigator.
[[{"type":"media","view_mode":"media_large","fid":"2431","attributes":"alt":"","class":"media-image","height":"312","typeof":"foaf:Image","width":"417"}}]]
Importazione dei file Node.js dal file system
Per import un file Node.js dal tuo file system al proxy:
- Nella visualizzazione Sviluppa, seleziona Nuovo script dal menu Nuovo.
- Nella finestra di dialogo Aggiungi script, fai clic su Importa script.
- Utilizza lo strumento File per selezionare il file Node.js.
- Il nome del file viene aggiunto alla finestra di dialogo, ma puoi modificarlo se vuoi.
- Fai clic su Aggiungi. Il file viene visualizzato nella sezione Script del Navigator e si apre nell'editor.
- Fai clic su Salva.
Se vuoi richiamare il file importato, è necessario un passaggio aggiuntivo, come spiegato nella sezione successiva.
Richiamo di un file Node.js importato
Non puoi semplicemente richiamare un file Node.js appena importato o creato. Il motivo è che Edge richiede che un file Node.js sia il file main. Il file principale viene specificato nell'elemento <ScriptTarget> della definizione dell'endpoint di destinazione. Per specificare quale file è il file Node.js principale, segui questi passaggi:
- In Endpoint di destinazione in Navigator, fai clic sul nome dell'endpoint di destinazione (in genere chiamato predefinito).
- Nell'editor di codice, modifica l'elemento <ScriptTarget> cambiando il valore di <ResourceURL> in modo che rifletta il nome del file che vuoi che sia il file Node.js principale. Ad esempio, se vuoi che il file principale sia
hello-world.js
, devi inserirenode://hello-world.js
nell'elemento ResourceURL. - Fai clic su Salva.
A questo punto, puoi richiamare il file con il percorso del proxy che hai utilizzato in precedenza. Ad esempio, abbiamo esaminato l'esempio Hello World!, in cui è specificato il percorso di base v1/hello
. Tuttavia, puoi cambiare il percorso di base modificando l'endpoint proxy.
- In Endpoint proxy in Navigator, fai clic sul nome dell'endpoint proxy (in genere chiamato predefinito).
- Nell'editor di codice, modifica l'elemento <HttpProxyConnection> cambiando il valore
<BasePath> con il nome che preferisci. Ad esempio, se l'attuale <BasePath> è
v1/hello
e vuoi che siav1/my-node-file
, modifica l'elemento <BasePath> in questo modo:
<BasePath>/v1/my-node-file</BasePath>
- Fai clic su Salva.
- Richiama il proxy utilizzando il nuovo percorso di base, ad esempio:
$ curl http://myorg-test.apigee.net/v1/my-node-file Hello, World!
Esportazione e importazione di un proxy con codice Node.js
Dopo aver eseguito il deployment di un proxy contenente codice Node.js in Edge, puoi sempre esportarlo nuovamente nel sistema, lavorarci su quel proxy e quindi reimportarlo in Edge utilizzando l'interfaccia utente di gestione. Questo tipo di tecnica di sviluppo di andata e ritorno è di uso comune.
- Nella pagina di riepilogo del proxy API, fai clic su Sviluppa.
- Nella pagina Sviluppo, seleziona Scarica revisione corrente.
- Decomprimi il file scaricato sul sistema.
Puoi importare nuovamente il bundle di proxy in Edge selezionando Importa in nuova revisione dallo stesso menu.
Puoi anche utilizzare l'API per il deployment dei proxy. Per maggiori dettagli, vedi Eseguire il deployment dei proxy dalla riga di comando.
Passaggi successivi
Nell'argomento successivo, Aggiunta di Node.js a un proxy API esistente, spiegheremo come aggiungere un'app Node.js a un proxy esistente nel file system ed eseguirne il deployment in Edge.