Zadania hostowanych celów

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

  1. Otwórz apigee.com/edge.
  2. Wpisz dane logowania i kliknij Zaloguj się.
  3. W menu nawigacyjnym po lewej stronie kliknij Develop > API Proxies (Tworzenie > Serwery proxy API).
  4. Wybierz serwer proxy, którego logi chcesz wyświetlić.
  5. Kliknij kartę Develop (Tworzenie).
  6. Aby wyświetlić dziennik kompilacji, kliknij Build Logs (Dzienniki kompilacji).
  7. 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:

  1. Zaloguj się w npm:
    npm login
  2. Pobierz token uwierzytelniania npm:
    1. Znajdź plik .npmrc (powinien znajdować się w ~/.npmrc).
    2. W pliku .npmrc zanotuj token na końcu wiersza, który wygląda tak:

      //registry.npmjs.org/:_authToken=****
    3. 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.
  3. Otwórz stronę konfiguracji map klucz-wartość, jak opisano poniżej.

    Edge

    Aby otworzyć stronę konfiguracji map klucz-wartość w interfejsie Edge:

    1. Zaloguj się na apigee.com/edge.
    2. 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:

    1. Zaloguj się na http://ms-ip:9000, gdzie ms-ip to adres IP lub nazwa DNS węzła serwera zarządzania.
    2. Na górnym pasku nawigacyjnym kliknij APIs > Environment Configuration > Key Value Maps (Interfejsy API > Konfiguracja środowiska > Mapy klucz-wartość).
  4. Kliknij + Key Value Map (+ Mapa klucz-wartość).
  5. W oknie Nowa mapa klucz-wartość wpisz nazwę i kliknij Encrypted (Zaszyfrowana).
  6. Kliknij Add (Dodaj).
  7. Dodaj token uwierzytelniania, który został wcześniej znaleziony lub utworzony, jako nowy wpis w każdej z utworzonych map klucz-wartość.
  8. 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:
  9. env:
    - name: NPM_TOKEN
     valueRef:
       name: npm_store
       key: private_token

    Gdzie:

    • 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ść.
  10. Utwórz plik .npmrc w tym samym katalogu co plik package.json. Ten plik powinien wyglądać podobnie do tego:
    //registry.npmjs.org/:_authToken=${NPM_TOKEN}
    Jeśli nie używasz registry.npmjs.org możesz ustawić zakres w pliku .npmrc dodając wiersz taki jak @myscope:registry=https://mycustomregistry.example.org Zobacz też dokumentację npmrc.
  11. Prześlij lub zaktualizuj serwer proxy Node.js, dołączając pliki .npmrc i app.yaml.
  12. Upewnij się, że nowy lub zaktualizowany serwer proxy jest wdrażany i działa z wybranym modułem prywatnego repozytorium moduł.
  13. 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:
    1. Na karcie Tworzenie sprawdź, czy plik .npmrc jest obecny.
    2. Upewnij się, że token jest prawidłowy (spróbuj zainstalować moduł lokalnie z tokenem w mapie klucz-wartość ).
    3. Jeśli używasz zakresu niestandardowego, upewnij się, że jest on ustawiony.

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 /health lub HOSTED_TARGET_HEALTH_CHECK_PATH sł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
  
Oczywiście możesz użyć dowolnego polecenia, które uznasz za odpowiednie, a node index.js to tylko przykład.