Samouczki hostowanych celów

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ę

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

Tworzenie nowego serwera proxy

  1. W menu bocznym kliknij Rozwijanie > Proxy interfejsu API.
  2. Kliknij + Serwer proxy.
  3. Na stronie Create Proxy (Utwórz serwer proxy) wybierz Hosted Target (Hostowany cel).
  4. Kliknij Dalej.
  5. W polu Proxy Name (Nazwa serwera proxy) wpisz hello-hosted-targets.
  6. Upewnij się, że wybrana jest przykładowa aplikacja „Hello World”.
  7. Kliknij Dalej.
  8. Na stronie Zabezpieczenia wybierz dla opcji Autoryzacja opcję Pass-through (none) (Przekaż).
  9. Kliknij Dalej.
  10. Kliknij Dalej.
  11. Na stronie kompilacji sprawdź, czy wybrane jest środowisko testowe. Zwróć uwagę, że typ serwera proxy to docelowe środowiska hostowane.
  12. Kliknij Build and Deploy (Utwórz i wdróż). Wdrożenie serwera proxy może chwilę potrwać.
  13. Po wdrożeniu serwera proxy kliknij Wyświetl serwer proxy hello-hosted-targets u dołu strony.
  14. 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

  1. W interfejsie Edge kliknij kartę Opracowywanie.
  2. W nawigatorze w opcji Docelowe punkty końcowe wybierz default.
  3. 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.

  4. W Nawigatorze zwróć uwagę na zawartość w sekcji Skrypty. Pliki aplikacji Node.js są wyświetlane z etykietą hostowane.

  5. 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.

  1. W interfejsie Edge kliknij kartę Opracowywanie.
  2. Aby wyświetlić log kompilacji, kliknij Logi kompilacji.
  3. 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.

  1. Utwórz katalog dla aplikacji 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ł ekspresowy 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. Sprawdź, czy katalog wygląda tak:
    ls
    app.yaml index.js package.json
    

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

  1. W terminalu wpisz 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ż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.

  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 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!