Deployment di un'app Node.js autonoma

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

Questo argomento spiega come eseguire il deployment di un'applicazione Node.js dal tuo sistema locale ad Apigee Edge. In questo argomento, parleremo di come utilizzare uno strumento a riga di comando chiamato apigeetool per eseguire il deployment delle 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, compresi eventuali 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 server HTTP che rimane in ascolto delle richieste HTTP, elabora tali richieste, restituisce dati e così via. Quando utilizzi apigeetool per eseguire il deployment di un'applicazione Node.js in Edge, questo viene aggregato in un proxy e l'applicazione viene eseguita nel contesto della piattaforma Edge. Puoi quindi chiamare la tua applicazione tramite il nuovo URL del proxy e aggiungere valore all'applicazione "vedendola" con funzionalità Edge standard come la sicurezza OAuth, i criteri per le quote, i criteri di protezione dalle minacce, i flussi condizionali, la memorizzazione nella cache e molto altro.

Cosa fa apigeetool?

Quando esegui l'utilità apigeetool con l'opzione deploynodeapp, questa:

  • Genera un bundle di configurazione proxy API per ospitare l'applicazione Node.js.
  • Pacchettizza l'applicazione Node.js con qualsiasi pacchetto Node.js installato con NPM (moduli in pacchetti Node).
  • Importa il bundle di configurazione del proxy API nell'organizzazione specificata su Apigee Edge utilizzando l'API Edge Management.
  • Esegue il deployment del proxy API in un ambiente.
  • Esegue l'applicazione Node.js su Apigee Edge e la rende disponibile sulla rete.

Preparazione per l'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 sue 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 *nix-based.

Installazione da GitHub

Scarica o clona gli strumenti della piattaforma API da GitHub. Consulta il file README nella directory radice del repository per le istruzioni di installazione.

$ git clone https://github.com/apigee/apigeetool-node.git

Una volta completata l'installazione, assicurati che l'eseguibile apigeetool sia presente nel tuo percorso. Puoi verificarlo digitando:

$ apigeetool -h

Deployment di un'applicazione Node.js in Edge con apigeetool

Nota: prima di eseguire il deployment, devi conoscere il nome della tua 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:

  1. In una finestra del terminale, cd la directory principale dell'applicazione Node.js.
  2. Esegui l'utilità apigeetool con il comando deploynodeapp:

    $ 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
    
  3. Controlla l'output nella finestra del terminale. Sarà simile al seguente:

    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 "Status: Deploy" (Stato: implementato), questo è tutto. Tutto è andato liscio. L'app Node.js è sottoposta a wrapping in un proxy API, ne è stato eseguito il deployment su Edge; inoltre, è in esecuzione e in attesa di gestire le richieste. È pronta per essere testata.

  4. Testa il proxy. Ad esempio:

    $ curl http://myorg-test.apigee.net/myNodeApp
    Hello, My Node App!
    
  5. Se vuoi, accedi al tuo account Apigee Edge e vai alla pagina Proxy API dell'interfaccia utente di gestione. Il tuo nuovo proxy verrà visualizzato nell'elenco.

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 ulteriori azioni. Lo stesso vale per tutte le directory che contengono codice sorgente aggiuntivo. L'utilità apigeetool li comprime e ne esegue il deployment insieme al bundle.

Non puoi modificare i file in queste directory compresse nell'editor dell'interfaccia utente di gestione perimetrale. Se devi modificarli, puoi esportare il progetto, modificare i file localmente ed eseguire nuovamente il deployment utilizzando apigeetool o importando il progetto esportato utilizzando l'interfaccia utente di gestione. Vedi anche "Esportazione e importazione di un proxy con il 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 i file Node.js esistenti

Un altro modo per integrare un'applicazione Node.js esistente in un proxy API è aggiungere l'applicazione quando crei il proxy. Puoi eseguire questa operazione interamente tramite l'interfaccia utente di gestione e la finestra di dialogo Nuovo proxy API.

  1. Nella pagina di riepilogo del proxy API, fai clic su +proxy API.
  2. Nella finestra di dialogo Nuovo proxy API, seleziona Nodo.js esistente.
  3. Utilizza il pulsante Scegli file per selezionare uno o più file Node.js da importare.
  4. Assegna un nome al proxy. In questo esempio, lo chiamiamo hellonode.
  5. Aggiungi la versione /v1 al percorso base progetto. Il controllo delle versioni dell'API è una best practice.
  6. Fai clic su Crea.
  7. Fai clic su Sviluppo per accedere alla visualizzazione Sviluppo.
  8. Apri il file TargetEndpoint nell'editor di codice.
  9. Assicurati che l'elemento <ScriptTarget> specifichi il file Node.js principale, come segue:


    <ScriptTarget>
            <ResourceURL>node://server.js</ResourceURL>
            <Properties/>
    </ScriptTarget>
    
  10. Fai clic su Salva.

Aggiunta e richiamo di nuovi file di risorse Node.js

Un altro modo per aggiungere il 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 richiamato da Edge quando viene eseguito il deployment del proxy.

Aggiunta di nuovi file Node.js tramite l'interfaccia utente

L'interfaccia utente di gestione consente di aggiungere altri file di origine Node.js a un proxy che si trova sulla piattaforma Edge. Puoi crearli direttamente nell'interfaccia utente o importarli dal tuo file system. Innanzitutto, vediamo come eseguire questa operazione dall'interfaccia utente.

Per creare un nuovo file di risorse Node.js:

  1. Nella visualizzazione Sviluppo, seleziona Nuovo script dal menu Nuovo.
  2. Nella finestra di dialogo Aggiungi script, seleziona il tipo di file Nodo e assegna un nome allo script.
  3. 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 del riquadro di navigazione.

[[{"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 file system al proxy:

  1. Nella visualizzazione Sviluppo, seleziona Nuovo script dal menu Nuovo.
  2. Nella finestra di dialogo Aggiungi script, fai clic su Importa script.
  3. Utilizza lo strumento File per selezionare il file Node.js.
  4. Il nome del file viene aggiunto alla finestra di dialogo, ma puoi modificarlo se vuoi.
  5. Fai clic su Aggiungi. Il file viene visualizzato nella sezione Script del riquadro di navigazione e si apre nell'editor.
  6. Fai clic su Salva.

Se vuoi richiamare il file importato, è necessario un passaggio aggiuntivo, come spiegato nella sezione successiva.

Richiamare 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 è specificato nell'elemento <ScriptTarget> della definizione dell'endpoint di destinazione. Per specificare quale file è il file Node.js principale:

  1. In Endpoint di destinazione nel navigatore, fai clic sul nome dell'endpoint di destinazione (di solito chiamato default).
  2. Nell'editor di codice, modifica l'elemento <ScriptTarget> cambiando <ResourceURL> in modo che rifletta il nome del file che vuoi impostare come file Node.js principale. Ad esempio, se vuoi che un file denominato hello-world.js sia il file principale, devi inserire node://hello-world.js nell'elemento ResourceURL.
  3. Fai clic su Salva.

A questo punto, puoi richiamare il file con qualsiasi percorso proxy utilizzato in precedenza. Ad esempio, abbiamo osservato l'esempio Hello World!, in cui viene specificato il percorso di base v1/hello. Tuttavia, puoi cambiare il percorso di base modificando l'endpoint proxy.

  1. In Endpoint proxy nel navigatore, fai clic sul nome dell'endpoint proxy (di solito chiamato default).
  2. Nell'editor di codice, modifica l'elemento <HttpProxyConnection> sostituendo <BasePath> con il nome che preferisci. Ad esempio, se l'attuale <BasePath> è v1/hello e vuoi che fosse v1/my-node-file, modifica l'elemento <BasePath> in questo modo:

    <BasePath>/v1/my-node-file</BasePath>
  3. Fai clic su Salva.
  4. Richiama il proxy utilizzando il nuovo percorso di base, in questo modo:

    $ curl http://myorg-test.apigee.net/v1/my-node-file
    Hello, World!
    

Esportazione e importazione di un proxy con il codice Node.js

Dopo aver eseguito il deployment su Edge di un proxy contenente codice Node.js, puoi sempre esportarlo nel sistema, lavorarci lì e quindi reimportarlo in Edge utilizzando l'interfaccia utente di gestione. Questo tipo di tecnica di sviluppo andata e ritorno è comunemente utilizzata.

  1. Nella pagina di riepilogo del proxy API, fai clic su Sviluppa.
  2. Nella pagina Sviluppo, seleziona Scarica revisione corrente.
  3. Decomprimi il file scaricato sul sistema.

Puoi importare di nuovo il bundle proxy in Edge selezionando Importa in una nuova revisione dallo stesso menu.

Puoi utilizzare l'API anche per il deployment dei proxy. Per maggiori dettagli, consulta Deployment dei proxy dalla riga di comando.

Passaggi successivi

Nell'argomento successivo, Aggiunta di Node.js a un proxy API esistente, spieghiamo come aggiungere un'app Node.js a un proxy esistente nel file system e come eseguirne il deployment su Edge.