Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. info
Odzyskiwanie z użycia docelowego serwera proxy hostowanego
Gdy wycofasz wdrożenie zapory Edge zawierającej aplikację docelową hostowanej aplikacji, powiązana aplikacja docelowa hostowanej aplikacji zostanie wycofana, ale obraz aplikacji docelowej nie zostanie usunięty. Jeśli ponownie wdrożysz serwer proxy, aplikacja Hostowane cele zostanie ponownie wdrożona.
Usuwanie docelowego serwera proxy dla hostowanych celów
Po usunięciu obiektu proxy hostowanych celów jego instancje uruchomione przestaną działać po pewnym czasie. Kod aplikacji zostanie jednak zachowany.
Dostęp do plików dziennika
Pliki dziennika są przydatne podczas debugowania i rozwiązywania problemów. W przypadku wdrożenia docelowego hostowanego możesz wyświetlać 2 typy plików dziennika:
- Dziennik kompilacji – zawiera dane wyjściowe związane z wdrażaniem i tworzeniem aplikacji hostowanych docelowych.
- Log z czasu wykonywania – zawiera dane wyjściowe związane z uruchomioną aplikacją Hosted Targets. Logi z czasu wykonywania są ograniczone do środowiska i zawierają informacje o logach dla aktualnie wdrożonej wersji proxy.
Dostęp do logów z poziomu interfejsu Edge
- Otwórz stronę apigee.com/edge
- Wpisz dane logowania i kliknij Zaloguj się.
- W bocznym menu nawigacyjnym kliknij Programowanie > Serwery proxy API.
- Wybierz serwer proxy, którego logi chcesz wyświetlić.
- Kliknij kartę Rozwijanie.
- Aby wyświetlić log kompilacji, kliknij Logi kompilacji.
- Aby wyświetlić dziennik środowiska wykonawczego, kliknij Logi środowiska wykonawczego.
Dostęp do logów za pomocą interfejsu API
Logi hostowanych celów możesz też pobierać za pomocą interfejsu Edge API. Szczegółowe informacje znajdziesz w artykule Uzyskiwanie z pamięci podręcznej dzienników Node.js.
Używanie prywatnego repozytorium npm
W tej sekcji wyjaśniamy, jak wdrożyć serwer proxy Node.js w hostowanych celach w przypadku, gdy w środowisku programistycznym używasz prywatnego repozytorium NPM.
Co musisz wiedzieć o korzystaniu z prywatnego repozytorium
Gdy wdrażasz aplikację Node.js w Edge, wszystkie zależności projektu są automatycznie importowane w ramach procesu wdrażania.
Zasadniczo hostowane miejsca docelowe uruchamiają w kodzie npm install
po jego wdrożeniu.
Jeśli jednak w środowisku programistycznym używasz prywatnego repozytorium NPM, prywatnych zależności nie będzie można rozwiązać w Cloud. W tym przypadku rozwiązaniem jest użycie opcji --bundled-dependencies
podczas korzystania z narzędzia do wdrażania apigeetool. Zapoznaj się też z artykułem o wdrażaniu Node.js z systemu w Edge.
Gdy użyjesz flagi --bundled-dependencies
w apigeetool
, Twoja aplikacja Node.js zostanie przesłana do hostowanych celów, a wszystkie pliki lokalne/prywatne wymienione w tablicy bundledDependencies w package.json
zostaną skompresowane i przesłane razem z pakietem.
Pamiętaj, że jeśli zwierciadlesz publiczne repozytorium NPM wewnętrznie, wdrożenie się nie powiedzie, jeśli pakiet wdrożenia zawiera plik .npmrc
lub package-lock.json
, który wskazuje na prywatne zwierciadło. W takim przypadku nie uwzględniaj wartości .npmrc
ani package-lock.json
w pakiecie serwera proxy, który chcesz wdrożyć.
Wdrażanie z użyciem prywatnego repozytorium NPM
Aby używać modułów udostępnionych z prywatnego repozytorium NPM, wykonaj te czynności:
- Zaloguj się w npm:
npm login
- Uzyskaj token uwierzytelniania npm:
- Znajdź plik .npmrc (powinien być w ~/.npmrc).
- W pliku .npmrc zwróć uwagę na token na końcu wiersza, który wygląda tak:
//registry.npmjs.org/:_authToken=****
- Możesz też użyć poleceń
npm token <list | create | revoke>
, aby wyświetlić, utworzyć lub cofnąć token uwierzytelniający. Aby dowiedzieć się więcej, zapoznaj się z dokumentacją dotyczącą npm-token. - Otwórz stronę konfiguracji map klucz-wartość w sposób opisany poniżej.
Edge
Aby otworzyć stronę konfiguracji map klucz-wartość w interfejsie Edge:
- Zaloguj się na stronie apigee.com/edge.
- Na pasku nawigacyjnym po lewej stronie kliknij Administracja > Środowiska > Mapy klucz-wartość.
Classic Edge (Private Cloud)
Aby uzyskać dostęp do strony konfiguracji map klucz-wartość w interfejsie Classic Edge:
- Zaloguj się w
http://ms-ip:9000
, gdzie ms-ip jest adresem IP lub nazwą DNS węzła serwera zarządzania. - Na górnym pasku nawigacyjnym kliknij Interfejsy API > Konfiguracja środowiska > Mapy klucz-wartość.
- Kliknij + Mapa par klucz-wartość.
- W oknie Nowa mapa par klucz-wartość wpisz nazwę i wybierz Zaszyfrowane.
- Kliknij Dodaj.
- Dodaj token uwierzytelniania, który wcześniej został umieszczony lub utworzony jako nowy wpis w każdej z nowo utworzonych maszyn wirtualnych.
- W pliku app.yaml dodaj wpis odwołujący się do KVM i klucza powiązanego z tokenem autoryzacji npm. Powinna wyglądać mniej więcej tak:
- Atrybut name najwyższego poziomu odpowiada nazwie zmiennej środowiskowej, która zostanie utworzona.
- Wartość name w polu valueRef odpowiada wcześniej utworzonemu kluczowi dostępu do maszyny wirtualnej.
- Atrybut key odpowiada kluczowi, który jest mapowany na token npm dodany do KVM.
- Utwórz plik .npmrc w tym samym katalogu co plik package.json. Plik powinien wyglądać mniej więcej tak:
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
Jeśli nie używasz plikuregistry.npmjs.org
, możesz ustawić zakres w pliku .npmrc, dodając wiersz podobny do tego:@myscope:registry=https://mycustomregistry.example.org
Zobacz też dokumentację npmrc. - Prześlij lub zaktualizuj serwer proxy Node.js, dołączając plik .npmrc i plik app.yaml.
- Upewnij się, że nowe lub zaktualizowane proxy jest wdrażane i działa z żądanym modułem prywatnego repozytorium.
- Jeśli serwer proxy nie jest wdrażany, sprawdź dzienniki kompilacji, aby sprawdzić, czy nie wystąpił błąd podczas instalowania prywatnego modułu npm. Jeśli tak:
- Na karcie rozwoju sprawdź, czy plik .npmrc jest obecny.
- Sprawdź, czy token jest prawidłowy (spróbuj zainstalować moduł lokalnie za pomocą tokena znajdującego się w kvm).
- Jeśli korzystasz z zakresu niestandardowego, sprawdź, czy jest on ustawiony.
env: - name: NPM_TOKEN valueRef: name: npm_store key: private_token
Gdzie:
Określanie wersji NPM dla załączonych zależności
Domyślnie do instalowania pakietów zależności w środowisku hostowanych wartości docelowych używana jest NPM w wersji 4.
Jeśli jednak chcesz użyć innej wersji NPM, możesz ją określić w zmiennej środowiskowej NPM_VERSION
. Możesz ustawić tę zmienną w pliku manifestu aplikacji. Szczegółowe informacje znajdziesz w sekcji Elementy pliku manifestu.
Jeśli używasz pakietowanych zależności i nie podajesz wartości NPM_VERSION
, docelowe wartości hostowane będą domyślnie używać NPM w wersji 4. Jeśli nie korzystasz z zależności w pakiecie, używana jest wersja NPM z określonego środowiska wykonawczego Node.js.
Przykład pakietów zależności
Przykład pokazujący funkcję połączonych zależności z usługami docelowymi hostowanymi znajdziesz w artykule Jak utworzyć aplikację Node.js z funkcjami hostowanymi za pomocą modułów niestandardowych.Dodawanie punktu końcowego kontroli stanu
Możesz wdrożyć punkt końcowy kontroli stanu dla aplikacji Node.js. Apigee używa tego punktu końcowego, gdy aplikacja Node.js sprawdza, czy działa w kontenerze.
Domyślnie punkt końcowy, którego oczekuje Apigee, to /health
. Domyślny punkt końcowy możesz zmienić, podając go w zmiennej środowiskowej o nazwie HOSTED_TARGET_HEALTH_CHECK_PATH
. Tę zmienną możesz ustawić w pliku manifestu aplikacji. Szczegółowe informacje znajdziesz w sekcji Elementy pliku manifestu.
Wdrożenie punktu końcowego kontroli stanu nie jest wymagane. Jeśli jednak wdrożysz punkt końcowy kontroli stanu, pamiętaj o tych uwagach:
- Jeśli aplikacja zostanie zamknięta, gdy Apigee osiągnie punkt końcowy, nie uruchomi się zgodnie z oczekiwaniami.
- Jeśli punkt końcowy zwraca stan HTTP 404 (Nie znaleziono), wszystko jest w porządku.
/health
lubHOSTED_TARGET_HEALTH_CHECK_PATH
są używane tylko do sprawdzania, czy aplikacja jest uruchomiona. Rzeczywista odpowiedź jest ignorowana.
Zmień lokalizację pamięci podręcznej NPM
Nowsze wersje Node.js korzystają z wersji NPM, która używa /root/.npm
do pamięci podręcznej NPM.
Ta lokalizacja stanowi problem dla celów hostowanych, ponieważ jest to katalog tylko do odczytu, ponieważ środowisko uruchomieniowe celu hostowanego używa systemu plików tmpfs, w którym tylko /tmp
jest zapisywalny.
Aby obejść ten problem, możesz ustawić zmienną środowiskową npm_config_cache
w app.yaml
pliku (pliku manifestu) aplikacji na katalog w /tmp
. Przykład:
runtime: node application: my-express-app env: - name: npm_config_cache value: /tmp/.npm - name: NODE_ENV value: production - name: LOG_LEVEL value: 3
Uruchamianie aplikacji bez NPM
Domyślnie hostowane cele korzystają z npm start
do uruchamiania Twojej aplikacji hostowanej. W poprzednim zadaniu jednak omówiliśmy problem z używaniem NPM, ponieważ nowsze wersje będą próbowały używać /root/.npm
na potrzeby pamięci podręcznej NPM, co uniemożliwia zapis i powoduje nieudane uruchomienie hostowanego celu. Poprzednie zadanie rozwiąże ten problem, ale możesz też uruchomić aplikację bez NPM. W tym celu możesz użyć wartości command
i args
w app.yaml
pliku (pliku manifestu) aplikacji, aby uruchomić docelowe środowisko osadzone bezpośrednio za pomocą node index.js
. Na przykład:
runtime: node application: my-express-app command: node args: - index.js env: - name: NODE_ENV value: production - name: LOG_LEVEL value: 3Oczywiście możesz użyć dowolnego polecenia, które uznasz za odpowiednie, a
node index.js
to tylko przykład.