Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione
Documentazione di Apigee X. Informazioni
Quale versione di Node.js è supportata Apigee Edge?
Edge attualmente supporta Node.js 0.10.32.
Quali moduli Node.js standard sono supportato su Edge?
Usa la tabella seguente per determinare quali moduli Node.js standard sono incluso in Edge. In alcuni casi, i moduli inclusi sono supportati solo parzialmente. Si tratta di moduli integrate in Node.js.Modulo | Stato | Note |
---|---|---|
assert |
Supportato | |
buffer |
Supportato | |
child_process |
Con restrizioni | Se si tenta di generare un processo secondario, verrà generata un'eccezione. Tuttavia, "forchetta" è supportato per la riproduzione dei pedice. |
cluster |
Disabilitato | Il metodo cluster.isMaster restituisce sempre true e gli altri metodi non sono implementati. Viene eseguita il deployment di una copia di ogni script Node.js in ciascun processore di messaggi Edge. |
crypto |
Supportato | |
dns |
Supportato | |
domain |
Supportato | |
dgram |
Con restrizioni | Le applicazioni Node.js nell'ambiente Apigee non saranno in grado di accedere ai servizi su internet tramite UDP grazie alla nostra architettura di rete. |
events |
Supportato | |
fs |
Con restrizioni | L'accesso al file system è limitato alla directory in cui è stato avviato lo script:
Directory /resources/node . Gli script Node.js possono leggere e scrivere file all'interno
questa directory, ad esempio come area temporanea, ma non vi sono garanzie
per quanto tempo verranno conservati i file. |
http |
Supportato | L'host virtuale e il percorso per le richieste in entrata sono specificati nel proxy API, non da il modulo HTTP. Consulta la sezione "Informazioni sul supporto per http e https moduli" per ulteriori informazioni. |
https |
Supportato | Creazione di un "https" si comporta in modo identico a un server "http" o server web. Consulta la sezione "Informazioni sul supporto per i moduli http e https" per altre informazioni. |
module |
Supportato | |
net |
Con restrizioni | I tentativi di ascolto delle connessioni TCP in arrivo genereranno un'eccezione. |
path |
Supportato | |
module |
Supportato | |
process |
Supporto parziale | La funzionalità per manipolare l'ID utente, l'appartenenza ai gruppi e la directory di lavoro non è supportati. |
punycode |
Supportato | |
querystring |
Supportato | |
readline |
Disabilitato | Non è previsto un input standard per gli script in esecuzione su Apigee Edge. |
repl |
Disabilitato | Non è previsto un input standard per gli script in esecuzione su Apigee Edge. |
module |
Incluso | |
STDIO |
Supportato |
Gli errori e gli output standard vengono indirizzati a un file di log all'interno di Apigee Edge dell'infrastruttura. Puoi visualizzare questi log facendo clic su Log di Node.js e l'interfaccia utente di gestione di Apigee Edge per il tuo proxy API. Non è previsto un input standard per gli script in esecuzione su Apigee Edge. Tuttavia, puoi passare utilizzando l'elemento ScriptTarget di TargetEndpoint. Vedi Configurazione di ScriptTarget avanzata per ulteriori informazioni. |
stream |
Supportato | |
string_decoder |
Supportato | |
timers |
Incluso | |
tls |
Supportato | I parametri TLS (Transport Layer Security) funzionano sostanzialmente nello stesso modo in con la versione standard di Node.js. Consulta Utilizzo del modulo Node.js TLS (SSL) su Apigee Edge per maggiori dettagli. |
tty |
Disabilitato | Non è previsto un input standard per gli script in esecuzione su Apigee Edge. |
url |
Supportato | |
util |
Supportato | |
vm |
Supportato | |
zlib |
Supportato |
Altri moduli supportati
Questa sezione elenca i moduli aggiuntivi che non sono supportati in Node.js standard, ma che supportata da Trireme e Trireme in esecuzione su Apigee Edge. Trireme è il container open source Node.js in esecuzione su Apigee Edge È progettato per eseguire script Node.js all'interno di una Java Virtual Machine (JVM). Tutti questi sono disponibili su Gestione dei partner di rete.
Modulo | Descrizione |
---|---|
apigee-access | Consente alle applicazioni Node.js in esecuzione sulla piattaforma Apigee Edge di una modalità di accesso Funzionalità specifiche di Apigee. Puoi utilizzare questo modulo per: accedere e modificare il flusso , recuperare i dati dall'archivio sicuro e utilizzare cache perimetrale, quota e OAuth i servizi di machine learning. Vedi anche Utilizzo del Modulo apigee-access. |
trireme-support | Consente alle applicazioni Node.js di sfruttare le funzionalità specifiche di Trireme. Attuale è supportata una sola funzionalità: il caricamento dei moduli Node.js creati in Java. Nota: loadJars non è supportato in Edge Cloud. |
trireme-xlst | Presenta un'astrazione dell'elaborazione XLST. È progettato specificamente per la Trireme per consentire un'elaborazione efficiente di Hadoop quando le applicazioni Node.js vengono eseguite su Java. |
trireme-jdbc | Fornisce l'accesso a JDBC da Node.js. Nota: non supportato in Edge Cloud. Per Edge Private Cloud, puoi inserire file JDPC JAR nel percorso della classe e utilizzare questo modulo. |
Supporto per i moduli Node.js di uso comune
Restrizioni relative agli script Node.js
Tuttavia, tieni presente che Edge impone alcune restrizioni agli script Node.js, come seguenti:
- Le applicazioni Node.js nell'ambiente Apigee Edge non possono accedere ai servizi su internet su UDP grazie all'architettura di rete perimetrale.
- L'accesso al file system è limitato alla directory in cui è stato avviato lo script Node.js: /resources/node. Gli script Node.js possono leggere e scrivere file all'interno di questa directory, per come area temporanea temporanea, ma non vi è alcuna garanzia per quanto tempo rimangono invariate.
- I tentativi di ascolto delle connessioni TCP in entrata generano un'eccezione.
- La funzionalità per manipolare l'ID utente, l'appartenenza ai gruppi e la directory di lavoro non è supportati.
- Per l'input standard, puoi passare solo gli argomenti utilizzando lo strumento ScriptTarget
di TargetEndpoint. Vedi Impostazioni avanzate
ScriptTarget per ulteriori informazioni.
- Per l'output standard, puoi utilizzare solo il pulsante Log di Node.js in Edge
di gestione del proxy per il proxy. Puoi anche usare "apigeetool getlogs" . Per ulteriori informazioni
consulta la sezione Deployment
un'app Node.js autonoma.
- I moduli che dipendono da codice nativo non sono supportati.
- I moduli che dipendono dalle funzioni di EcmaScript 6, come Promises e Generators, non sono
supportati.
- I flag di runtime Node.js come "harmony-proxies" non sono supportati.
Impostazione delle restrizioni della connessione IP su Edge per Private Cloud
Edge per il cloud privato può impedire al codice Node.js di accedere agli indirizzi IP a partire da con "10.", "192.168" e localhost. Se tenti di accedere a questi indirizzi IP, viene visualizzato un errore nel modulo:
{ [Error: connect EINVAL] message: 'connect EINVAL', code: 'EINVAL', errno: 'EINVAL', syscall: 'connect' }
Puoi modificare queste restrizioni impostando la proprietà conf_nodejs_connect.ranges.denied in Il file message-processors.properties per ogni processore di messaggi. Per impostazione predefinita, questa proprietà ha il valore:
- Edge 4.17.05 e precedenti: conf_nodejs_connect.ranges.denied=10.0.0.0/8,192.168.0.0/16,127.0.0.1/32
- Edge 4.17.09 e versioni successive: conf_nodejs_connect.ranges.denied= (che significa nessuna limitazione)
Per impostare questa proprietà:
- Apri il file message-processor.properties in un
editor. Se il file non esiste, crealo:
> vi /<inst_root>/apigee/customer/application/message-processor.properties - Imposta la proprietà come preferisci. Ad esempio, per negare l'accesso solo a localhost:
conf_nodejs_connect.ranges.denied=127.0.0.1/32 - Salva le modifiche.
- Assicurati che il file delle proprietà appartenga all'elemento 'apigee' utente:
> chown apigee:apigee /<inst_root>/apigee/customer/application/message-processor.properties - Riavvia il processore di messaggi:
> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-message-processor riavvia
Informazioni sul supporto per i moduli http e https
Tutte le applicazioni Node.js in esecuzione su Apigee Edge devono utilizzare http
o
Modulo https
per rimanere in ascolto delle richieste in arrivo. Se eseguissi il deployment di uno script
non ascolta le richieste in arrivo, ma esegue e uscite.
Il metodo listen
dei moduli http
e https
in
Node.js prende un numero di porta come parametro. Ad esempio:
svr.listen(process.env.PORT || 9000, function() { console.log('The server is running.'); });
Questa "porta" in Node.js, ma Apigee Edge ignora questo parametro. Invece, il proxy API in cui viene eseguito lo script Node.js specifica l'"host virtuale" su cui ascolta, e l'applicazione Node.js utilizza gli stessi host virtuali, proprio come qualsiasi altro Apigee Edge proxy.
Ogni ambiente in Apigee ha almeno un host virtuale. L'host virtuale definisce il parametro HTTP
le impostazioni per la connessione
all'organizzazione Apigee. Tutti i proxy API in un ambiente condividono
gli stessi host virtuali. Per impostazione predefinita, sono disponibili due host virtuali per ogni ambiente:
default
e secure
. Per ulteriori informazioni, vedi
Ottieni Virtual Host e API
del ciclo di vita dello sviluppo.
Il comando apigeetool deploynodeapp
genera un wrapper proxy Apigee Edge
per l'applicazione Node.js. Al momento del deployment, l'applicazione Node.js rimane in ascolto dell'impostazione predefinita
dell'host virtuale definito per l'ambiente. L'URL per un'applicazione Node.js sarà sempre
http://{org_name}-{env_name}.apigee.net
.
Gestione dei messaggi in entrata richieste
Come per le altre applicazioni Apigee Edge, se l'applicazione proxy è configurata per rimanere in ascolto
secure
, accetterà le richieste in entrata utilizzando HTTPS.
Gestione della posta in uscita richieste
Oltre a ricevere traffico in entrata, le applicazioni Node.js all'interno di Apigee Edge possono utilizzare
Moduli http
e https
per effettuare richieste in uscita come qualsiasi altro modulo Node.js
un'applicazione. Questi moduli funzionano esattamente come sempre all'interno di Node.js.
Informazioni sul supporto per il modulo TLS
Apigee Edge supporta il modulo tls di Node.js.
In questo modulo viene utilizzato OpenSSL per fornire i protocolli Transport Layer Security (TLS) e/o Secure Socket Layer
comunicazione in streaming criptato (SSL). Puoi utilizzare il modulo tls
per creare immagini di sicurezza
connessioni ai servizi di backend dalle applicazioni Node.js in esecuzione su Edge.
Per capire come funziona il modulo tls
su Apigee Edge, è importante
per comprendere come vengono utilizzati virtual hosts
su Apigee Edge. Tutti gli ambienti in Apigee
include almeno un host virtuale. L'host virtuale definisce le impostazioni HTTP per la connessione con
nella piattaforma Apigee. Tutti i proxy API in un ambiente condividono gli stessi host virtuali. Per impostazione predefinita,
per ogni ambiente sono disponibili due host virtuali: default
e
secure
. Per ulteriori informazioni sugli host virtuali, consulta
Ottieni Virtual Host e API
del ciclo di vita dello sviluppo.
Adesso vediamo in che modo Apigee Edge gestisce le comunicazioni TLS (SSL) per le chiamate in entrata e in uscita. richieste sulle applicazioni Node.js:
Gestione dei messaggi in entrata richieste
A seconda di come sono configurati gli host virtuali per la tua organizzazione, Edge fornisce: opzioni:
- Se il proxy API è configurato per rimanere in ascolto sull'host virtuale
default
, accetta richieste tramite HTTP. - Se il proxy API è configurato per rimanere in ascolto sull'host virtuale
secure
, accetta richieste tramite HTTPS. L'URL sarà nel dominioapigee.net
e un verrà utilizzato il certificato SSL con caratteri jolly per*.apigee.net
. Finché le app creano richieste al dominioapigee.net
, il certificato SSL verrà convalidato normalmente.
Gestione della posta in uscita richieste
Puoi effettuare richieste in uscita con il modulo tls
nello stesso modo in cui
di solito in Node.js. Di base, devi aggiungere chiavi e certificati lato client
(.pem
file) nella directory resources/node
e caricali all'interno
lo script. Per informazioni sull'utilizzo del modulo tls
e dei suoi metodi, consulta
documentazione del modulo tls di Node.js.
Configurazione avanzata di ScriptTarget
<TargetEndpoint name="default"> <ScriptTarget> <ResourceURL>node://hello.js</ResourceURL> <EnvironmentVariables> <EnvironmentVariable name="NAME">VALUE</EnvironmentVariable> </EnvironmentVariables> <Arguments> <Argument>ARG</Argument> </Arguments> </ScriptTarget> </TargetEndpoint>