Samouczki hostowanych celów

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
info

Z tych samouczków dowiesz się, jak wdrożyć aplikacje Node.js w Edge za pomocą hostowanych miejsc docelowych, czyli natywnego środowiska wykonawczego Node.js hostowanego przez Apigee.

Samouczki obejmują te zadania:

  • Wdrażanie aplikacji Node.js w hostowanych miejscach docelowych za pomocą interfejsu Edge.
  • Wdrażanie aplikacji Node.js w hostowanych miejscach docelowych z lokalnego komputera używanego do programowania.
  • Migrowanie istniejącego serwera proxy z tradycyjną implementacją miejsca docelowego Node.js w Edge do hostowanych miejsc docelowych.

Wdrażanie aplikacji Node.js w hostowanych miejscach docelowych za pomocą interfejsu Edge

W tym samouczku wdrożysz prostą aplikację Node.js w hostowanych miejscach docelowych za pomocą interfejsu Edge UI. Po ukończeniu samouczka zrozumiesz podstawową strukturę i zawartość serwera proxy hostowanych miejsc docelowych oraz dowiesz się, jak uzyskać dostęp do plików dziennika wdrożenia i kompilacji.

Zaloguj się

  1. Otwórz stronę apigee.com/edge.
  2. Aby się zalogować, wpisz dane logowania do Apigee.

Utwórz nowe proxy

  1. W menu nawigacyjnym po lewej stronie kliknij Develop (Programowanie) > API Proxies (Serwery proxy interfejsu API).
  2. Kliknij + Proxy.
  3. Na stronie Create Proxy (Utwórz serwer proxy) kliknij Hosted Target (Hostowane miejsce docelowe).
  4. Kliknij Dalej.
  5. W polu Proxy Name (Nazwa serwera proxy) wpisz hello-hosted-targets.
  6. Upewnij się, że jest zaznaczona opcja "Hello World" Sample (Przykładowy kod „Hello World”).
  7. Kliknij Dalej.
  8. Na stronie Security (Bezpieczeństwo) w sekcji Authorization (Autoryzacja) wybierz Pass through (none) (Przekaż dalej (brak)).
  9. Kliknij Dalej.
  10. Kliknij Dalej.
  11. Na stronie Build (Kompilacja) upewnij się, że jest wybrane środowisko test. Zwróć uwagę że Proxy Type (Typ serwera proxy) to Hosted Targets (Hostowane miejsca docelowe).
  12. Kliknij Build and Deploy (Skompiluj i wdróż). Wdrożenie serwera proxy może potrwać kilka minut.
  13. Gdy serwer proxy zostanie wdrożony, u dołu strony kliknij View hello-hosted-targets proxy (Wyświetl serwer proxy hello-hosted-targets).
  14. Wywołaj serwer proxy interfejsu API. Najłatwiej to zrobić, otwierając kartę Trace (Śledzenie), rozpoczynając sesję śledzenia i klikając Send (Wyślij). Powinien pojawić się stan 200 z tą odpowiedzią:
    {"date":"2018-09-26T14:23:04.550Z","msg":"Hello, World!"}

Sprawdź serwer proxy

  1. W interfejsie Edge kliknij kartę Develop (Programowanie).
  2. W Navigatorze (Nawigatorze) w sekcji Target Endpoints (Docelowe punkty końcowe) kliknij default (domyślny).
  3. W edytorze kodu zobaczysz, że w elemencie <TargetEndpoint> znajduje się pusty element podrzędny <HostedTarget/>. Ten pusty tag jest wymagany. Informuje on Edge, że miejscem docelowym serwera proxy jest aplikacja wdrożona w środowisku hostowanych miejsc docelowych.

  4. W Navigatorze (Nawigatorze) sprawdź zawartość sekcji Scripts (Skrypty). Pliki aplikacji Node.js są wymienione pod etykietą hosted.

  5. W interfejsie Edge sprawdź pliki wymienione w sekcji Scripts pod etykietą hosted:
    • 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 musisz modyfikować tego pliku.
    • Plik index.js to główny plik aplikacji Node.js.
    • Jeśli Twoja aplikacja ma jakieś zależności od modułów, muszą one być wymienione w pliku package.json.

Wyświetl pliki dziennika

Pliki dziennika aplikacji mogą być przydatne do debugowania problemów występujących podczas kompilacji i w czasie działania.

  1. W interfejsie Edge kliknij kartę Develop (Programowanie).
  2. Aby wyświetlić dziennik kompilacji, kliknij Build Logs (Logi kompilacji).
  3. Aby wyświetlić dziennik wdrożenia, kliknij Runtime Logs (Logi środowiska wykonawczego).

    Zobacz też Uzyskiwanie dostępu do plików dziennika.

Podsumowanie

  • Wdrożono prostą aplikację Node.js w środowisku hostowanych miejsc docelowych i przetestowano ją w interfejsie Edge.
  • Dowiedzieliśmy się, że serwer proxy hostowanych miejsc docelowych wymaga specjalnego pustego tagu w docelowym punkcie końcowym o nazwie <HostedTarget/>.
  • Dowiedzieliśmy się, że Edge automatycznie wczytuje zależności modułów i że zależności muszą być wymienione w pliku package.json.
  • Dowiedzieliśmy się też, jak sprawdzać pliki dziennika kompilacji i środowiska wykonawczego.

Wdrażanie Node.js z systemu do Edge

W tej sekcji dowiesz się, jak wdrożyć samodzielną aplikację Node.js z lokalnego systemu do hostowanych miejsc docelowych za pomocą narzędzia apigeetool. Narzędzie apigeetool pakuje aplikację Node.js w nowy serwer proxy hostowanych miejsc docelowych i wdraża go w Edge.

Zainstaluj apigeetool

Używanie apigeetool to zalecany sposób wdrażania kodu serwera proxy kodu w Edge przez programistów. Aby zainstalować apigeetool uruchom to polecenie NPM:

npm install -g apigeetool

Utwórz aplikację Node.js

Aby ułatwić Ci zadanie, udostępniamy kod prostej aplikacji Node.js.

  1. Utwórz katalog na aplikację Node.js. Nazwij go node-hosted-express.
  2. cd do nowego katalogu.
  3. Utwórz plik o nazwie index.js i skopiuj do niego ten kod.
  4. 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)
    })
  5. Utwórz plik o nazwie package.json i skopiuj do niego ten kod. Zwróć uwagę, że moduł express jest wymieniony jako zależność.
  6. {
        "name": "hello-world",
        "version": "1.0.0",
        "main": "index.js",
        "scripts": {
            "start": "node index.js --use_strict"
        },
        "author": "",
        "license": "",
        "dependencies": {
            "express": "^4.16.0"
        }
    }
  7. Utwórz plik o nazwie app.yaml i skopiuj do niego ten kod:
  8. runtime: node
    runtimeVersion: 8
    application: my-express-app
    env:
      - name: NODE_ENV
        value: production
      - name: LOG_LEVEL
        value: 3
  9. Upewnij się, że katalog wygląda tak:
    ls
    app.yaml index.js package.json
    

Sprawdzanie wymaganej struktury katalogów kodu aplikacji

Twoja aplikacja Node.js musi mieć taką samą strukturę jak standardowa aplikacja Node.js. Zanim jednak wdrożysz ją w Edge za pomocą narzędzia apigeetool, upewnij się, że spełniasz te wymagania:

  • Wymagany jest plik manifestu app.yaml, który musi znajdować się w katalogu głównym aplikacji. Więcej informacji o tym pliku znajdziesz w sekcji Plik manifestu.
  • Wymagany jest plik package.json. Musi on zawierać listę wszystkich zależności wymaganych przez aplikację.
  • Folder node_modules nie jest wymagany. Gdy aplikacja Node.js jest wdrażana, Edge automatycznie uruchamia polecenie npm install. Pobiera zależności z package.json. Folder node_modules musisz podać tylko wtedy, gdy masz moduły niestandardowe, które nie są dostępne przez npm.

Wdrażanie serwera proxy

  1. W terminalu cd do katalogu głównego aplikacji Node.js.
  2. Uruchom apigeetool za pomocą polecenia deployhostedtarget:
  3. 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żna używać tylko 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

Serwer proxy możesz przetestować za pomocą polecenia cURL, klienta REST (np. Postman) lub w interfejsie Edge w narzędziu Trace (Śledzenie). Oto przykładowe polecenie cURL.

curl http://myorg-test.apigee.net/node-hosted-express
     {"date":1506992197427,"msg":"hello-world"}

Pobieranie logów kompilacji

Logi kompilacji zawierają 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 zawierają dane wyjściowe związane z działającą aplikacją. Logi środowiska wykonawczego są ograniczone 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 pomyślnym wdrożeniu możesz wyświetlić i edytować serwer proxy w sekcji API Proxies (Serwery proxy interfejsu API) w interfejsie Edge.

Migrowanie istniejącego serwera proxy Node.js do serwera proxy hostowanych miejsc docelowych

W tej sekcji dowiesz się, jak ręcznie zmigrować istniejący serwer proxy interfejsu API Edge, który korzysta z tradycyjnej implementacji miejsca docelowego Node.js, do hostowanych miejsc docelowych. Wyjaśnimy też, jak wdrożyć serwer proxy po wykonaniu czynności migracji.

Czynności migracji zachowują strukturę serwera proxy interfejsu API, zasady, przepływy i inne elementy konfiguracji. Migrację możesz przeprowadzić w 4 krokach opisanych poniżej, a następnie wdrożyć zmigrowany serwer proxy za pomocą narzędzia apigeetool.

Krok 1. Dostosuj strukturę plików serwera proxy

Aby 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ć przed kontynuowaniem. W tradycyjnej konfiguracji „pakiet” serwera proxy Edge, który zawiera kod Node.js, ma taką strukturę plików. Kod aplikacji Node.js znajduje się w katalogu resources/node:

apiproxy/
    policies/
    proxies/
    targets/
    resources/
      node/
        Your application code


W przypadku hostowanych miejsc docelowych musisz umieścić katalog główny aplikacji Node.js w katalogu o nazwie resources/hosted. Po prostu utwórz nowy katalog o nazwie resources/hosted i przenieś do niego zawartość katalogu 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ład pliku app.yaml. Określa on, że środowiskiem wykonawczym jest Node.js (wymagane). Tworzy też zmienną środowiskową w środowisku wykonawczym (zmienną, do której może uzyskać dostęp aplikacja Node.js). Zmienna środowiskowa jest opcjonalna i jest tu pokazana tylko jako przykład. Więcej informacji i przykładów znajdziesz w sekcji Plik manifestu.

runtime: node
  env:
    - name: NODE_ENV
      value: production


Poniższy przykład przedstawia strukturę projektu Node.js, która znajduje się w prawidłowej lokalizacji w serwerze proxy do wdrożenia w hostowanych miejscach docelowych:

apiproxy/
   resources/
      hosted/
        index.js
        node_modules/
        app.yaml
        package.json

Krok 3. Upewnij się, że masz plik package.json

W tradycyjnych serwerach proxy Node.js w Edge plik package.json był opcjonalny. W przypadku hostowanych miejsc docelowych musisz jednak podać go w katalogu apiproxy/resources/hosted. W tym pliku określ wszystkie 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 miejsc docelowych 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

Serwer proxy możesz teraz wdrożyć za pomocą polecenia apigeetool deployproxy.

  1. cd do katalogu głównego serwera proxy: /apiproxy
  2. Aby wdrożyć serwer proxy, użyj tego polecenia:
  3. 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 używaniu 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 (np. Postman) lub w interfejsie Edge w narzędziu Trace (Śledzenie). Oto przykładowe polecenie cURL:

curl http://myorg-test.apigee.net/hello-world
Hello,World!