Zadania hostowanych celów

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

  1. Otwórz stronę apigee.com/edge
  2. Wpisz dane logowania i kliknij Zaloguj się.
  3. W bocznym menu nawigacyjnym kliknij Programowanie > Serwery proxy API.
  4. Wybierz serwer proxy, którego logi chcesz wyświetlić.
  5. Kliknij kartę Rozwijanie.
  6. Aby wyświetlić log kompilacji, kliknij Logi kompilacji.
  7. 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:

  1. Zaloguj się w npm:
    npm login
  2. Uzyskaj token uwierzytelniania npm:
    1. Znajdź plik .npmrc (powinien być w ~/.npmrc).
    2. W pliku .npmrc zwróć uwagę na 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 cofnąć token uwierzytelniający. Aby dowiedzieć się więcej, zapoznaj się z dokumentacją dotyczącą npm-token.
  3. Otwórz stronę konfiguracji map klucz-wartość w sposób opisany poniżej.

    Edge

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

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

    1. Zaloguj się w http://ms-ip:9000, gdzie ms-ip jest adresem IP lub nazwą DNS węzła serwera zarządzania.
    2. Na górnym pasku nawigacyjnym kliknij Interfejsy API > Konfiguracja środowiska > Mapy klucz-wartość.
  4. Kliknij + Mapa par klucz-wartość.
  5. W oknie Nowa mapa par klucz-wartość wpisz nazwę i wybierz Zaszyfrowane.
  6. Kliknij Dodaj.
  7. Dodaj token uwierzytelniania, który wcześniej został umieszczony lub utworzony jako nowy wpis w każdej z nowo utworzonych maszyn wirtualnych.
  8. 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:
  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.
    • 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.
  10. 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 pliku registry.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.
  11. Prześlij lub zaktualizuj serwer proxy Node.js, dołączając plik .npmrc i plik app.yaml.
  12. Upewnij się, że nowe lub zaktualizowane proxy jest wdrażane i działa z żądanym modułem prywatnego repozytorium.
  13. 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:
    1. Na karcie rozwoju sprawdź, czy plik .npmrc jest obecny.
    2. Sprawdź, czy token jest prawidłowy (spróbuj zainstalować moduł lokalnie za pomocą tokena znajdującego się w kvm).
    3. Jeśli korzystasz z zakresu niestandardowego, sprawdź, czy jest on ustawiony.

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 lub HOSTED_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.yamlpliku (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 commandargsapp.yamlpliku (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: 3
  
Oczywiście możesz użyć dowolnego polecenia, które uznasz za odpowiednie, a node index.js to tylko przykład.