Przeglądasz dokumentację Apigee Edge.
Przejdź do
Dokumentacja Apigee X. informacje.
Która wersja Node.js jest obsługiwana Apigee Edge?
Edge obsługuje obecnie środowisko Node.js w wersji 0.10.32.
Które standardowe moduły Node.js są obsługuje Edge?
W tabeli poniżej możesz sprawdzić, które standardowe moduły Node.js są dostępne na Edge. W niektórych przypadkach zawarte moduły są obsługiwane tylko częściowo. To są moduły które są wbudowane w Node.js.Moduł | Stan | Uwagi |
---|---|---|
assert |
Obsługiwane | |
buffer |
Obsługiwane | |
child_process |
Z ograniczeniem | W przypadku próby wywołania podprocesu zostanie zgłoszony wyjątek. Pamiętaj jednak: „rozwidlenie” jest obsługiwany w przypadku tworzenia indeksu dolnego. |
cluster |
Wyłączono | Metoda clusters.isMaster zawsze zwraca wartość „prawda”, a inne metody nie są zaimplementowane. W każdym procesorze wiadomości Edge jest wdrożona jedna kopia każdego skryptu Node.js. |
crypto |
Obsługiwane | |
dns |
Obsługiwane | |
domain |
Obsługiwane | |
dgram |
Z ograniczeniem | Aplikacje Node.js w środowisku Apigee nie będą miały dostępu do usług na i korzystania z internetu przez UDP, co wynika z architektury naszej sieci. |
events |
Obsługiwane | |
fs |
Z ograniczeniem | Dostęp do systemu plików jest ograniczony do katalogu, w którym został uruchomiony skrypt:
Katalog /resources/node . Skrypty Node.js mogą odczytywać i zapisywać pliki wewnątrz
w tym katalogu, na przykład jako tymczasowy obszar tymczasowy, ale nie ma gwarancji, że
jak długo pliki będą przechowywane. |
http |
Obsługiwane | Host wirtualny i ścieżka dla żądań przychodzących są określone na serwerze proxy API, a nie przez w module HTTP. Zapoznaj się z artykułem „Omówienie obsługi protokołu HTTP i HTTPS moduły . |
https |
Obsługiwane | Tworzenie przedrostka „https” serwer działa tak samo jak z „http” serwera. Zapoznaj się z artykułem „Obsługa modułów http i https”. aby dowiedzieć się więcej i informacjami o nich. |
module |
Obsługiwane | |
net |
Z ograniczeniem | Próby nasłuchiwania przychodzących połączeń TCP spowodują wygenerowanie wyjątku. |
path |
Obsługiwane | |
module |
Obsługiwane | |
process |
Częściowe wsparcie | Funkcja manipulowania identyfikatorem użytkownika, członkostwem w grupie i katalogiem roboczym nie jest obsługiwane. |
punycode |
Obsługiwane | |
querystring |
Obsługiwane | |
readline |
Wyłączono | Nie ma standardowych danych wejściowych dla skryptów działających w Apigee Edge. |
repl |
Wyłączono | Nie ma standardowych danych wejściowych dla skryptów działających w Apigee Edge. |
module |
Uwzględniono | |
STDIO |
Obsługiwane |
Standardowe dane wyjściowe i błędy są kierowane do pliku logu w Apigee Edge i infrastrukturze. Aby wyświetlić te logi, kliknij Logi Node.js w interfejsie zarządzania Apigee Edge dla serwera proxy interfejsu API. Nie ma standardowych danych wejściowych dla skryptów działających w Apigee Edge. Możesz jednak przejść używając elementu ScriptTarget elementu TargetEndpoint. Zobacz Zaawansowaną konfigurację ScriptTarget dla: znajdziesz więcej informacji. |
stream |
Obsługiwane | |
string_decoder |
Obsługiwane | |
timers |
Uwzględniono | |
tls |
Obsługiwane | Parametry TLS (Transport Layer Security) działają zasadniczo Node.js. Zapoznaj się z artykułem na temat używania modułu Node.js TLS (SSL) w Apigee Edge. . |
tty |
Wyłączono | Nie ma standardowych danych wejściowych dla skryptów działających w Apigee Edge. |
url |
Obsługiwane | |
util |
Obsługiwane | |
vm |
Obsługiwane | |
zlib |
Obsługiwane |
Dodatkowe obsługiwane moduły
W tej sekcji znajdziesz dodatkowe moduły, które nie są obsługiwane w standardowym środowisku Node.js, ale są obsługiwane przez Trireme i Trireme działające w Apigee Edge. Trireme to kontener typu open source Node.js, który działa Apigee Edge Służy do uruchamiania skryptów Node.js w maszynie wirtualnej Java (JVM). Wszystkie z tej listy te moduły są dostępne w NPM.
Moduł | Opis |
---|---|
apigee-access | Umożliwia dostęp do aplikacji Node.js działających na platformie Apigee Edge Funkcje dostępne w Apigee. W tym module możesz: wyświetlać i modyfikować przepływ pracy zmiennych, pobieranie danych z bezpiecznego magazynu oraz korzystanie z tymczasowego przechowywania danych na serwerach brzegowych, limitów i protokołu OAuth usług Google. Zobacz też Korzystanie z apigee-access. |
trireme-support | Pozwala aplikacjom Node.js korzystać z funkcji charakterystycznych dla Trireme. Obecnie jest obsługiwana tylko jedna funkcja – wczytywanie modułów Node.js utworzonych w Javie. Uwaga: Usługa loadJars nie jest obsługiwana w Edge Cloud. |
trireme-xlst | Przedstawia abstrakcję przetwarzania XLST. Została stworzona specjalnie dla Trireme. platforma, która umożliwia wydajne przetwarzanie plików z komponentem DDEX, gdy działają w nich aplikacje Node.js Java. |
trireme-jdbc | Zapewnia dostęp do JDBC z Node.js. Uwaga: funkcja nieobsługiwana w Edge Cloud. Do prywatności brzegowej możesz umieścić pliki JAR JDPC w ścieżce klasy i użyć tego modułu. |
Obsługa często używanych modułów Node.js
Ograniczenia skryptów Node.js
Pamiętaj jednak, że Edge narzuca pewne ograniczenia na skrypty Node.js, takie jak :
- Aplikacje Node.js w środowisku Apigee Edge nie mają dostępu do usług przez internet przez UDP ze względu na architekturę sieci brzegowej.
- Dostęp do systemu plików jest ograniczony do katalogu, w którym został uruchomiony skrypt Node.js: /resources/node. Skrypty Node.js mogą odczytywać i zapisywać pliki w tym katalogu, w przypadku jako tymczasowy obszar, ale nie ma gwarancji, jak długo pliki i utrwalać się.
- Próby nasłuchiwania przychodzących połączeń TCP generują wyjątek.
- Funkcja manipulowania identyfikatorem użytkownika, członkostwem w grupie i katalogiem roboczym nie jest obsługiwane.
- W przypadku standardowych danych wejściowych można przekazywać argumenty za pomocą klasy ScriptTarget
Element TargetEndpoint. Zobacz Zaawansowane
Konfiguracja ScriptTarget, aby dowiedzieć się więcej.
- W przypadku standardowych danych wyjściowych można używać przycisku logów Node.js na urządzeniu Edge
interfejsu zarządzania serwerem proxy. Możesz również użyć instrukcji getlogs „apigeetool”. . Więcej
Więcej informacji znajdziesz w sekcji Wdrażanie
samodzielną aplikację Node.js.
- Moduły zależne od kodu natywnego nie są obsługiwane.
- Moduły zależne od funkcji EcmaScript 6, takie jak obietnice i generatory, nie są
obsługiwane.
- flagi środowiska wykonawczego Node.js, takie jak „harmony-proxy”; nie są obsługiwane.
Ustawianie ograniczeń połączeń IP w Edge dla Private Cloud
Edge dla chmury prywatnej może ograniczać dostęp kodu Node.js do adresów IP od „10.”, „192.168” i localhost. Jeśli spróbujesz uzyskać dostęp do tych adresów IP, pojawi się błąd w formularzu:
{ [Error: connect EINVAL] message: 'connect EINVAL', code: 'EINVAL', errno: 'EINVAL', syscall: 'connect' }
Te ograniczenia możesz zmienić, ustawiając właściwość conf_nodejs_connect.ranges.denied w: plik message-processors.properties dla każdego procesora wiadomości. Domyślnie właściwość ta ma wartość:
- Edge 4.17.05 i starsze: conf_nodejs_connect.ranges.denied=10.0.0.0/8,192.168.0.0/16,127.0.0.1/32
- Edge 4.17.09 i nowsze: conf_nodejs_connect.ranges.denied= (oznacza brak ograniczeń)
Aby ustawić tę właściwość:
- Otwórz plik message-processor.properties w
redaktorem. Jeśli plik nie istnieje, utwórz go:
> vi /<inst_root>/apigee/customer/application/message-processor.properties - Ustaw właściwość zgodnie z potrzebami. Aby na przykład odmówić dostępu tylko do hosta lokalnego:
conf_nodejs_connect.ranges.denied=127.0.0.1/32 - Zapisz zmiany.
- Sprawdź, czy plik właściwości należy do „apigee” użytkownik:
> chown apigee:apigee /<inst_root>/apigee/customer/application/message-processor.properties - Uruchom ponownie procesor wiadomości:
> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-message-processor Uruchom ponownie
Obsługa modułów http i https
Wszystkie aplikacje Node.js działające w Apigee Edge muszą używać interfejsu http
lub
https
do nasłuchiwania przychodzących żądań. Jeśli chcesz wdrożyć skrypt, który
nie nasłuchuje żądań przychodzących, a jedynie wykonuje działanie i kończy działanie.
Metoda listen
modułów http
i https
w
Node.js pobiera numer portu jako parametr. Na przykład:
svr.listen(process.env.PORT || 9000, function() { console.log('The server is running.'); });
Ten „port” w Node.js wymagany jest argument, ale Apigee Edge ignoruje ten parametr. Zamiast tego: serwer proxy interfejsu API, na którym działa skrypt Node.js, określa „hosta wirtualnego” którego słucha, a aplikacja Node.js używa tych samych hostów wirtualnych, jak każda inna usługa Apigee Edge serwera proxy.
Każde środowisko w Apigee ma co najmniej 1 hosta wirtualnego. Host wirtualny definiuje protokół HTTP
ustawienia połączenia z organizacją Apigee. Wszystkie serwery proxy interfejsów API w środowisku korzystają z protokołu
na tych samych hostach wirtualnych. Domyślnie dla każdego środowiska dostępne są 2 hosty wirtualne:
default
i secure
. Więcej informacji można znaleźć w sekcji
Pobieranie hosta wirtualnego i interfejsu API
cyklu tworzenia usługi.
Polecenie apigeetool deploynodeapp
generuje opakowanie serwera proxy Apigee Edge
wokół aplikacji Node.js. Po wdrożeniu aplikacja Node.js domyślnie nasłuchuje
hosta wirtualnego zdefiniowanego dla środowiska. W przypadku aplikacji Node.js adres URL zawsze będzie miał postać
http://{org_name}-{env_name}.apigee.net
Obsługa wiadomości przychodzących żądania
Podobnie jak w innych aplikacjach Apigee Edge, jeśli aplikacja proxy została skonfigurowana tak, aby nasłuchiwać
secure
, będzie akceptować przychodzące żądania za pomocą protokołu HTTPS.
Obsługa wiadomości wychodzących żądania
Oprócz odbierania ruchu przychodzącego aplikacje Node.js w Apigee Edge mogą używać
Moduły http
i https
do wysyłania żądań wychodzących, jak w przypadku każdego innego środowiska Node.js
aplikacji. Te moduły działają tak samo jak zawsze w Node.js.
Obsługa Moduł TLS
Apigee Edge obsługuje moduł tls Node.js.
Ten moduł używa OpenSSL do udostępniania protokołu TLS lub Secure Socket Layer
Zaszyfrowana komunikacja strumieniowa (SSL). Moduł tls
umożliwia tworzenie zabezpieczeń
połączeń z usługami backendu z aplikacji Node.js działających w Edge.
Aby zrozumieć, jak działa moduł tls
w Apigee Edge, ważne jest zapoznanie się
Dowiedz się, jak virtual hosts
są używane w Apigee Edge. Wszystkie środowiska w Apigee
ma co najmniej 1 hosta wirtualnego. Host wirtualny definiuje ustawienia HTTP dla połączenia z
Organizacja Apigee. Wszystkie serwery proxy interfejsów API w środowisku korzystają z tych samych hostów wirtualnych. Domyślnie
W każdym środowisku dostępne są 2 hosty wirtualne: default
oraz
secure
Więcej informacji na temat hostów wirtualnych można znaleźć w sekcji
Pobieranie hosta wirtualnego i interfejsu API
cyklu tworzenia usługi.
Przyjrzyjmy się teraz, jak Apigee Edge obsługuje komunikację TLS (SSL) dla przychodzących i wychodzących danych. do aplikacji Node.js.
Obsługa wiadomości przychodzących żądania
W zależności od konfiguracji hostów wirtualnych w organizacji Edge udostępnia te opcje:
- Jeśli serwer proxy interfejsu API jest skonfigurowany do nasłuchiwania na hoście wirtualnym
default
, akceptuje żądania przez HTTP. - Jeśli serwer proxy interfejsu API jest skonfigurowany do nasłuchiwania na hoście wirtualnym
secure
, akceptuje żądania przez HTTPS. Adres URL będzie w domenieapigee.net
, a do Zostanie użyty certyfikat SSL z symbolem wieloznacznym dla domeny*.apigee.net
. Dopóki aplikacje nie do domenyapigee.net
, certyfikat SSL zweryfikuje w zwykły sposób.
Obsługa wiadomości wychodzących żądania
Żądania wychodzące możesz wysyłać za pomocą modułu tls
w taki sam sposób jak
zwykle w Node.js. Musisz dodać klucze i certyfikaty po stronie klienta
(.pem
plików) do katalogu resources/node
i załaduj je w swoim katalogu
skrypt. Informacje o korzystaniu z modułu tls
i jego metod znajdziesz tutaj:
Dokumentacja modułu Node.js tls.
Zaawansowana konfiguracja ScriptTarget
<TargetEndpoint name="default"> <ScriptTarget> <ResourceURL>node://hello.js</ResourceURL> <EnvironmentVariables> <EnvironmentVariable name="NAME">VALUE</EnvironmentVariable> </EnvironmentVariables> <Arguments> <Argument>ARG</Argument> </Arguments> </ScriptTarget> </TargetEndpoint>,