Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację
Apigee X. info
Wycofywanie wdrożenia serwera proxy hostowanych celów
Gdy wycofujesz wdrożenie serwera proxy Edge, który zawiera aplikację hostowanych celów, powiązana aplikacja hostowanych celów jest wycofywana, ale bazowy obraz aplikacji nie jest usuwany. Jeśli ponownie wdrożysz serwer proxy, aplikacja hostowanych celów zostanie ponownie wdrożona.
Usuwanie serwera proxy hostowanych celów
Po usunięciu serwera proxy hostowanych celów bazowe instancje środowiska wykonawczego przestaną działać w ciągu pewnego czasu. Kod aplikacji zostanie jednak zachowany.
Uzyskiwanie dostępu do plików dziennika
Pliki dziennika są przydatne do debugowania i rozwiązywania problemów. W przypadku wdrożenia hostowanych celów możesz wyświetlić 2 typy plików dziennika:
- Dziennik kompilacji – zawiera dane wyjściowe związane z wdrażaniem i kompilowaniem aplikacji hostowanych celów.
- Dziennik środowiska wykonawczego – zawiera dane wyjściowe związane z działaniem aplikacji hostowanych celów. Dzienniki środowiska wykonawczego są ograniczone do środowiska i zawierają informacje z logów dotyczące aktualnie wdrożonej wersji serwera proxy.
Uzyskiwanie dostępu do logów w interfejsie Edge
- Otwórz apigee.com/edge.
- Wpisz dane logowania i kliknij Zaloguj się.
- W menu nawigacyjnym po lewej stronie kliknij Develop > API Proxies (Tworzenie > Serwery proxy API).
- Wybierz serwer proxy, którego logi chcesz wyświetlić.
- Kliknij kartę Develop (Tworzenie).
- Aby wyświetlić dziennik kompilacji, kliknij Build Logs (Dzienniki kompilacji).
- Aby wyświetlić dziennik środowiska wykonawczego, kliknij Runtime Logs (Dzienniki środowiska wykonawczego).
Uzyskiwanie dostępu do logów za pomocą interfejsu API
Do pobierania logów hostowanych celów możesz też użyć interfejsu Edge API. Więcej informacji znajdziesz w artykule Pobieranie logów Node.js z pamięci podręcznej.
Korzystanie z prywatnego repozytorium npm
W tej sekcji dowiesz się, jak wdrożyć serwer proxy Node.js w hostowanych celach, jeśli 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 cele uruchamiają polecenie npm install w Twoim kodzie, gdy jest on wdrażany.
Jeśli jednak w środowisku programistycznym używasz prywatnego repozytorium npm, nie można rozwiązać prywatnych
zależności w chmurze. W
tym przypadku rozwiązaniem jest użycie opcji --bundled-dependencies podczas korzystania z
narzędzia do wdrażania apigeetool. Zobacz też
Wdrażanie Node.js z systemu do Edge.
Gdy używasz flagi --bundled-dependencies w apigeetool, aplikacja Node.js zostanie przesłana do hostowanych celów, a wszystkie pliki lokalne lub prywatne wymienione w tablicy bundledDependencies w package.json zostaną spakowane i przesłane razem z pakietem.
Choć nie jest to częsta sytuacja, pamiętaj, że jeśli wewnętrznie tworzysz kopię publicznego repozytorium npm, wdrożenie nie powiedzie się
jeśli pakiet wdrożeniowy zawiera plik .npmrc lub package-lock.json, który wskazuje
na Twoją prywatną kopię. W takim przypadku pamiętaj, aby pominąć .npmrc lub package-lock.json
w pakiecie serwera proxy, który chcesz wdrożyć.
Wdrażanie za pomocą prywatnego repozytorium npm
Aby używać modułów udostępnianych z prywatnego repozytorium npm, wykonaj te czynności:
- Zaloguj się w npm:
npm login
- Pobierz token uwierzytelniania npm:
- Znajdź plik .npmrc (powinien znajdować się w ~/.npmrc).
- W pliku .npmrc zanotuj 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 odwołać token uwierzytelniania. Więcej informacji znajdziesz w dokumentacji npm-token. - Otwórz stronę konfiguracji map klucz-wartość, jak opisano poniżej.
Edge
Aby otworzyć stronę konfiguracji map klucz-wartość w interfejsie Edge:
- Zaloguj się na apigee.com/edge.
- Na pasku nawigacyjnym po lewej stronie kliknij Admin > Environments > Key Value Maps (Administracja > Środowiska > Mapy klucz-wartość).
Klasyczny Edge (chmura prywatna)
Aby otworzyć stronę konfiguracji map klucz-wartość w klasycznym interfejsie Edge:
- Zaloguj się na
http://ms-ip:9000, gdzie ms-ip to adres IP lub nazwa DNS węzła serwera zarządzania. - Na górnym pasku nawigacyjnym kliknij APIs > Environment Configuration > Key Value Maps (Interfejsy API > Konfiguracja środowiska > Mapy klucz-wartość).
- Kliknij + Key Value Map (+ Mapa klucz-wartość).
- W oknie Nowa mapa klucz-wartość wpisz nazwę i kliknij Encrypted (Zaszyfrowana).
- Kliknij Add (Dodaj).
- Dodaj token uwierzytelniania, który został wcześniej znaleziony lub utworzony, jako nowy wpis w każdej z utworzonych map klucz-wartość.
- W pliku app.yaml dodaj wpis, który odwołuje się do mapy klucz-wartość i klucza powiązanego z tokenem uwierzytelniania npm. Powinien wyglądać mniej więcej tak:
- Atrybut name najwyższego poziomu odpowiada nazwie zmiennej środowiskowej, która zostanie utworzona.
- Atrybut name w sekcji valueRef odpowiada utworzonej wcześniej mapie klucz-wartość.
- Atrybut key odpowiada kluczowi, który jest mapowany na token npm dodany do mapy klucz-wartość.
- Utwórz plik .npmrc w tym samym katalogu co plik package.json. Ten
plik powinien wyglądać podobnie do tego:
Jeśli nie używasz//registry.npmjs.org/:_authToken=${NPM_TOKEN}registry.npmjs.orgmożesz ustawić zakres w pliku .npmrc dodając wiersz taki jak@myscope:registry=https://mycustomregistry.example.orgZobacz też dokumentację npmrc. - Prześlij lub zaktualizuj serwer proxy Node.js, dołączając pliki .npmrc i app.yaml.
- Upewnij się, że nowy lub zaktualizowany serwer proxy jest wdrażany i działa z wybranym modułem prywatnego repozytorium moduł.
- Jeśli serwer proxy nie zostanie wdrożony, sprawdź dzienniki kompilacji, aby zobaczyć, czy nie udało się zainstalować prywatnego modułu npm. Jeśli tak:
- Na karcie Tworzenie sprawdź, czy plik .npmrc jest obecny.
- Upewnij się, że token jest prawidłowy (spróbuj zainstalować moduł lokalnie z tokenem w mapie klucz-wartość ).
- Jeśli używasz zakresu niestandardowego, upewnij się, że jest on ustawiony.
env:
- name: NPM_TOKEN
valueRef:
name: npm_store
key: private_tokenGdzie:
Określanie wersji npm dla spakowanych zależności
Domyślnie do instalowania spakowanych zależności w środowisku hostowanych celów używana jest wersja npm 4.
Jeśli jednak chcesz użyć innej wersji npm, możesz ją określić w zmiennej środowiskowej NPM_VERSION. Tę zmienną możesz ustawić w pliku manifestu aplikacji. Więcej informacji znajdziesz w sekcji Elementy pliku manifestu.
Jeśli używasz spakowanych zależności i nie określisz NPM_VERSION, hostowane cele
domyślnie używają wersji npm 4. Jeśli nie używasz spakowanych zależności, używana jest wersja npm dołączona
do określonego środowiska wykonawczego Node.js.
Przykład spakowanych zależności
Przykład, który pokazuje funkcję spakowanych zależności w hostowanych celach, znajdziesz w artykule Jak utworzyć aplikację Node.js za pomocą hostowanych funkcji przy użyciu modułów niestandardowych.Dodawanie punktu końcowego kontroli stanu
Możesz zaimplementować punkt końcowy kontroli stanu dla aplikacji Node.js. Apigee używa tego punktu końcowego, gdy aplikacja Node.js zaczyna sprawdzać, czy aplikacja działa w kontenerze.
Domyślnie punktem końcowym, którego oczekuje Apigee, jest /health. Domyślny
punkt końcowy możesz zmienić, określając go w zmiennej środowiskowej o nazwie
HOSTED_TARGET_HEALTH_CHECK_PATH. Tę zmienną możesz ustawić w pliku manifestu aplikacji. Więcej informacji znajdziesz w sekcji Elementy pliku manifestu.
Implementowanie punktu końcowego kontroli stanu nie jest wymagane. Jeśli jednak zaimplementujesz punkt końcowy kontroli stanu , pamiętaj o tych kwestiach:
- Jeśli aplikacja zostanie zamknięta, gdy Apigee trafi na punkt końcowy, aplikacja nie uruchomi się zgodnie z oczekiwaniami.
- Jeśli punkt końcowy zwraca stan HTTP 404 Nie znaleziono, jest to w porządku. Ścieżka
/healthlubHOSTED_TARGET_HEALTH_CHECK_PATHsłuży tylko do sprawdzania, czy aplikacja działa. Rzeczywista odpowiedź jest ignorowana.
Zmienianie lokalizacji pamięci podręcznej npm
Nowsze wersje Node.js używają wersji npm, która używa /root/.npm jako pamięci podręcznej npm.
Ta lokalizacja stanowi problem dla hostowanych celów, ponieważ ta lokalizacja katalogu jest tylko do odczytu
a środowisko wykonawcze hostowanych celów 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
pliku
app.yaml aplikacji (plik manifestu)
na katalog w obrębie /tmp. Na 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 używają polecenia npm start do uruchamiania aplikacji hostowanych celów. W poprzednim zadaniu omówiliśmy jednak problem z używaniem npm, ponieważ nowsze wersje będą próbować używać
/root/.npm jako pamięci podręcznej npm, która jest niezapisywalna i powoduje, że hostowany cel
nie może się uruchomić. Chociaż poprzednie zadanie rozwiąże ten problem, inną opcją jest
uruchomienie aplikacji bez npm. Aby to zrobić, możesz użyć wartości command i
args w pliku app.yaml aplikacji (plik manifestu)
, aby uruchomić hostowany cel 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: 3
node index.js to tylko przykład.