Zadania hostowanych celów

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

Wycofywanie wdrożenia serwera proxy hostowanych celów

Gdy wycofasz wdrożenie serwera proxy Edge, który obejmuje aplikację z hostowanymi miejscami docelowymi, powiązane Aplikacja hostowanych celów nie została wdrożona, ale bazowy obraz aplikacji nie został usunięty. Jeśli ponowne wdrożenie serwera proxy, aplikacja Hosted Targets zostanie wdrożona.

Usuwanie serwera proxy hostowanych celów

Gdy usuniesz serwer proxy hostowanych celów, bazowe instancje środowiska wykonawczego przestaną działać z jakiegoś powodu. Kod aplikacji zostanie jednak zachowany.

Dostęp do plików dziennika

Pliki dzienników przydają się podczas debugowania i rozwiązywania problemów. Możesz wyświetlać 2 typy plików dziennika dla: wdrożenie hostowanych celów:

  • Dziennik kompilacji – zawiera dane wyjściowe związane z wdrażaniem i tworzeniem aplikacji hostowanych docelowych.
  • Dziennik środowiska wykonawczego – pokazuje dane wyjściowe związane z uruchomioną aplikacją hostowanych celów. Logi środowiska wykonawczego są ograniczone do środowiska i wyświetlają informacje z dziennika dla aktualnie wdrożonej wersji serwera proxy.

Uzyskiwanie dostępu do logów z interfejsu Edge

  1. Otwórz stronę apigee.com/edge
  2. Wpisz swoje dane logowania i kliknij Zaloguj się.
  3. Kliknij Programowanie > Proxy interfejsów API w bocznym menu nawigacyjnym.
  4. Wybierz serwer proxy, dla którego chcesz wyświetlać logi.
  5. Kliknij kartę Develop.
  6. Aby wyświetlić log kompilacji, kliknij Logi kompilacji. .
  7. Aby wyświetlić dziennik środowiska wykonawczego, kliknij Logi środowiska wykonawczego.

Uzyskiwanie dostępu do logów przy użyciu interfejsu API

Logi hostowanych celów możesz też pobierać za pomocą interfejsu Edge API. Więcej informacji: Pobierz logi Node.js z pamięci podręcznej.

Używanie prywatnego repozytorium npm

Z tej sekcji dowiesz się, jak wdrożyć serwer proxy Node.js w hostowanych celach w przypadku, gdy użyj prywatnego repozytorium NPM w w środowisku programistycznym.

Co musisz wiedzieć o korzystaniu z repozytorium prywatnego

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, prywatne repozytorium nie można rozwiązać w chmurze zależności. W w tym przypadku rozwiązaniem jest użycie opcji --bundled-dependencies, gdy używasz narzędzie do wdrażania apigeetool. Zobacz też Wdróż Node.js ze swojego systemu w Edge.

Jeśli użyjesz flagi --bundled-dependencies na stronie apigeetool, Aplikacja Node.js zostanie przesłana do hostowanych celów oraz wszystkich plików lokalnych/prywatnych, które są wymienione na liście w tablicy bundledDependencies w języku package.json są skompresowane i przesyłane razem z pakietem.

Nie jest to typowa sytuacja, ale pamiętaj, że jeśli wewnętrznie zduplikujesz publiczne repozytorium NPM, wdrożenie się nie uda. jeśli Twój pakiet wdrożeniowy zawiera plik .npmrc lub package-lock.json wskazujący do swojego prywatnego lustra. W takim przypadku pomiń parametr .npmrc lub package-lock.json. z pakietu 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ć listę: utworzyć lub unieważnić token uwierzytelniania. Zobacz npm-token dokumentacji.
  3. Otwórz stronę konfiguracji map klucz-wartość w sposób opisany poniżej.

    Edge

    Aby uzyskać dostęp do strony konfiguracji map klucz-wartość za pomocą interfejsu Edge:

    1. Zaloguj się na stronie apigee.com/edge.
    2. Wybierz Administracja > Środowiska > Mapy klucz-wartość na lewym pasku nawigacyjnym.

    Classic Edge (Private Cloud)

    Aby uzyskać dostęp do strony konfiguracji map klucz-wartość w interfejsie Classic Edge:

    1. Zaloguj się w aplikacji http://ms-ip:9000, gdzie ms-ip to adres Adres IP lub nazwa DNS węzła serwera zarządzania.
    2. Wybierz Interfejsy API > Konfiguracja środowiska > Mapy klucz-wartość na górnym pasku nawigacyjnym.
  4. Kliknij + Mapa par klucz-wartość.
  5. W oknie Nowe mapowanie wartości kluczy wpisz nazwę i wybierz Zaszyfrowane.
  6. Kliknij Dodaj.
  7. Dodaj token uwierzytelniania, który został wcześniej znaleziony lub utworzony jako nowy wpis w każdej z maszyn wirtualnych. który właśnie utworzyłaś.
  8. W pliku app.yaml dodaj wpis odwołujący się do KVM i klucza. powiązane z tokenem uwierzytelniania 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 środowiska. która zostanie utworzona.
    • Wartość name w polu valueRef odpowiada maszynie wirtualnej użytej przez Ciebie utworzone wcześniej.
    • Atrybut key odpowiada kluczowi mapowanemu na token npm, który masz dodano do KVM.
  10. Utwórz plik .npmrc w tym samym katalogu, w którym znajduje się plik package.json. Ten powinien wyglądać podobnie do tego:
    //registry.npmjs.org/:_authToken=${NPM_TOKEN}
    a jeśli nie używasz registry.npmjs.org, możesz ustawić zakres w pliku .npmrc przez dodanie wiersza podobnego do tego: @myscope:registry=https://mycustomregistry.example.org Zobacz też dokumentację npmrc.
  11. Prześlij lub zaktualizuj serwer proxy Node.js przy użyciu plików .npmrc i app.yaml.
  12. Sprawdź, czy nowy lub zaktualizowany serwer proxy został wdrożony i współpracuje z żądanym repozytorium prywatnym .
  13. Jeśli serwer proxy nie zostanie wdrożony, sprawdź logi kompilacji, aby zobaczyć, czy podczas instalacji prywatnego modułu npm. Jeśli tak:
    1. Na karcie Programowanie sprawdź, czy plik .npmrc jest obecny.
    2. Sprawdź, czy token jest prawidłowy (spróbuj zainstalować moduł lokalnie przy użyciu tokena) w kvm).
    3. Jeśli korzystasz z zakresu niestandardowego, sprawdź, czy jest on ustawiony.

Określanie wersji NPM na potrzeby zależności w pakiecie

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żywać innej wersji NPM, możesz ją określić w NPM_VERSION zmiennej środowiskowej. Tę zmienną można ustawić w pliku manifestu aplikacji. Szczegółowe informacje znajdziesz w sekcji Elementy pliku manifestu.

Jeśli korzystasz z zależności w pakiecie, a nie określisz NPM_VERSION, hostowane cele domyślnie używa NPM w wersji 4. Jeśli nie używasz zależności w pakiecie, dołączona jest wersja NPM. w określonym środowisku wykonawczym Node.js.

Przykład zależności w pakiecie

Przykład prezentujący funkcję zależności połączonych z hostowanymi elementami docelowymi: Jak utworzyć aplikację Node.js z funkcjami hostowanymi za pomocą modułów niestandardowych.

Dodaj punkt końcowy 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 zaczyna sprawdzać, czy działa w kontenerze.

Domyślnie punkt końcowy, którego oczekuje Apigee, to /health. Możesz zmienić domyślną wartość punktu końcowego, określając go w zmiennej środowiskowej o nazwie HOSTED_TARGET_HEALTH_CHECK_PATH Możesz ustawić tę zmienną w pliku manifestu aplikacji . Szczegółowe informacje znajdziesz w sekcji Elementy pliku manifestu.

Wdrażanie punktu końcowego kontroli stanu nie jest wymagane. Jeśli jednak wdrożysz kontrolę stanu punktu końcowego, pamiętaj o tych kwestiach:

  • Jeśli Twoja aplikacja zostanie zamknięta, gdy Apigee dotrze do punktu końcowego, 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ży tylko do sprawdzania, czy aplikacja jest uruchomiona. Rzeczywista odpowiedź zostanie zignorowana.
.

Zmień lokalizację pamięci podręcznej NPM

Nowsze wersje Node.js korzystają z wersji NPM, która używa funkcji /root/.npm na potrzeby pamięci podręcznej NPM. Ta lokalizacja powoduje problem w przypadku hostowanych celów, ponieważ lokalizacja katalogu jest tylko do odczytu ponieważ środowisko wykonawcze hostowanego miejsca docelowego używa systemu plików tmpfs, w którym tylko /tmp może zapisywać dane. Aby obejść ten problem, możesz ustawić zmienną środowiskową npm_config_cache w: do Twojej aplikacji app.yamlfile (plik manifestu) do katalogu w domenie /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 funkcji NPM

Domyślnie hostowane cele korzystają z npm start do uruchamiania Twojej aplikacji hostowanej. Ale w poprzednim zadaniu omówiliśmy problem z używaniem NPM, ponieważ nowsze wersje będą próbowały używać /root/.npm dla pamięci podręcznej NPM, której nie można zapisać, co skutkuje hostowanym celem nie można uruchomić. Poprzednie zadanie rozwiązuje ten problem, ale inną opcją jest uruchamianie aplikacji bez funkcji NPM. Możesz to zrobić za pomocą instrukcji command oraz args wartości w pliku danych aplikacji app.yamlfile (plik manifestu) aby uruchomić hostowany cel bezpośrednio przy użyciu 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
  
Możesz użyć dowolnego polecenia, a node index.js to tylko przykład.