Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione
Documentazione di Apigee X. Informazioni
Annullamento del deployment di un proxy per i target ospitati
Quando annulli il deployment di un proxy perimetrale che include un'applicazione Target ospitati, Non è stato eseguito il deployment dell'app Target in hosting, ma l'immagine dell'applicazione sottostante non viene eliminata. Se eseguire nuovamente il deployment del proxy, viene rieseguito il deployment dell'app target ospitati.
Eliminazione di un proxy target ospitati
Dopo aver eliminato un proxy target ospitati, l'esecuzione delle istanze di runtime sottostanti verrà interrotta in 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:
- Crea log: mostra l'output relativo al deployment e alla creazione di un'app per i target ospitati.
- Log di runtime: mostra l'output relativo all'app Hosted Destinazioni in esecuzione. Log di runtime hanno un ambito nell'ambiente e mostrano le informazioni di log per la revisione del proxy attualmente di cui è stato eseguito il deployment.
Accesso ai log dalla UI Edge
- Vai a: apigee.com/edge
- Inserisci le tue credenziali di accesso e fai clic su Accedi.
- Seleziona Sviluppo > Proxy API nel menu di navigazione laterale.
- Seleziona il proxy per cui vuoi visualizzare i log.
- Fai clic sulla scheda Sviluppo.
- Per visualizzare il log di build, fai clic su Log di build. di Gemini Advanced.
- 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, vedi Ottieni 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 negli obiettivi ospitati nei casi in cui usa un repository di Gestione dei partner di rete privato il 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.
In sostanza, gli obiettivi ospitati eseguono npm install
sul tuo codice quando ne viene eseguito il deployment.
Tuttavia, se nel tuo ambiente di sviluppo utilizzi un repository NPM privato,
le dipendenze non possono essere risolte nel cloud. Nella
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 usi il flag --bundled-dependencies
su apigeetool
,
L'app Node.js verrà caricata nelle destinazioni ospitate e in 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 non riuscirà
se il bundle di deployment include un file .npmrc
o package-lock.json
che indica
al tuo mirror privato. In questo caso, assicurati di omettere .npmrc
o package-lock.json
dal bundle proxy di cui intendi eseguire il deployment.
Deployment con un repository di Gestione dei partner di rete privato
Per utilizzare i moduli forniti da un repository privato di Gestione dei partner di rete, segui questi passaggi:
- Accedi a npm:
npm login
- Ottieni un token di autenticazione npm:
- Individua il file .npmrc (dovrebbe essere in ~/.npmrc).
- Nel file .npmrc, prendi nota del token alla fine della riga, simile a questo:
//registry.npmjs.org/:_authToken=****
- Oppure usa i comandi
npm token <list | create | revoke>
per elencare, creare o revocare un token di autenticazione. Vedi il token npm-token documentazione per ulteriori dettagli. - 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:
- Accedi a apigee.com/edge.
- Seleziona Amministratore > Ambienti > Mappe 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:
- Accedi a
http://ms-ip:9000
, dove ms-ip è Indirizzo IP o nome DNS del nodo del server di gestione. - Seleziona API > Configurazione dell'ambiente > Mappe chiave-valore nella barra di navigazione superiore.
- Fai clic su + Mappa valori chiave.
- Nella finestra di dialogo Nuova mappa valori chiave, inserisci un nome e seleziona Criptato.
- Fai clic su Aggiungi.
- Aggiungi il token di autenticazione che hai individuato o creato in precedenza come nuova voce in ciascuna delle KVM appena creato.
- Nel file app.yaml aggiungi una voce che faccia riferimento a KVM e chiave associati al token di autenticazione npm. Il sito dovrebbe avere il seguente aspetto:
- L'attributo name di primo livello corrisponde al nome dell'ambiente che verrà creata.
- Il name in valueRef corrisponde alla KVM che creati in precedenza.
- L'attributo key corrisponde alla chiave mappata al token npm che hai aggiunte alla KVM.
- Crea un file .npmrc nella stessa directory del file package.json. Questo
dovrebbe essere simile a questo:
oppure, se non utilizzi//registry.npmjs.org/:_authToken=${NPM_TOKEN}
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. - Carica o aggiorna il proxy Node.js con il file .npmrc e i file app.yaml inclusi.
- Assicurati che il proxy nuovo o aggiornato esegua il deployment e funzioni con il repository privato desiderato in maggior dettaglio più avanti in questo modulo.
- Se il proxy non viene eseguito, controlla i log di build per verificare che l'installazione del proxy non sia riuscita. modulo npm privato. Se sì:
- Nella scheda Sviluppo, assicurati che sia presente il file .npmrc.
- Assicurati che il token sia valido (prova a installare il modulo localmente con il token presente) nel file kvm).
- Se utilizzi un ambito personalizzato, assicurati che sia impostato.
env:
- name: NPM_TOKEN
valueRef:
name: npm_store
key: private_token
Dove:
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 nel NPM_VERSION
variabile di ambiente. Puoi impostare questa variabile nel file manifest dell'applicazione. Per maggiori dettagli, consulta la sezione Elementi del file manifest.
Se utilizzi dipendenze in bundle e se non specifichi NPM_VERSION
, target ospitati
utilizza la versione 4 di Gestione dei partner di rete per impostazione predefinita. Se non utilizzi dipendenze in bundle, la versione di Gestione dei partner di rete inclusa
nel runtime Node.js specificato.
Esempio di dipendenze in bundle
Per un esempio che illustra la funzionalità delle dipendenze in bundle con destinazioni ospitate, 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 L'applicazione Node.js inizia a verificare che sia attiva e in esecuzione nel container.
Per impostazione predefinita, l'endpoint previsto da Apigee è /health
. Puoi modificare l'impostazione predefinita
specificando l'endpoint 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 del controllo di integrità non è richiesta. Tuttavia, se implementi un controllo di integrità tieni presente quanto segue:
- Se la tua applicazione si chiude quando Apigee raggiunge l'endpoint, l'applicazione non verrà avviata come previsto.
- Se l'endpoint restituisce uno stato HTTP 404 - Non trovato, non è un problema. L'
/health
oHOSTED_TARGET_HEALTH_CHECK_PATH
viene utilizzato solo per verificare se l'applicazione è in esecuzione. La risposta effettiva viene ignorata.
Cambiare la posizione della cache di Gestione dei partner di rete
Le versioni più recenti di Node.js utilizzano una versione di Gestione dei partner di rete che utilizza /root/.npm
per la cache di Gestione dei partner di rete.
Questa posizione presenta un problema per i target ospitati perché l'indirizzo della directory è di sola lettura
poiché il runtime della destinazione ospitata utilizza un file system tmpfs in cui è scrivibile solo /tmp
.
Per aggirare il problema, puoi impostare la variabile di ambiente npm_config_cache
in
della tua applicazione
app.yaml
file (il file manifest)
in 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 di destinazione ospitata. Ma
Nell'attività precedente abbiamo discusso di un problema relativo all'uso della gestione dei partner di rete, poiché le versioni più recenti cercheranno di usare
/root/.npm
per la cache di Gestione dei partner di rete, che non è scrivibile e genera il target ospitato
l'avvio non riesce. Mentre l'attività precedente può risolvere questo problema, un'altra opzione è
di eseguire l'applicazione senza Gestione dei partner di rete. Per farlo, puoi utilizzare command
e
args
nella tabella
app.yaml
file (il file manifest)
per eseguire direttamente il tuo 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
node index.js
è solo un
esempio.