Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. Informacje
Z tych samouczków dowiesz się, jak wdrażać aplikacje Node.js w Edge przy użyciu hostowanych środowisk docelowych – natywnego środowiska wykonawczego Node.js hostowanego przez Apigee.
Samouczki omówią następujące zadania:
- Wdrażanie aplikacji Node.js w hostowanych środowiskach docelowych za pomocą interfejsu Edge.
- Wdrażanie aplikacji Node.js w hostowanych środowiskach docelowych z poziomu lokalnego komputera programistycznego.
- Migracja istniejącego serwera proxy z tradycyjną implementacją docelową Node.js do hostowanych celów.
Wdrażanie aplikacji Node.js w hostowanych środowiskach docelowych za pomocą interfejsu Edge
W tym samouczku wdrożysz prostą aplikację Node.js w hostowanych obiektach docelowych za pomocą interfejsu Edge. Po ukończeniu samouczka poznasz podstawową strukturę i zawartość serwera proxy hostowanych celów oraz sposób uzyskiwania dostępu do plików dziennika wdrażania i kompilacji.
Zaloguj się
- Wejdź na apigee.com/edge.
- Aby się zalogować, wpisz dane logowania do Apigee.
Utwórz nowy serwer proxy
- W bocznym menu nawigacyjnym kliknij Programowanie > Proxies API.
- Kliknij + Serwer proxy.
- Na stronie Tworzenie serwera proxy wybierz Hostowany cel.
- Kliknij Dalej.
- W polu Proxy Name (Nazwa serwera proxy) wpisz
hello-hosted-targets
. - Pamiętaj, aby wybrać Próbkę „Hello World”.
- Kliknij Dalej.
- Na stronie Zabezpieczenia wybierz Przekazywanie (brak) w sekcji Autoryzacja.
- Kliknij Dalej.
- Kliknij Dalej.
- Na stronie kompilacji wybierz środowisko testowe. Zwróć uwagę, że typ serwera proxy to Hostowane cele.
- Kliknij Skompiluj 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 serwer proxy interfejsu API. Najprostszym sposobem jest przejście na kartę Śledzenie, rozpoczęcie sesji śledzenia i kliknięcie Wyślij. Powinien wyświetlić się stan 200 z następującą odpowiedzią:
{"date":"2018-09-26T14:23:04.550Z","msg":"Hello, World!"}
Sprawdź serwer proxy
- W interfejsie użytkownika Edge kliknij kartę Develop (Programowanie).
- W nawigatorze w polu Docelowe punkty końcowe wybierz default (domyślnie).
- W edytorze kodu poszukaj pustego elementu podrzędnego
<HostedTarget/>
pod elementem<TargetEndpoint>
. Ten pusty tag jest wymagany. Informuje przeglądarkę Edge, że miejscem docelowym serwera proxy jest aplikacja wdrożona w środowisku hostowanych obiektów docelowych. - W Nawigatorze zwróć uwagę na zawartość sekcji Skrypty. Pliki aplikacji Node.js są wymienione pod etykietą hostowane.
- W interfejsie użytkownika Edge sprawdź pliki wymienione w sekcji hostowane w Skryptach:
- 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 działania. W tym przykładzie nie trzeba modyfikować tego pliku.
- Plik index.js to główny plik aplikacji Node.js.
- Jeśli Twoja aplikacja ma jakiekolwiek zależności modułów, muszą one być wymienione w pliku package.json.
Wyświetl pliki dziennika
Pliki dziennika aplikacji mogą być przydatne przy debugowaniu problemów, które pojawiają się na etapie kompilacji i w czasie działania aplikacji.
- W interfejsie użytkownika Edge kliknij kartę Develop (Programowanie).
- Aby wyświetlić log kompilacji, kliknij Logi kompilacji.
- Aby wyświetlić dziennik wdrożenia, kliknij Logi środowiska wykonawczego.
Zobacz też Dostęp do plików dziennika.
Podsumowanie
- Wdrożono prostą aplikację Node.js w środowisku hostowanych zasobów docelowych i przetestowaliśmy ją w interfejsie użytkownika Edge.
- Wiesz, że serwer proxy hostowanych celów wymaga specjalnego pustego tagu w docelowym punkcie końcowym o nazwie
<HostedTarget/>
. - Wiesz już, że Edge automatycznie wczytuje zależności modułów i że muszą one być wymienione w pliku
package.json
. - Wiesz też, jak sprawdzać pliki logów kompilacji i środowiska wykonawczego.
Wdróż Node.js z systemu na Edge
Ta sekcja wyjaśnia, jak wdrożyć samodzielną aplikację Node.js z systemu lokalnego w hostowanych środowiskach docelowych przy użyciu narzędzia apigeetool. Narzędzie apigeetool
pakietuje aplikację Node.js do nowego serwera proxy hostowanych celów i wdraża ją na serwerach brzegowych.
Zainstaluj Apigeetool
Użycie narzędzia apigeetool to zalecany sposób wdrażania kodu serwera proxy w Edge. Aby zainstalować narzędzie apigeetool, uruchom to polecenie NPM:
npm install -g apigeetool
Tworzenie aplikacji Node.js
Dla ułatwienia udostępniamy Ci kod prostej aplikacji Node.js.
- Utwórz katalog dla aplikacji Node.js. Wywołaj katalog 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:
- Upewnij się, że 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
Przeglądanie wymaganej struktury katalogu dla kodu aplikacji
Twoja aplikacja Node.js musi mieć tę samą strukturę co standardowa aplikacja Node.js. Zanim wdrożysz aplikację apigeetool
w środowisku brzegowym, upewnij się, że spełnia ona 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 sekcji Plik manifestu.
- Plik package.json jest wymagany. Musi zawierać listę wszystkich zależności, których wymaga aplikacja.
- Folder node_modules nie jest wymagany. Edge uruchamia dla Ciebie instalację npm po wdrożeniu aplikacji Node.js. Pobiera zależności z pliku package.json. node_modules musisz podać tylko wtedy, gdy masz moduły niestandardowe, które są niedostępne w elemencie npm.
Wdrażanie serwera proxy
- W terminalu wpisz cd, aby przejść do katalogu głównego aplikacji Node.js.
- Uruchom narzędzie 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ć niepowtarzalna w obrębie organizacji. Dozwolone są tylko te znaki: 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 korzystaniu z narzędzia apigeetool znajdziesz na stronie https://github.com/apigee/apigeetool-node.
Testowanie serwera proxy
Serwer proxy możesz przetestować za pomocą polecenia cURL, klienta REST takiego jak Postman lub w interfejsie użytkownika Edge w narzędziu do śledzenia. 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 pokazują dane wyjściowe związane z wdrażaniem i kompilowaniem aplikacji Node.js. Zobacz też Pliki dziennika.
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 logów środowiska wykonawczego
Logi środowiska wykonawczego pokazują dane wyjściowe związane z uruchomioną aplikacją. Logi środowiska wykonawczego są ograniczone do środowiska i zwracają logi dotyczące 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 użytkownika Edge
Po udanym wdrożeniu możesz wyświetlać i edytować serwer proxy w sekcji interfejsów API interfejsów API w interfejsie użytkownika Edge.
Migracja istniejącego serwera proxy Node.js do serwera proxy hostowanych celów
W tej sekcji wyjaśniamy, jak ręcznie przenieść istniejący serwer proxy interfejsu Edge API, który korzysta z tradycyjnej implementacji docelowej środowiska Node.js do hostowanych celów. Wyjaśniono też, jak wdrożyć serwer proxy po wykonaniu kroków migracji.
Migracja zachowuje strukturę serwera proxy interfejsu API, zasady, przepływy i inne elementy konfiguracji. Migrację możesz przeprowadzić w 4 krokach opisanych poniżej, a potem wdrożyć przeniesiony serwer proxy za pomocą narzędzia apigeetool.
Krok 1. Dostosuj strukturę pliku serwera proxy
Aby można było dostosować strukturę plików, serwer proxy interfejsu API musi znajdować się w lokalnym systemie plików. Jeśli serwer proxy jest wdrożony w Edge, musisz go pobrać, zanim przejdziesz dalej. W tradycyjnej konfiguracji „pakiet” serwera proxy Edge, który zawiera kod Node.js, ma taką strukturę pliku.
Kod aplikacji Node.js znajduje się w katalogu resources/node
:
apiproxy/ policies/ proxies/ targets/ resources/ node/ Your application code
W przypadku celów hostowanych musisz umieścić katalog główny aplikacji Node.js w katalogu o nazwie resources/hosted
. Wystarczy, że utworzysz nowy katalog o nazwie resources/hosted i przeniesiesz do niego zawartość resources/node
. Następnie 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 znajdziesz przykładowy plik app.yaml
. Określa, że środowisko wykonawcze to Node.js (wymagane). Tworzy także zmienną środowiskową w środowisku wykonawczym (zmienną, do której aplikacja może mieć dostęp). Zmienna środowiskowa jest opcjonalna i jest widoczna tylko tutaj jako przykład. Więcej informacji i przykładów znajdziesz w artykule Plik manifestu.
runtime: node env: - name: NODE_ENV value: production
Poniższy przykład przedstawia strukturę projektu Node.js 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 serwerach proxy Edge Node.js właściwość package.json
była opcjonalna. Jednak w przypadku hostowanych celów musisz podać cel w katalogu apiproxy/resources/hosted
. Pamiętaj, by w tym pliku określić wszelkie wymagane zależności aplikacji.
Krok 4. Zmodyfikuj docelowy punkt końcowy serwera proxy
Tradycyjny serwer proxy Node.js wymaga, aby w pliku docelowego punktu końcowego (zwykle /apiproxy/targets/default.xml
) znajdował się tag o nazwie <ScriptTarget>
. W przypadku hostowanych celów musisz dodać pusty tag o nazwie <HostedTarget/>. Jeśli plik zawiera 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
Możesz teraz 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 narzędzia 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, klienta REST takiego jak Postman lub w interfejsie użytkownika Edge w narzędziu do śledzenia. Oto przykładowe polecenie cURL:
curl http://myorg-test.apigee.net/hello-world Hello,World!