Wdrażanie samodzielnej aplikacji Node.js

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

W tym temacie wyjaśniamy, jak wdrożyć w Apigee Edge aplikację Node.js z systemu lokalnego. W tym temacie omówimy, jak za pomocą narzędzia wiersza poleceń apigeetool wdrożyć aplikacje Node.js w Apigee Edge.

Informacje o wdrażaniu kodu Node.js w Apigee Edge

Możesz wdrożyć istniejącą aplikację interfejsu Node.js API, w tym wszelkie zależne moduły Node.js, z systemu lokalnego w Apigee Edge za pomocą narzędzia wiersza poleceń o nazwie apigeetool. Narzędzie automatycznie grupuje aplikację i jej zależności na serwerze proxy interfejsu API oraz wdraża ją na Edge.

Załóżmy na przykład, że korzystasz z usługi Express do utworzenia aplikacji internetowej w środowisku Node.js. Aplikacja działa jako serwer HTTP, który nasłuchuje żądań HTTP, przetwarza je, zwraca dane itd. Gdy wdrażasz aplikację Node.js w Edge za pomocą apigeetool, jest ona opakowana w serwerze proxy i jest wykonywana w kontekście platformy Edge. Następnie możesz wywołać aplikację za pomocą nowego adresu URL serwera proxy i dodać do niej korzyści, stosując standardowe funkcje Edge, takie jak zabezpieczenia OAuth, zasady limitów, zasady ochrony przed zagrożeniami, przepływy warunkowe, buforowanie i wiele innych.

Jak działa apigeetool?

Uruchomienie narzędzia apigeetool z użyciem opcji deploynodeapp:

  • Generuje pakiet konfiguracji serwera proxy interfejsu API na potrzeby aplikacji Node.js.
  • Pakowanie aplikacji Node.js z wszelkimi zainstalowanymi pakietami Node.js za pomocą NPM (modułów w pakiecie węzła).
  • Importuje pakiet konfiguracji serwera proxy interfejsu API do określonej organizacji w Apigee Edge przy użyciu 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 narzędzia apigeetool

Zanim zaczniesz, musisz zainstalować narzędzie apigeetool.

apigeetool możesz zainstalować 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 środowiska Node.js i są dostępne przez npm za pomocą tego polecenia:

$ sudo npm install -g apigeetool

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

Instalacja z GitHuba

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

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

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

$ apigeetool -h

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

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

Aby wdrożyć aplikację Node.js przy użyciu interfejsu apigeetool:

  1. W oknie terminala cd wskaż katalog główny 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. Będzie to 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 komunikat „Stan: wdrożono”, wszystko jest gotowe. Wszystko przebiegło gładko. Twoja aplikacja Node.js jest zawarta w serwerze proxy interfejsu API, wdrożona w Edge oraz działa i czeka na obsługę żądań. Jest gotowa do testów.

  4. Przetestuj serwer proxy. 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ę serwerów proxy interfejsu API w interfejsie zarządzania. Zobaczysz tam swój nowy serwer proxy.

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

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

Nie możesz edytować plików w tych skompresowanych katalogach za pomocą edytora interfejsu zarządzania brzegiem. Jeśli musisz je zmienić, możesz wyeksportować projekt, zmodyfikować pliki lokalnie, a następnie wdrożyć ponownie za pomocą apigeetool lub przez zaimportowanie wyeksportowanego projektu za pomocą interfejsu zarządzania. Zapoznaj się też z artykułem „Eksportowanie i importowanie serwera proxy z kodem Node.js”.

Podstawowe informacje o wykorzystaniu narzędzia apigeetool

Aby uzyskać podstawowe informacje o wykorzystaniu parametrów 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ącymi plikami Node.js

Innym sposobem integracji istniejącej aplikacji Node.js z serwerem proxy interfejsu API jest dodanie jej podczas tworzenia serwera proxy. Możesz to zrobić wyłącznie w interfejsie zarządzania i oknie dialogowym Nowy serwer proxy interfejsu API.

  1. Na stronie podsumowania interfejsu API z serwerem proxy kliknij + Serwer proxy interfejsu API.
  2. W oknie Nowy serwer proxy interfejsu API wybierz Istniejący Node.js.
  3. Użyj przycisku Wybierz pliki, aby wybrać pliki Node.js do zaimportowania.
  4. Nazwij serwer proxy. W tym przykładzie nazywamy ją hellonode.
  5. Dodaj wersję /v1 do ścieżki bazowej projektu. Sprawdzoną metodą jest obsługa wersji interfejsu API.
  6. Kliknij Kompilacja.
  7. Kliknij Develop (Programuj), aby przejść do widoku Develop (Programowanie).
  8. Otwórz plik TargetEndpoint w edytorze kodu.
  9. Upewnij się, że element <ScriptTarget> wskazuje główny plik Node.js w taki 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 dodania kodu Node.js do serwera proxy jest dodanie go bezpośrednio w interfejsie lub przesłanie go z lokalnego systemu plików. Możesz też określić, który plik Node.js ma być plikiem głównym, czyli plikiem wywoływanym przez Edge po wdrożeniu serwera proxy.

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

Interfejs zarządzania pozwala dodać dodatkowe pliki źródłowe Node.js do serwera proxy na platformie Edge. Możesz je tworzyć bezpośrednio w interfejsie lub importować z systemu plików. Zobaczmy, jak to zrobić w interfejsie.

Aby utworzyć nowy plik zasobów Node.js:

  1. W widoku Programowanie z menu Nowy wybierz Nowy skrypt.
  2. W oknie Dodaj skrypt wybierz typ pliku Węzeł i nazwij skrypt.
  3. Kliknij Dodaj.

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

Importuję pliki Node.js z systemu plików

Aby import plik Node.js z systemu plików na serwer proxy:

  1. W widoku Programowanie z menu Nowy wybierz Nowy skrypt.
  2. W oknie Dodaj skrypt kliknij Importuj skrypt.
  3. Wybierz plik Node.js w narzędziu do plików.
  4. Nazwa pliku zostanie dodana do okna, ale jeśli chcesz, możesz ją zmienić.
  5. Kliknij Dodaj. Plik pojawi się w sekcji Skrypty w Nawigatorze i otworzy się w edytorze.
  6. Kliknij Zapisz.

Jeśli chcesz wywołać zaimportowany plik, musisz wykonać dodatkowy krok, zgodnie z opisem 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 jeden plik Node.js był główny. Główny plik jest określony w elemencie <ScriptTarget> w definicji docelowego punktu końcowego. Aby określić, który plik jest głównym plikiem Node.js, wykonaj te czynności:

  1. W obszarze Docelowe punkty końcowe w Nawigatorze kliknij nazwę docelowego punktu końcowego (zwykle nazywanego domyślnym).
  2. W edytorze kodu edytuj element <ScriptTarget>, zmieniając wartość <ResourceURL> na 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.

Na tym etapie możesz wywołać plik przy użyciu dowolnej wcześniej ścieżki serwera proxy. Na przykład przyjrzeliśmy się przykładowi Hello World!, w którym określona jest ścieżka bazowa v1/hello. Możesz jednak zmienić ścieżkę bazową, edytując punkt końcowy serwera proxy.

  1. W sekcji Punkty końcowe serwera proxy w Nawigatorze kliknij nazwę punktu końcowego serwera proxy (zwykle nazywanego domyślnym).
  2. W edytorze kodu edytuj element <HttpProxyConnection>, zmieniając <BasePath> na dowolną nazwę. Jeśli na przykład bieżąca ścieżka <BasePath> to v1/hello, a ma być 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, używając nowej ścieżki bazowej:

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

Eksportowanie i importowanie serwera proxy z kodem Node.js

Po wdrożeniu w Edge serwera proxy zawierającego kod Node.js możesz zawsze wyeksportować serwer proxy z powrotem do systemu, pracować na nim, a następnie ponownie zaimportować go do Edge przy użyciu interfejsu zarządzania. Ta technika w obie strony jest powszechnie stosowana.

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

Możesz zaimportować pakiet serwerów proxy z powrotem do Edge, wybierając Import Into New Revision (Importuj do nowej wersji) w tym samym menu.

Możesz też użyć interfejsu API do wdrażania serwerów proxy. Więcej informacji znajdziesz w artykule o wdrażaniu serwerów proxy z poziomu wiersza poleceń.

Dalsze kroki

W następnym temacie Dodawanie aplikacji 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.