Samouczki hostowanych celów

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ę

  1. Wejdź na apigee.com/edge.
  2. Aby się zalogować, wpisz dane logowania do Apigee.

Utwórz nowy serwer proxy

  1. W bocznym menu nawigacyjnym kliknij Programowanie > Proxies API.
  2. Kliknij + Serwer proxy.
  3. Na stronie Tworzenie serwera proxy wybierz Hostowany cel.
  4. Kliknij Dalej.
  5. W polu Proxy Name (Nazwa serwera proxy) wpisz hello-hosted-targets.
  6. Pamiętaj, aby wybrać Próbkę „Hello World”.
  7. Kliknij Dalej.
  8. Na stronie Zabezpieczenia wybierz Przekazywanie (brak) w sekcji Autoryzacja.
  9. Kliknij Dalej.
  10. Kliknij Dalej.
  11. Na stronie kompilacji wybierz środowisko testowe. Zwróć uwagę, że typ serwera proxy to Hostowane cele.
  12. Kliknij Skompiluj 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 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

  1. W interfejsie użytkownika Edge kliknij kartę Develop (Programowanie).
  2. W nawigatorze w polu Docelowe punkty końcowe wybierz default (domyślnie).
  3. 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.

  4. W Nawigatorze zwróć uwagę na zawartość sekcji Skrypty. Pliki aplikacji Node.js są wymienione pod etykietą hostowane.

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

  1. W interfejsie użytkownika Edge kliknij kartę Develop (Programowanie).
  2. Aby wyświetlić log kompilacji, kliknij Logi kompilacji.
  3. 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.

  1. Utwórz katalog dla aplikacji Node.js. Wywołaj katalog 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. Upewnij się, że katalog wygląda tak:
    ls
    app.yaml index.js package.json
    

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

  1. W terminalu wpisz cd, aby przejść do katalogu głównego aplikacji Node.js.
  2. Uruchom narzędzie 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ć 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.

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