Wyświetlasz dokumentację Apigee Edge.
Zapoznaj się z dokumentacją Apigee X. Informacje
W tych samouczkach wyjaśniamy, jak wdrażać aplikacje Node.js na urządzeniach Edge za pomocą celów hostowanych, czyli natywnych środowisk Node.js hostowanych przez Apigee.
Samouczki przedstawiają następujące zadania:
- Wdrażanie aplikacji Node.js w hostowanych miejscach docelowych przy użyciu interfejsu Edge.
- Wdrażanie aplikacji Node.js w hostowanych celach z lokalnego komputera programistycznego.
- Migracja istniejącego serwera proxy z tradycyjną implementacją celu Node.js w Edge na cele hostowane.
Wdrażanie aplikacji Node.js w hostowanych miejscach docelowych za pomocą interfejsu Edge
W tym samouczku wdrożesz prostą aplikację Node.js do hostowanych celów za pomocą interfejsu użytkownika Edge. W ramach tego samouczka poznasz podstawową strukturę i zawartość serwera proxy hostowanych celów oraz dowiesz się, jak uzyskać dostęp do plików dziennika wdrożenia i kompilacji.
Zaloguj się
- Otwórz stronę apigee.com/edge
- Aby się zalogować, wpisz dane logowania do Apigee.
Tworzenie nowego serwera proxy
- W menu bocznym kliknij Rozwijanie > Proxy interfejsu API.
- Kliknij + Serwer proxy.
- Na stronie Create Proxy (Utwórz serwer proxy) wybierz Hosted Target (Hostowany cel).
- Kliknij Dalej.
- W polu Proxy Name (Nazwa serwera proxy) wpisz
hello-hosted-targets
. - Upewnij się, że wybrana jest przykładowa aplikacja „Hello World”.
- Kliknij Dalej.
- Na stronie Zabezpieczenia wybierz dla opcji Autoryzacja opcję Pass-through (none) (Przekaż).
- Kliknij Dalej.
- Kliknij Dalej.
- Na stronie kompilacji sprawdź, czy wybrane jest środowisko testowe. Zwróć uwagę, że typ serwera proxy to docelowe środowiska hostowane.
- Kliknij Build and Deploy (Utwórz i wdróż). Wdrożenie serwera proxy może chwilę potrwać.
- Po wdrożeniu serwera proxy kliknij Wyświetl serwer proxy hello-hosted-targets u dołu strony.
- Wywołaj interfejs API proxy. Najłatwiej to zrobić, przechodząc na kartę Śledzenie, uruchamiając sesję śledzenia i klikając Wyślij. Powinien wyświetlić się stan 200 z tą odpowiedzią:
{"date":"2018-09-26T14:23:04.550Z","msg":"Hello, World!"}
Sprawdź serwer proxy
- W interfejsie Edge kliknij kartę Opracowywanie.
- W nawigatorze w opcji Docelowe punkty końcowe wybierz default.
- Zwróć uwagę na pusty element podrzędny
<HostedTarget/>
w edytorze kodu pod elementem<TargetEndpoint>
. Ten pusty tag jest wymagany. Informuje on Edge, że miejscem docelowym serwera proxy jest aplikacja wdrożona w środowisku hostowanych celów. - W Nawigatorze zwróć uwagę na zawartość w sekcji Skrypty. Pliki aplikacji Node.js są wyświetlane z etykietą hostowane.
- W interfejsie Edge sprawdź pliki wymienione w sekcji Hostowane w sekcji Skrypty:
- Plik app.yaml zawiera informacje o konfiguracji. Możesz na przykład dodać zmienne środowiskowe, które będą dostępne dla aplikacji Node.js w czasie wykonywania. W tym przykładzie nie musisz modyfikować tego pliku.
- Plik index.js to główny plik aplikacji Node.js.
- Jeśli Twoja aplikacja ma jakiekolwiek zależności od modułów, muszą one być wymienione w pliku package.json.
Wyświetlanie plików dziennika
Pliki dzienników aplikacji mogą być pomocne przy debugowaniu problemów, które pojawiają się podczas fazy kompilacji i w czasie działania.
- W interfejsie Edge kliknij kartę Opracowywanie.
- Aby wyświetlić log kompilacji, kliknij Logi kompilacji.
- Aby wyświetlić dziennik wdrożenia, kliknij Logi środowiska wykonawczego.
Zobacz też Uzyskiwanie dostępu do plików dziennika.
Podsumowanie
- Udało Ci się wdrożyć prostą aplikację Node.js w środowisku hostowanych celów i przetestować ją w interfejsie Edge.
- Dowiedz się, że serwer proxy Hosted Targets wymaga specjalnego pustego tagu w miejscu docelowym Target (Cele) o nazwie
<HostedTarget/>
. - dowiesz się, że Edge automatycznie wczytuje zależności modułu i że te zależności muszą być wymienione w pliku
package.json
. - Wiesz już też, jak sprawdzać pliki logu kompilacji i czasu działania.
Wdrażanie Node.js z systemu na urządzenie brzegowe
W tej sekcji wyjaśniamy, jak wdrożyć samodzielną aplikację Node.js z systemu lokalnego w hostowanych miejscach docelowych za pomocą narzędzia apigeetool. Narzędzie apigeetool
grupuje aplikację Node.js w nowy serwer proxy hostowanych celów i wdraża ją w Edge.
Zainstaluj narzędzie apigeetool
Korzystanie z apigeetool jest zalecaną metodą wdrażania kodu proxy w Edge. Aby zainstalować narzędzie apigeetool, uruchom to polecenie NPM:
npm install -g apigeetool
Tworzenie aplikacji Node.js
Dla ułatwienia mamy dla Ciebie kod prostej aplikacji Node.js.
- Utwórz katalog dla aplikacji Node.js. Nazwij go node-hosted-express.
- cd do nowego katalogu.
- Utwórz plik o nazwie index.js i skopiuj do niego ten kod.
- Utwórz plik o nazwie package.json i skopiuj do niego ten kod. Zwróć uwagę, że moduł ekspresowy jest wymieniony jako zależność.
- Utwórz plik o nazwie app.yaml i skopiuj do niego ten kod:
- Sprawdź, czy katalog wygląda tak:
ls app.yaml index.js package.json
var express = require('express') var app = express() app.get('/', function(req, res) { res.json({ hello: "Hello World!" }) }) app.get('/hello/:name', function(req, res) { var name = req.params.name res.json({ hello: "hello " + name }) }) var server = app.listen(process.env.PORT || 9000, function() { console.log('Listening on port %d', server.address().port) })
{ "name": "hello-world", "version": "1.0.0", "main": "index.js", "scripts": { "start": "node index.js --use_strict" }, "author": "", "license": "", "dependencies": { "express": "^4.16.0" } }
runtime: node runtimeVersion: 8 application: my-express-app env: - name: NODE_ENV value: production - name: LOG_LEVEL value: 3
Sprawdzanie wymaganej struktury katalogu kodu aplikacji
Aplikacja Node.js musi mieć tę samą strukturę co standardowa aplikacja Node.js. Zanim wdrożysz ją za pomocą apigeetool
w Edge, musisz jednak spełnić te wymagania:
- Plik manifestu app.yaml jest wymagany i musi znajdować się w katalogu głównym aplikacji. Więcej informacji o tym pliku znajdziesz w pliku manifestu.
- Plik package.json jest wymagany. Musi zawierać listę wszystkich zależności wymaganych przez aplikację.
- Folder node_modules nie jest wymagany. Po wdrożeniu aplikacji Node.js serwer Edge uruchamia za Ciebie polecenie npm install. Pobiera zależności z pliku package.json. Parametr node_modules trzeba podać tylko wtedy, gdy masz moduły niestandardowe, które nie są dostępne w usłudze npm.
Wdrażanie serwera proxy
- W terminalu wpisz cd do katalogu głównego aplikacji Node.js.
- Uruchom apigeetool za pomocą polecenia deployhostedtarget:
apigeetool deployhostedtarget -o org -e env -n proxy-name -b /node-hosted-express -u username
gdzie -n to nazwa, którą chcesz nadać nowemu serwerowi proxy. Musi być unikalna w obrębie organizacji. W nazwie możesz używać tych znaków: a-z0-9._\-$%
Na przykład:
apigeetool deployhostedtarget -o myorg -e test -n node-hosted-express -b /node-hosted-express -u jdoe@apigee.com
Więcej informacji o używaniu apigeetool znajdziesz na stronie https://github.com/apigee/apigeetool-node.
Testowanie serwera proxy
Możesz przetestować serwer proxy za pomocą polecenia cURL, klienta REST, takiego jak Postman, lub w interfejsie Edge w narzędziu Trace. Oto przykładowe polecenie cURL.
curl http://myorg-test.apigee.net/node-hosted-express {"date":1506992197427,"msg":"hello-world"}
Uzyskiwanie logów kompilacji
Logi kompilacji zawierają dane wyjściowe związane z wdrażaniem i kompilowaniem aplikacji Node.js. Zobacz też pliki logów.
apigeetool getlogs -u username -o org -e env --hosted-build -n proxy-name
Na przykład:
apigeetool getlogs -u jdoe@apigee.com -o myorg -e test --hosted-build -n node-hosted-express
Pobieranie dzienników środowiska wykonawczego
Logi środowiska wykonawczego zawierają dane wyjściowe związane z uruchomioną aplikacją. Logi środowiska wykonawczego mają zakres ograniczony do środowiska i zwracają logi dla aktualnie wdrożonej wersji serwera proxy. Zobacz też Pliki dziennika.
apigeetool getlogs -u username -o org -e env --hosted-runtime -n proxy-name
Na przykład:
apigeetool getlogs -u jdoe@apigee.com -o myorg -e test --hosted-runtime -n node-hosted-express
Wyświetlanie serwera proxy w interfejsie Edge
Po udanym wdrożeniu możesz wyświetlić i edytować serwer proxy w sekcji serwerów proxy interfejsów API w interfejsie Edge.
Migracja istniejącego serwera proxy Node.js do serwera proxy hostowanych celów
Z tej sekcji dowiesz się, jak ręcznie przenieść istniejące Edge API proxy, które korzysta z tradycyjnej implementacji celu Node.js, do celów hostowanych. Dowiesz się też, jak wdrożyć serwer proxy po wykonaniu kroków migracji.
Kroki migracji zachowują strukturę serwera proxy API, zasady, przepływy i inne elementy konfiguracji. Migrację możesz przeprowadzić w 4 kroki, jak opisano poniżej, a potem wdrożyć przeniesiony serwer proxy za pomocą apigeetool.
.Krok 1. Dostosuj strukturę pliku proxy
Aby dostosować strukturę plików, serwer proxy interfejsu API musi znajdować się w Twoim lokalnym systemie plików. Jeśli serwer proxy jest używany w Edge, musisz go pobrać, zanim przejdziesz dalej. W tradycyjnej konfiguracji i pakiecie usługi proxy w Edge, który zawiera kod Node.js, obowiązuje ta struktura plików.
Kod aplikacji Node.js znajduje się w katalogu resources/node
:
apiproxy/ policies/ proxies/ targets/ resources/ node/ Your application code
W przypadku hostowanych celów musisz umieścić katalog główny aplikacji Node.js w katalogu o nazwie resources/hosted
. Wystarczy utworzyć nowy katalog o nazwie resources/hosted i przenieść do niego zawartość folderu resources/node
. Potem możesz usunąć katalog resources/node
.
apiproxy/ policies/ proxies/ targets/ resources/ hosted/ Your application code
Krok 2. Dodaj plik manifestu
Utwórz plik manifestu o nazwie app.yaml
i umieść go w katalogu apiproxy/resources/hosted
.
Poniżej znajduje się przykładowy plik app.yaml
. Określa, że środowisko wykonawcze to Node.js (wymagane). Tworzy też zmienną środowiskową w środowisku wykonawczym (zmienną, do której aplikacja Node.js może uzyskać dostęp). Zmienne środowiskowe są opcjonalne i podane są tutaj tylko w celu przykładu. Więcej informacji i przykładów znajdziesz w artykule Plik manifestu.
runtime: node env: - name: NODE_ENV value: production
Ten przykład pokazuje strukturę projektu Node.js znajdującą się w prawidłowej lokalizacji na serwerze proxy dla wdrożenia hostowanych celów:
apiproxy/ resources/ hosted/ index.js node_modules/ app.yaml package.json
Krok 3. Sprawdź, czy masz plik package.json
W tradycyjnych proxy Node.js w Edge package.json
był opcjonalny. W przypadku celów hostowanych musisz jednak podać jeden w katalogu apiproxy/resources/hosted
. Pamiętaj, aby określić w tym pliku wszystkie wymagane zależności aplikacji.
Krok 4. Zmień docelowy punkt końcowy serwera proxy
Tradycyjny serwer proxy Node.js wymaga, aby w pliku docelowego punktu końcowego (zazwyczaj /apiproxy/targets/default.xml
) znajdował się tag o nazwie <ScriptTarget>
. W przypadku celów hostowanych musisz dodać pusty tag o nazwie <HostedTarget/>. Jeśli w pliku znajduje się tag ScriptTarget
, możesz go po prostu usunąć.
Na przykład:
<?xml version="1.0" encoding="UTF-8"?> <TargetEndpoint name="default"> <Description /> <FaultRules /> <PreFlow name="PreFlow"> <Request /> <Response /> </PreFlow> <PostFlow name="PostFlow"> <Request /> <Response /> </PostFlow> <Flows /> <HostedTarget /> </TargetEndpoint>
Wdrażanie serwera proxy
Teraz możesz wdrożyć serwer proxy za pomocą polecenia apigeetool deployproxy
.
- cd do katalogu głównego serwera proxy: /apiproxy
- Aby wdrożyć serwer proxy, użyj tego polecenia:
apigeetool deployproxy -u username -o org -e env -n proxy-name -d .
Na przykład:
apigeetool deployproxy -u jdoe -o docs -e test -n hello-world -d .
Więcej informacji o korzystaniu z apigeetool
znajdziesz na stronie https://github.com/apigee/apigeetool-node/blob/master/README.md.
Testowanie serwera proxy
Serwer proxy możesz przetestować za pomocą polecenia cURL w kliencie REST, takim jak Postman, lub w interfejsie Edge w narzędziu Trace. Oto przykładowe polecenie cURL:
curl http://myorg-test.apigee.net/hello-world Hello,World!