Attività destinazioni ospitate

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

Annullamento del deployment di un proxy di Target ospitati

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

Eliminazione di un proxy di Destinazioni ospitate

Dopo aver eliminato un proxy target ospitati, l'esecuzione delle istanze di runtime sottostanti verrà interrotta entro un determinato periodo di tempo. Tuttavia, il codice dell'applicazione rimarrà invariato.

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 compilazione: mostra l'output relativo al deployment e alla creazione di un'app con target ospitati.
  • Log di runtime: mostra l'output relativo all'app Destinazioni ospitate in esecuzione. I log di runtime sono limitati all'ambiente e mostrano le informazioni dei log per la revisione del proxy attualmente di cui è stato eseguito il deployment.

Accesso ai log dalla UI Edge

  1. Vai alla pagina 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 per il quale 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 Destinazioni ospitate. Per maggiori dettagli, vedi Recuperare i log di Node.js memorizzati nella cache.

Utilizzo di un repository npm privato

Questa sezione spiega come eseguire il deployment di un proxy Node.js in 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 della procedura di deployment. In sostanza, i target ospitati eseguono npm install sul codice durante 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 Esegui il deployment di Node.js dal tuo sistema a Edge.

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

Sebbene non si tratti di una situazione comune, tieni presente che se esegui il mirroring interno di un repository di Gestione dei partner di rete pubblico, il deployment avrà esito negativo se il bundle di deployment include un file .npmrc o package-lock.json che punta al tuo mirroring privato. In questo caso, assicurati di omettere .npmrc o package-lock.json dal bundle proxy di cui vuoi eseguire il deployment.

Deployment con un repository di Gestione dei partner di rete privato

Per utilizzare i moduli forniti da un repository NPM privato:

  1. Accedi a npm:
    npm login
  2. Ottieni un token di autenticazione npm:
    1. Individua il file .npmrc (dovrebbe trovarsi in ~/.npmrc).
    2. In .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 ulteriori 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 l'interfaccia utente di Edge:

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

    Perimetrale classico (Private Cloud)

    Per accedere alla pagina di configurazione delle mappe chiave-valore utilizzando l'interfaccia utente di 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 dell'ambiente > Mappe di valori chiave nella barra di navigazione in alto.
  4. Fai clic su + Mappa valore chiave.
  5. Nella finestra di dialogo Nuova mappatura di valori chiave, inserisci un nome e seleziona Crittografia.
  6. Fai clic su Aggiungi.
  7. Aggiungi il token di autenticazione che hai individuato o creato in precedenza come nuova voce in ognuna delle KVM appena create.
  8. Nel file app.yaml, aggiungi una voce che faccia riferimento alla KVM 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 valore name in valueRef corrisponde alla KVM che hai creato in precedenza.
    • L'attributo key corrisponde alla chiave mappata al token npm che hai aggiunto alla KVM.
  10. Crea un file .npmrc nella stessa directory del file package.json. Questo file dovrebbe avere il seguente aspetto:
    //registry.npmjs.org/:_authToken=${NPM_TOKEN}
    oppure, se non utilizzi registry.npmjs.org, puoi impostare l'ambito nel file .npmrc aggiungendo una riga come questa @myscope:registry=https://mycustomregistry.example.org Consulta 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 implementato e funzioni con il modulo del repository privato preferito.
  13. Se il proxy non esegue il deployment, controlla i log di build per verificare se l'installazione del modulo npm privato non è riuscita. Se sì:
    1. Nella scheda Sviluppo, assicurati che sia presente il file .npmrc.
    2. Assicurati che il token sia valido (prova a installare il modulo localmente con il token presente nella VM).
    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 Destinazioni ospitate. 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 maggiori dettagli, consulta Elementi del file manifest.

Se utilizzi le dipendenze in bundle e non specifichi NPM_VERSION, i target ospitati utilizzano Gestione dei partner di rete 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 mostra la funzionalità delle dipendenze in bundle con i target ospitati, consulta Come creare un'applicazione Node.js con funzioni ospitate utilizzando moduli personalizzati.

Aggiungi un endpoint del controllo di integrità

Puoi implementare un endpoint per il controllo di integrità per la tua applicazione Node.js. Apigee utilizza questo endpoint quando la tua 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 specificandolo in una variabile di ambiente denominata HOSTED_TARGET_HEALTH_CHECK_PATH. Puoi impostare questa variabile nel file manifest dell'applicazione. Per maggiori dettagli, consulta la sezione 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 esce quando Apigee raggiunge l'endpoint, non verrà avviata come previsto.
  • Se l'endpoint restituisce uno stato HTTP 404 - Non trovato, non è un problema. /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 di NPM. Questa posizione presenta un problema per i target ospitati perché la directory è di sola lettura poiché il runtime del target ospitato utilizza un file system tmpfs in cui solo /tmp è scrivibile. Per risolvere il problema, puoi impostare la variabile di ambiente npm_config_cache nel app.yamlfile (file manifest) della tua 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 del target ospitato. Tuttavia, nell'attività precedente abbiamo discusso di un problema con l'utilizzo di NPM, in quanto le versioni più recenti tenteranno di utilizzare /root/.npm per la cache NPM, che non è scrivibile e causa l'arresto anomalo del target ospitato. Sebbene l'attività precedente risolva il problema, un'altra opzione è eseguire l'applicazione senza NPM. Per farlo, puoi utilizzare i valori command e args nel app.yamlfile (file manifest) della tua applicazione per eseguire direttamente il target ospitato 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 opportuno e node index.js è solo un esempio.