Attività destinazioni ospitate

Stai visualizzando la documentazione di Apigee Edge.
Consulta la documentazione di Apigee X.
info

Annullamento del deployment di un proxy di target ospitati

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

Eliminazione di un proxy di target ospitati

Dopo aver eliminato un proxy di target ospitati, le istanze di runtime sottostanti smetteranno di essere eseguite entro un certo 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 target ospitati:

  • Log di build : mostra l'output relativo al deployment e alla creazione di un'app di target ospitati.
  • Log di runtime : mostra l'output relativo all'esecuzione dell'app di target ospitati. I log di runtime sono limitati all'ambiente e mostrano le informazioni di log per la revisione del proxy di cui è stato eseguito il deployment.

Accesso ai log dalla UI di Edge

  1. Vai a: apigee.com/edge
  2. Inserisci le tue credenziali di accesso e fai clic su Accedi.
  3. Seleziona Sviluppa > Proxy API nel menu di navigazione laterale.
  4. Seleziona il proxy di cui vuoi visualizzare i log.
  5. Fai clic sulla scheda Sviluppa.
  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 di target ospitati. Per maggiori dettagli, vedi Recupera 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 in target ospitati nei casi in cui utilizzi un repository npm privato nel tuo ambiente di sviluppo.

Informazioni utili 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 della procedura di deployment. In sostanza, target ospitati esegue npm install sul codice quando 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 è utilizzare l'opzione --bundled-dependencies quando utilizzi l'utilità di deployment apigeetool. Vedi anche Eseguire il deployment di Node.js dal sistema a Edge.

Quando utilizzi il flag --bundled-dependencies su apigeetool, la tua app Node.js viene caricata in target ospitati e tutti i file locali/privati elencati nell'array bundledDependencies in package.json vengono compressi e caricati con il bundle.

Anche se non è una situazione comune, tieni presente che se esegui il mirroring di un repository npm pubblico internamente, 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, assicurati di omettere .npmrc o package-lock.json dal bundle di proxy di cui intendi eseguire il deployment.

Eseguire il deployment con un repository npm privato

Per utilizzare i moduli forniti da un repository npm privato:

  1. Accedi a npm:
    npm login
  2. Richiedi un token di autenticazione npm:
    1. Individua il file .npmrc (dovrebbe trovarsi in ~/.npmrc).
    2. Nel file .npmrc, prendi nota del token alla fine della riga simile alla seguente:

      //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 di npm-token.
  3. Accedi alla pagina di configurazione delle mappe chiave-valore, come descritto di seguito.

    Edge

    Per accedere alla pagina di configurazione delle mappe chiave-valore utilizzando la UI di Edge:

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

    Edge classico (Private Cloud)

    Per accedere alla pagina di configurazione delle mappe chiave-valore utilizzando la UI di Edge classica:

    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 chiave-valore.
  5. Nella finestra di dialogo Nuova mappa chiave-valore, inserisci un nome e seleziona Criptata.
  6. Fai clic su Aggiungi.
  7. Aggiungi il token di autenticazione che hai individuato o creato in precedenza come nuova voce in ognuna delle mappe chiave-valore appena create.
  8. Nel file app.yaml aggiungi una voce che fa riferimento alla mappa chiave-valore e alla chiave associata 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 nome in valueRef corrisponde alla mappa chiave-valore che hai creato in precedenza.
    • L'attributo key corrisponde alla chiave che esegue il mapping al token npm che hai aggiunto alla mappa chiave-valore.
  10. Crea un file .npmrc nella stessa directory di 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 @myscope:registry=https://mycustomregistry.example.org Vedi anche la documentazione di 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 venga eseguito e funzioni con il modulo del repository privato desiderato.
  13. Se il proxy non viene eseguito, controlla i log di build per verificare se l'installazione del modulo npm privato non è riuscita. In questo caso:
    1. Nella scheda Sviluppa, assicurati che sia presente il file .npmrc.
    2. Assicurati che il token sia valido (prova a installare il modulo localmente con il token presente in nella mappa chiave-valore).
    3. Se utilizzi un ambito personalizzato, assicurati che sia impostato.

Specificare la versione di npm per le dipendenze in bundle

Per impostazione predefinita, viene utilizzata la versione 4 di npm per installare le dipendenze in bundle nell'ambiente di target ospitati. Tuttavia, se vuoi utilizzare una versione di npm diversa, puoi specificarla nella NPM_VERSION variabile di ambiente. Puoi impostare questa variabile nel file manifest dell'applicazione. Per maggiori dettagli, vedi Elementi del file manifest.

Se utilizzi le dipendenze in bundle e non specifichi NPM_VERSION, target ospitati utilizza la versione 4 di npm 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 illustra la funzionalità delle dipendenze in bundle con target ospitati, vedi Come creare un'applicazione Node.js con funzioni ospitate utilizzando moduli personalizzati.

Aggiungere un endpoint di controllo di integrità

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

Per impostazione predefinita, l'endpoint previsto da Apigee è /health. Puoi modificare l'endpoint predefinito specificandolo in una variabile di ambiente denominata HOSTED_TARGET_HEALTH_CHECK_PATH. Puoi impostare questa variabile nel file manifest dell'applicazione. Per maggiori dettagli, vedi Elementi del file manifest.

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

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

Modificare la posizione della cache npm

Le versioni più recenti di Node.js utilizzano una versione di npm che utilizza /root/.npm per la cache npm. Questa posizione presenta un problema per target ospitati perché la posizione della directory è di sola lettura in quanto il runtime di target ospitati utilizza un file system tmpfs in cui solo /tmp è scrivibile. Per risolvere questo problema, puoi impostare la variabile di ambiente npm_config_cache nel file app.yaml dell'applicazione (il file manifest) 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
  

Eseguire l'applicazione senza npm

Per impostazione predefinita, target ospitati utilizza npm start per eseguire l'applicazione di target ospitati. Tuttavia, nell'attività precedente abbiamo discusso di un problema relativo all'utilizzo di npm, in quanto le versioni più recenti tenteranno di utilizzare /root/.npm per la cache npm, che non è scrivibile e impedisce l'avvio di target ospitati. Sebbene l'attività precedente risolva questo problema, un'altra opzione è eseguire l'applicazione senza npm. Per farlo, puoi utilizzare i valori command e args nel file app.yaml dell'applicazione (il file manifest) per eseguire target ospitati direttamente 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
  
Naturalmente, puoi utilizzare qualsiasi comando ritieni opportuno e node index.js è solo un esempio.