Wdrażanie samodzielnej aplikacji Node.js

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

Z tego artykułu dowiesz się, jak wdrożyć aplikację Node.js z systemu lokalnego w Apigee Edge. Omówimy w nim, jak używać narzędzia wiersza poleceń apigeetool do wdrażania aplikacji Node.js w Apigee Edge.

Wdrażanie kodu Node.js w Apigee Edge

Za pomocą narzędzia wiersza poleceń apigeetool możesz wdrożyć istniejącą aplikację interfejsu API Node.js, w tym wszystkie zależne moduły Node.js, z systemu lokalnego w Apigee Edge. Narzędzie automatycznie tworzy pakiet aplikacji i jej zależności w serwerze proxy interfejsu API oraz wdraża go w Edge.

Załóżmy na przykład, że do utworzenia aplikacji internetowej w Node.js używasz Express. Aplikacja działa jako serwer HTTP, który nasłuchuje żądań HTTP, przetwarza je, zwraca dane itd. Gdy używasz apigeetool do wdrażania aplikacji Node.js w Edge, jest ona opakowana w serwer proxy i wykonywana w kontekście platformy Edge. Możesz wtedy wywoływać aplikację za pomocą jej nowego adresu URL serwera proxy i dodawać do niej wartość, "ubierając" ją w standardowe funkcje Edge, takie jak zabezpieczenia OAuth, zasady dotyczące limitów, zasady ochrony przed zagrożeniami, przepływy warunkowe, buforowanie i wiele innych.

Co robi apigeetool?

Gdy uruchamiasz narzędzie apigeetool z opcją deploynodeapp, wykonuje ono te czynności:

  • Generuje pakiet konfiguracji serwera proxy interfejsu API, w którym będzie przechowywana aplikacja Node.js.
  • Pakuje aplikację Node.js z wszystkimi pakietami Node.js zainstalowanymi za pomocą npm (Node Packaged Modules).
  • Importuje pakiet konfiguracji serwera proxy interfejsu API do określonej organizacji w Apigee Edge za pomocą interfejsu Edge Management API.
  • Wdraża serwer proxy interfejsu API w środowisku.
  • Uruchamia aplikację Node.js w Apigee Edge i udostępnia ją w sieci.

Przygotowanie do korzystania z apigeetool

Zanim zaczniesz, musisz zainstalować narzędzie apigeetool.

Możesz zainstalować apigeetool za pomocą npm lub przez sklonowanie i połączenie kodu z GitHuba.

Instalacja z npm

Moduł apigeetool i jego zależności są przeznaczone dla Node.js i są dostępne w npm za pomocą tego polecenia:

$ sudo npm install -g apigeetool

Zwykle opcja -g umieszcza moduły w lokalizacji: /usr/local/lib/node_modules/apigeetool na maszynach opartych na *nix.

Instalacja z GitHuba

Pobierz lub sklonuj narzędzia API Platform Tools z GitHuba. Instrukcje instalacji znajdziesz w pliku README w głównym katalogu repozytorium.

$ git clone https://github.com/apigee/apigeetool-node.git

Po zakończeniu instalacji upewnij się, że plik wykonywalny apigeetool znajduje się w ścieżce PATH. Możesz to sprawdzić, wpisując:

$ apigeetool -h

Wdrażanie aplikacji Node.js w Edge za pomocą apigeetool

Uwaga: przed wdrożeniem musisz znać nazwę organizacji Apigee Edge , nazwę użytkownika i hasło do konta Apigee Edge. Te informacje są potrzebne do prawidłowego utworzenia polecenia apigeetool.

Aby wdrożyć aplikację Node.js za pomocą apigeetool:

  1. W oknie terminala cd przejdź do głównego katalogu aplikacji Node.js.
  2. Uruchom narzędzie apigeetool za pomocą polecenia deploynodeapp

    $ apigeetool deploynodeapp -n {A name for your new proxy} -d {The root directory of your Node.js app} -m {The name of the main Node.js file} -o {Your org name on Edge} -e {The environment to deploy to} -b {The base URL for your proxy} -u {Your Edge email address} -p {Your Edge password}
    
    Na przykład:

    $ apigeetool deploynodeapp -n myNodeApp -d . -m server.js -o myorg -e test -b /myNodeApp -u ntesla -p myPassword
    
  3. Sprawdź dane wyjściowe w oknie terminala. Powinny wyglądać mniej więcej tak:

    Importing new application myNodeApp
    Imported new app revision 1
    Deploying revision 1
      Deployed.
    Proxy: "myNodeApp" Revision 1
      Environment: test BasePath: /myNodeApp
      Status: deployed

    Jeśli widzisz „Status: deployed”, to wszystko. Wszystko poszło gładko. Twoja aplikacja Node.js jest opakowana w serwer proxy interfejsu API, wdrożona w Edge, działa i czeka na obsługę żądań. Jest gotowa do testowania.

  4. Przetestuj serwer proxy. Na przykład:

    $ curl http://myorg-test.apigee.net/myNodeApp
    Hello, My Node App!
    
  5. Jeśli chcesz, zaloguj się na konto Apigee Edge i otwórz stronę API Proxies (Serwery proxy interfejsu API) w interfejsie zarządzania. Powinien tam być widoczny Twój nowy serwer proxy.

Jak apigeetool obsługuje zależne pliki i moduły

Jeśli aplikacja Node.js zależy od zainstalowanych modułów, apigeetool obsługuje je, kompresując folder node_modules i dodając go do pakietu serwera proxy. Nie musisz nic więcej robić. To samo dotyczy wszystkich katalogów zawierających dodatkowy kod źródłowy. Narzędzie apigeetool kompresuje je i wdraża razem z pakietem.

Nie możesz edytować plików w tych skompresowanych katalogach w edytorze interfejsu zarządzania Edge. Jeśli chcesz je zmienić, możesz wyeksportować projekt, edytować pliki lokalnie, a następnie wdrożyć ponownie za pomocą apigeetool lub importując wyeksportowany projekt za pomocą interfejsu zarządzania. Zobacz też "Eksportowanie i importowanie serwera proxy z kodem Node.js".

Podstawowe informacje o korzystaniu z apigeetool

Aby uzyskać podstawowe informacje o parametrach wejściowych narzędzia apigeetool, wpisz:

$ apigeetool deploynodeapp -h

  Usage: deploynodeapp -n [name] -o [organization] -e [environment]
  -d [directory name] -m [main script file]
  -u [username] -p [password]
  -b [base path] -l [apigee API url] -z [zip file] -i -h
  -o Apigee organization name
  -e Apigee environment name
  -n Apigee proxy name
  -d Apigee proxy directory
  -m Main script name: Should be at the top level of the directory
  -u Apigee user name
  -p Apigee password
  -b Base path (optional, defaults to /)
  -L Apigee API URL (optional, defaults to https://api.enterprise.apigee.com)
  -z ZIP file to save (optional for debugging)
  -i import only, do not deploy
  -R Resolve Node.js modules on Apigee Edge. Equivalent to running npm install on your project. 
  -U Uploads Node.js modules to Apigee Edge. 
  -h Print this message

Tworzenie nowego serwera proxy z istniejących plików Node.js

Innym sposobem na zintegrowanie istniejącej aplikacji Node.js z serwerem proxy interfejsu API jest dodanie aplikacji podczas tworzenia serwera proxy. Możesz to zrobić w całości za pomocą interfejsu zarządzania i okna dialogowego New API Proxy (Nowy serwer proxy interfejsu API).

  1. Na stronie podsumowania serwera proxy interfejsu API kliknij +API Proxy (+Serwer proxy interfejsu API).
  2. W oknie dialogowym New API Proxy (Nowy serwer proxy interfejsu API) wybierz Existing Node.js (Istniejący Node.js).
  3. Użyj przycisku Choose Files (Wybierz pliki), aby wybrać co najmniej 1 plik Node.js do zaimportowania.
  4. Nadaj serwerowi proxy nazwę. W tym przykładzie nazywamy go hellonode.
  5. Dodaj wersję /v1 do ścieżki podstawowej projektu. Wersjonowanie interfejsu API to sprawdzona metoda.
  6. Kliknij Build (Utwórz).
  7. Kliknij Develop (Programuj), aby otworzyć widok Develop (Programuj).
  8. Otwórz plik TargetEndpoint w edytorze kodu.
  9. Upewnij się, że element <ScriptTarget> określa główny plik Node.js w ten sposób:


    <ScriptTarget>
            <ResourceURL>node://server.js</ResourceURL>
            <Properties/>
    </ScriptTarget>
  10. Kliknij Zapisz.

Dodawanie i wywoływanie nowych plików zasobów Node.js

Innym sposobem na dodanie kodu Node.js do serwera proxy jest dodanie go bezpośrednio, za pomocą interfejsu lub przez przesłanie z lokalnego systemu plików. Możesz też określić, który plik Node.js jest plikiem głównym , czyli plikiem, który Edge wywołuje po wdrożeniu serwera proxy.

Dodawanie nowych plików Node.js za pomocą interfejsu

Interfejs zarządzania umożliwia dodawanie dodatkowych plików źródłowych Node.js do serwera proxy, który znajduje się na platformie Edge. Możesz je utworzyć bezpośrednio w interfejsie lub zaimportować z systemu plików. Najpierw, zobaczmy, jak to zrobić w interfejsie.

Aby utworzyć nowy plik zasobu Node.js:

  1. W widoku Develop (Programuj) wybierz New Script z menu New (Nowy).
  2. W oknie dialogowym Add Script (Dodaj skrypt) wybierz typ pliku Node i nadaj skryptowi nazwę.
  3. Kliknij Dodaj.

W edytorze otworzy się nowy, pusty plik Node.js. Możesz wyciąć i wkleić kod do pliku. Plik pojawi się też w sekcji Scripts (Skrypty) w Navigatorze.

[[{"type":"media","view_mode":"media_large","fid":"2431","attributes":{"alt":"","class":"media-image","height":"312","typeof":"foaf:Image","width":"417"}}]]

Importowanie plików Node.js z systemu plików

Aby zaimportować plik Node.js z systemu plików do serwera proxy:

  1. W widoku Develop (Programuj) wybierz New Script z menu New (Nowy).
  2. W oknie dialogowym Add Script (Dodaj skrypt) kliknij Import Script (Importuj skrypt).
  3. Użyj narzędzia do obsługi plików, aby wybrać plik Node.js.
  4. Nazwa pliku zostanie dodana do okna dialogowego, ale możesz ją zmienić.
  5. Kliknij Dodaj. Plik pojawi się w sekcji Scripts w Navigatorze i otworzy się w edytorze.
  6. Kliknij Zapisz.

Jeśli chcesz wywołać zaimportowany plik, musisz wykonać dodatkowy krok opisany w następnej sekcji.

Wywoływanie zaimportowanego pliku Node.js

Nie możesz po prostu wywołać nowo zaimportowanego lub utworzonego pliku Node.js. Wynika to z tego, że Edge wymaga, aby 1 plik Node.js był plikiem głównym. Plik główny jest określony w elemencie <ScriptTarget> definicji punktu końcowego. Aby określić, który plik ma być głównym plikiem Node.js, wykonaj te czynności:

  1. W Navigatorze w sekcji Target Endpoints (Punkty końcowe) kliknij nazwę punktu końcowego (zwykle zwanego default).
  2. W edytorze kodu zmodyfikuj element <ScriptTarget>, zmieniając <ResourceURL> tak, aby odzwierciedlał nazwę pliku, który ma być głównym plikiem Node.js. Jeśli na przykład chcesz, aby plik o nazwie hello-world.js był plikiem głównym, wpisz: node://hello-world.js w elemencie ResourceURL.
  3. Kliknij Zapisz.

W tym momencie możesz wywołać plik za pomocą dowolnej ścieżki serwera proxy, której używasz. Na przykład, w przykładzie Hello World! określono ścieżkę podstawową v1/hellojest określona. Możesz jednak zmienić ścieżkę podstawową, edytując punkt końcowy serwera proxy.

  1. W Navigatorze w sekcji Proxy Endpoints (Punkty końcowe serwera proxy) kliknij nazwę punktu końcowego serwera proxy (zwykle o nazwie default).
  2. W edytorze kodu zmodyfikuj element <HttpProxyConnection>, zmieniając <BasePath> na dowolną nazwę. Jeśli na przykład bieżąca wartość <BasePath> to v1/hello i chcesz, aby była to v1/my-node-file, zmień element <BasePath> w ten sposób:

    <BasePath>/v1/my-node-file</BasePath>
  3. Kliknij Zapisz.
  4. Wywołaj serwer proxy za pomocą nowej ścieżki podstawowej w ten sposób:

    $ curl http://myorg-test.apigee.net/v1/my-node-file
    Hello, World!
    

Eksportowanie i importowanie serwera proxy z kodem Node.js

Po wdrożeniu serwera proxy zawierającego kod Node.js w Edge możesz zawsze wyeksportować go z powrotem do systemu, pracować nad nim i ponownie zaimportować do Edge za pomocą interfejsu zarządzania. Ta technika programowania w obie strony jest powszechnie stosowana.

  1. Na stronie podsumowania serwera proxy interfejsu API kliknij Develop (Programuj).
  2. Na stronie Develop (Programuj) wybierz Download Current Revision (Pobierz bieżącą wersję).
  3. Rozpakuj pobrany plik w systemie.

Pakiet serwera proxy możesz ponownie zaimportować do Edge, wybierając Import Into New Revision w tym samym menu.

Do wdrażania serwerów proxy możesz też używać interfejsu API. Szczegółowe informacje znajdziesz w artykule Wdrażanie serwerów proxy z wiersza poleceń.

Następne kroki

W następnym artykule Dodawanie Node.js do istniejącego serwera proxy interfejsu API wyjaśniamy, jak dodać aplikację Node.js do istniejącego serwera proxy w systemie plików i wdrożyć ją w Edge.