Attività destinazioni ospitate

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

Annullamento del deployment di un proxy di destinazioni ospitate

Quando annulli il deployment di un proxy Edge che include un'applicazione Destinazioni ospitate, viene annullato il deployment dell'app Destinazioni ospitate associata, ma l'immagine dell'applicazione sottostante non viene eliminata. Se esegui nuovamente il deployment del proxy, viene eseguito nuovamente il deployment dell'app Destinazioni ospitate.

Eliminazione di un proxy destinazioni in hosting

Dopo aver eliminato un proxy destinazioni ospitate, le istanze di runtime sottostanti smetteranno di funzionare entro un determinato periodo di tempo. Tuttavia, il codice dell'applicazione verrà mantenuto.

Accesso ai file di log

I file di log sono utili per il debug e la risoluzione dei problemi. Puoi visualizzare due tipi di file di log per un deployment di destinazioni ospitate:

  • Log di build: mostra gli output relativi al deployment e alla creazione di un'app Target ospitati.
  • Log di runtime: mostra l'output relativo all'app Hosted Destinazioni in esecuzione. I log di runtime hanno come ambito l'ambiente e mostrano le informazioni di log per la revisione del proxy attualmente di cui è stato eseguito il deployment.

Accesso ai log dall'interfaccia utente Edge

  1. Vai a: apigee.com/edge
  2. Inserisci le tue credenziali di accesso e fai clic su Accedi.
  3. Seleziona Sviluppo > Proxy API nel menu di navigazione laterale.
  4. Seleziona il proxy per il quale vuoi visualizzare i log.
  5. Fai clic sulla scheda Sviluppo.
  6. Per visualizzare il log di build, fai clic su Log di build.
  7. Per visualizzare il log di runtime, fai clic su Log di runtime.

Accesso ai log con l'API

Puoi anche utilizzare un'API Edge per recuperare i log delle destinazioni ospitate. Per maggiori dettagli, consulta Recuperare i log Node.js memorizzati nella cache.

Utilizzo di un repository npm privato

Questa sezione spiega come eseguire il deployment di un proxy Node.js nelle destinazioni ospitate nei casi in cui utilizzi un repository NPM privato nel tuo ambiente di sviluppo.

Cosa devi sapere sull'utilizzo di un repository privato

Quando esegui il deployment di un'app Node.js in Edge, tutte le dipendenze del progetto vengono importate automaticamente nell'ambito del processo di deployment. Essenzialmente, le destinazioni ospitate eseguono npm install sul tuo codice quando ne viene eseguito il deployment. Tuttavia, se utilizzi un repository NPM privato nel tuo ambiente di sviluppo, le dipendenze private non possono essere risolte nel cloud. In questo caso, la soluzione prevede l'uso dell'opzione --bundled-dependencies quando si utilizza l'utilità di deployment apigeetool. Vedi anche Eseguire il deployment di Node.js dal tuo sistema a Edge.

Quando utilizzi il flag --bundled-dependencies su apigeetool, l'app Node.js verrà caricata nelle destinazioni ospitate e tutti i file locali/privati elencati nell'array bundledDependencies in package.json verranno compressi e caricati con il bundle.

Sebbene non sia una situazione comune, tieni presente che se esegui internamente il mirroring di un repository NPM pubblico, il deployment non andrà a buon fine se il bundle di deployment include un file .npmrc o package-lock.json che rimanda al tuo mirror privato. In questo caso, ometti .npmrc o package-lock.json dal bundle proxy di cui intendi eseguire il deployment.

Deployment con un repository NPM privato

Per utilizzare i moduli forniti da un repository di Gestione dei partner di rete privato, segui questi passaggi:

  1. Accedi a npm:
    npm login
  2. Ottieni un token di autenticazione NPM:
    1. Individua il file .npmrc (deve essere in ~/.npmrc).
    2. Nel file .npmrc, prendi nota del token alla fine della riga che ha il seguente aspetto:

      //registry.npmjs.org/:_authToken=****
    3. In alternativa, utilizza i comandi npm token <list | create | revoke> per elencare, creare o revocare un token di autenticazione. Per maggiori dettagli, consulta la documentazione relativa al token npm.
  3. Accedi alla pagina di configurazione Mappe chiave-valore, come descritto di seguito.

    Perimetrale

    Per accedere alla pagina di configurazione delle mappe chiave-valore utilizzando l'interfaccia utente Edge:

    1. Accedi ad apigee.com/edge.
    2. Seleziona Amministrazione > Ambienti > Mappe chiave-valore nella barra di navigazione a sinistra.

    Classic Edge (private cloud)

    Per accedere alla pagina di configurazione delle mappe chiave-valore utilizzando l'interfaccia utente Edge classico:

    1. Accedi a http://ms-ip:9000, dove ms-ip è l'indirizzo IP o il nome DNS del nodo del server di gestione.
    2. Seleziona API > Configurazione ambiente > Mappe chiave-valore nella barra di navigazione in alto.
  4. Fai clic su + Mappa valore-chiave.
  5. Nella finestra di dialogo Nuova mappa chiave-valore, inserisci un nome e seleziona Criptato.
  6. Fai clic su Aggiungi.
  7. Aggiungi il token di autenticazione che hai individuato o creato in precedenza come nuova voce in ciascuno dei KVM appena creati.
  8. Nel file app.yaml aggiungi una voce che fa riferimento al KVM e alla chiave associati al token di autenticazione npm. Il sito dovrebbe avere il seguente aspetto:
  9. env:
    - name: NPM_TOKEN
     valueRef:
       name: npm_store
       key: private_token

    Dove:

    • L'attributo name di primo livello corrisponde al nome della variabile di ambiente che verrà creata.
    • Il valore name sotto valueRef corrisponde al KVM creato in precedenza.
    • L'attributo key corrisponde alla chiave mappata al token npm che hai aggiunto al KVM.
  10. Crea un file .npmrc nella stessa directory del file Package.json. Questo file dovrebbe avere un aspetto simile al seguente:
    //registry.npmjs.org/:_authToken=${NPM_TOKEN}
    oppure, se non utilizzi registry.npmjs.org, puoi impostare l'ambito nel file .npmrc aggiungendo una riga come la seguente @myscope:registry=https://mycustomregistry.example.org Consulta anche la documentazione su npmrc.
  11. Carica o aggiorna il proxy Node.js con i file .npmrc e app.yaml inclusi.
  12. Assicurati che il proxy nuovo o aggiornato esegua il deployment e funzioni con il modulo del repository privato desiderato.
  13. Se non viene eseguito il deployment del proxy, controlla i log di build per verificare se l'installazione del modulo npm privato non è riuscita. In questo caso:
    1. Nella scheda Sviluppo, assicurati che sia presente l'estensione .npmrc.
    2. Assicurati che il token sia valido (prova a installare il modulo localmente con il token presente in kvm).
    3. Se utilizzi un ambito personalizzato, assicurati che sia impostato.

Specifica della versione di Gestione dei partner di rete per le dipendenze in bundle

Per impostazione predefinita, Gestione dei partner di rete v4 viene utilizzata per installare le dipendenze in bundle nell'ambiente Target ospitati. Tuttavia, se vuoi utilizzare una versione di Gestione dei partner di rete diversa, puoi specificarla nella variabile di ambiente NPM_VERSION. Puoi impostare questa variabile nel file manifest dell'applicazione. Per informazioni dettagliate, consulta la sezione Elementi dei file manifest.

Se utilizzi dipendenze in bundle e non specifichi NPM_VERSION, le destinazioni ospitate utilizzano NPM v4 per impostazione predefinita. Se non utilizzi le dipendenze in bundle, viene utilizzata la versione di NPM inclusa nel runtime Node.js specificato.

Esempio di dipendenze in bundle

Per un esempio che dimostra la funzionalità delle dipendenze in bundle con destinazioni ospitate, vedi Come creare un'applicazione Node.js con funzioni ospitate utilizzando moduli personalizzati.

Aggiungi un endpoint del controllo di integrità

Hai la possibilità di implementare un endpoint per il controllo di integrità per la tua applicazione Node.js. Apigee utilizza questo endpoint quando l'applicazione Node.js inizia a verificare che l'applicazione sia attiva e in esecuzione nel container.

Per impostazione predefinita, l'endpoint previsto da Apigee è /health. Puoi modificare l'endpoint predefinito specificando l'endpoint in una variabile di ambiente denominata HOSTED_TARGET_HEALTH_CHECK_PATH. Puoi impostare questa variabile nel file manifest dell'applicazione. Per informazioni dettagliate, consulta la sezione Elementi dei file manifest.

L'implementazione di un endpoint per il controllo di integrità non è obbligatoria. Tuttavia, se implementi un endpoint del controllo di integrità, tieni presente quanto segue:

  • Se l'applicazione si chiude quando Apigee raggiunge l'endpoint, l'applicazione non verrà avviata come previsto.
  • Non è un problema se l'endpoint restituisce uno stato HTTP 404 - Non trovato. /health o HOSTED_TARGET_HEALTH_CHECK_PATH viene utilizzato solo per verificare se l'applicazione è in esecuzione. La risposta effettiva viene ignorata.

Modifica la posizione della cache di Gestione dei partner di rete

Le versioni più recenti di Node.js utilizzano una versione di NPM che utilizza /root/.npm per la cache di NPM. Questa posizione presenta un problema per le destinazioni ospitate perché la posizione della directory è di sola lettura, poiché il runtime di destinazione ospitata utilizza un file system tmpfs in cui è scrivibile solo /tmp. Per risolvere il problema, puoi impostare la variabile di ambiente npm_config_cache nel app.yamlfile manifest (file manifest) dell'applicazione su una directory all'interno di /tmp. Ad esempio:

  runtime: node
  application: my-express-app
  env:
    - name: npm_config_cache
      value: /tmp/.npm
    - name: NODE_ENV
      value: production
    - name: LOG_LEVEL
      value: 3
  

Esegui l'applicazione senza Gestione dei partner di rete

Per impostazione predefinita, i target ospitati utilizzano npm start per eseguire l'applicazione target ospitata. Tuttavia, nell'attività precedente abbiamo discusso di un problema relativo all'utilizzo di Gestione dei partner di rete, dal momento che le versioni più recenti tenteranno di utilizzare /root/.npm per la cache di Gestione dei partner di rete, il che non è scrivibile e fa sì che la destinazione ospitata non si avvii. L'attività precedente funzionerà senza problemi, ma un'altra opzione è eseguire l'applicazione senza Gestione dei partner di rete. A tale scopo, puoi utilizzare i valori command e args nel app.yamlfile (il file manifest) della tua applicazione per eseguire direttamente Hosted Target utilizzando node index.js. Ad esempio:

  runtime: node
  application: my-express-app
  command: node
  args:
    - index.js
  env:
    - name: NODE_ENV
      value: production
    - name: LOG_LEVEL
      value: 3
  
Ovviamente puoi utilizzare qualsiasi comando che ritieni adatto e node index.js è solo un esempio.