Dokumentacja hostowanych celów

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

Limity zmiennych środowiskowych

Hostowane cele ograniczają rozmiar i liczbę zmiennych środowiskowych które można ustawić w środowisku wykonawczym hostowanych celów.

  • 1000: maksymalna długość pojedynczej zmiennej środowiskowej.
  • 100: maksymalna liczba zmiennych środowiskowych, które można ustawić.

Informacje o ustawianiu zmiennych środowiskowych znajdziesz w sekcji Plik manifestu.

Zmienne środowiskowe ustawione w środowisku wykonawczym aplikacji

Podczas wdrażania aplikacji hostowanych wartości docelowych ustawione są następujące zmienne środowiskowe są dostępne dla aplikacji w czasie działania:

  • APIGEE_ENVIRONMENT – środowisko, w którym wdrażany jest hostowany docelowy serwer proxy.
  • APIGEE_ORGANIZATION – organizacja, w której wdrażany jest hostowany docelowy serwer proxy.
  • PORT – port, na którym musi nasłuchiwać hostowana aplikacja docelowa.

Przydział zasobów systemowych

Każda instancja hostowanych celów otrzymuje te zasoby:

  • 256 MB pamięci
  • Procesor 1,2 GHz

Skalowanie

Ta sekcja opisuje skalowanie aplikacji hostowanych celów w zależności od typu konta Edge liczbę instalacji.
  • Wersja próbna Apigee Edge jest ograniczona do 1 instancji hostowanych celów na serwer proxy.
  • Płatne konta Apigee Edge mają automatyczne skalowanie na podstawie częstotliwości żądań, czasu oczekiwania na odpowiedź i inne wskaźniki dotyczące aplikacji na serwer proxy.
  • Aplikacje hostowanych aplikacji docelowych wdrożone zarówno w płatnych, jak i próbnych wersjach Apigee Edge są skalowane do zera w okresach braku aktywności. W takim przypadku przez krótki czas możesz zauważyć dłuższy czas odpowiedzi. Zobacz też Znane problemy

Plik manifestu

Aby zebrać informacje o środowisku wykonawczym na potrzeby kompilowania i wdrażania hostowanej aplikacji, Edge szuka: plik manifestu o nazwie app.yaml w katalogu resources/hosted. Ten plik zawiera informacje niezbędne do skompilowania i wdrożenia aplikacji hostowanych celów.

Składnia pliku Manfiest

runtime: node
runtimeVersion: version_number
command: command_name
args: argument_array
env:
  - name: variable_name
    value: literal_value
  - name: variable_name
    valueRef:
      name: kvm_name
      key: kvm_value

Elementy pliku manifestu

Plik manifestu app.yaml zawiera te elementy:

  • runtime – (wymagany) typ wdrażanej aplikacji. Musisz określić node.
  • runtimeVersion – (opcjonalnie) wersja środowiska wykonawczego, których używa Twoja aplikacja. Domyślnie: Node.js LTS (v10.x). Zapoznaj się z oficjalnym repozytorium Dockera dla węzła , aby poznać inne opcje.
  • command – (opcjonalnie) pozwala określić polecenie do uruchomienia inne niż domyślnego polecenia służącego do uruchamiania aplikacji. Domyślny: Node.js=npm
  • args – (opcjonalny) tablica argumentów wiersza poleceń przekazywanych do aplikacji (określanej w standardowej składni tablicy YAML). Zazwyczaj są one dodawane do polecenia domyślnego. Wartość domyślna to start. Na przykład domyślnie aplikacja Node.js przekazuje polecenie npm start
  • env – (opcjonalny) tablica zmiennych środowiskowych (pary nazw i wartości) ustaw w środowisku wykonawczym hostowanych celów. Te zmienne są dostępne dla: wdrożoną aplikację hostowanych celów.
    • nazwa – nazwa zmiennej.
    • wartość | valueRef – dostępne są 2 opcje. Możesz ustawić literał. lub odwoływać się do wartości zapisanej na mapie par klucz-wartość. Mapa klucz-wartość musi już istnieje w Twoim środowisku Edge. Patrz: Praca z mapami par klucz-wartość.
      • Jeśli używasz argumentu value, musisz określ zmienną name i literał value. Na przykład:
        runtime: node
        env:
         - name: NODE_ENV
           value: production
      • Jeśli użyjesz właściwości valueRef, musisz podać nazwę mapy klucz-wartość (KVM) utworzonej wcześniej w Edge oraz klucz. Na przykład:
        runtime: node
        env:
          - name: DB_ENV
            value: production
          - name: DB_PASSWORD
            valueRef:
              name: hosted-kvm
              key: db-password

    Przykładowe pliki manifestu

    Ta sekcja zawiera przykładowe pliki manifestu dla Node.js aplikacji. Plik manifestu jest wymagany do wdrożenia aplikacji z hostowanymi miejscami docelowymi i musi znajdować się w lokalizacji w katalogu apiproxy/resources/hosted, a nazwa pliku musi brzmieć app.yaml.

    Poniżej znajdziesz przykładowe pliki app.yaml (manifestu) aplikacji Node.js.

    Przykład, który określa literałową zmienną środowiskową:

     runtime: node
     env:
       - name: NODE_ENV
         value: production

    Przykład z poleceniem startu, argumentami wiersza poleceń i zmienną środowiskową.

     runtime: node
     command: ./node_modules/pm2/bin/pm2
     env:
       - name: NODE_ENV
         value: production
     args:
       - app.js


    Przykład, który określa odwołanie do mapy klucz-wartość (KVM):

    Więcej informacji o dostępie do KVM zawiera plik manifestu.

    runtime: node
    env:
      - name: DB_ENV
        value: production
      - name: DB_PASSWORD
        valueRef:
          name: hosted-kvm
          key: db-password

    Przykładowe aplikacje hostowane w GitHubie

    Apigee udostępnia przykładowe serwery proxy w GitHubie z zapisanymi aplikacjami hostowanych celów w Node.js. Możesz skopiować to repozytorium i wykonać instrukcje README, aby wdrożenia dowolnego serwera proxy.

    Wymagania wstępne

    Aby wdrożyć przykłady, musisz mieć zainstalowane w systemie 2 narzędzia:

    • apigeetool – wiersz poleceń narzędzie do wdrażania serwerów proxy Edge.
    • get_token – narzędzie wiersza poleceń służące do uzyskiwania tokena autoryzacji wymaganego przez apigeetool.

    Jeśli chcesz testować przykłady lokalnie, musisz też zainstalować środowisko Node.js.

    Uzyskiwanie przykładowego repozytorium

    1. W przeglądarce otwórz stronę https://github.com/apigee/api-platform-samples.
    2. Kliknij Sklonuj lub pobierz i pociągnij repozytorium do systemu lokalnego, korzystając z preferowanej metody.
    3. cd do <katalogu instalacji>/api-platform-samples/doc-samples/hosted-targets
    4. Po pobraniu repozytorium możesz przejść do dowolnego z przykładowych katalogów i wykonać instrukcje Instrukcje w README dotyczące wdrażania przykładowego serwera proxy w Edge. Poniżej znajduje się polecenie wdrożenia. Simply zastąp wskazane parametry parametrami konta Apigee:
    5. get_token && apigeetool deployproxy \
        -o YOUR_ORGANIZATION \
        -e YOUR_ENVIRONMENT \
        --json \
        --token "$(< ~/.sso-cli/valid_token.dat)"\
        --api NAME_OF_THE_PROXY \
        --directory .

    Przykład: uruchamianie przykładowej aplikacji

    Klonowanie repozytorium przykładów

    cd ~/myhome
    git clone https://github.com/apigee/api-platform-samples.git
    cd ~/myhome/api-platform-samples/doc-samples/hosted-targets
    cd node-hosted-hello

    Testowanie aplikacji lokalnie

    Aby wykonać ten test lokalny, musisz mieć zainstalowany pakiet Node.js.

     PORT=8081 node apiproxy/resources/hosted/index.js
     curl http://localhost:8081

    Przykładowe dane wyjściowe:

    {"date":"2018-03-12T21:45:22.161Z","msg":"Hello, World!"}

    Wdrażanie serwera proxy

     get_token && apigeetool deployproxy \
       -o myorg \
       -e test \
       --json \
       --token "$(< ~/.sso-cli/valid_token.dat)"\
       --api node-hosted-hello \
       --directory .

    Testowanie wdrożenia

    Wdrażanie może potrwać kilka minut. Jeśli wystąpi błąd wdrożenia, wykonaj ponownie uruchomić polecenie wdrażania.

    curl http://myorg-test.apigee.net/node-hosted-hello

    Przykładowe dane wyjściowe:

    {"date":"2018-03-23T18:59:18.668Z","msg":"Hello, World!"

    Znane problemy

    • Opóźnienia sieciowe – aplikacja Node.js nie działa już w JVM MP nastąpi przeskok sieciowy między konsolą MP a wdrożeniem. Oczywiście. jest to dość koszt, ale początkowe analizy porównawcze pokazują, że mieści się on w rozsądnym zakresie.
    • Powolne odpowiedzi interfejsu API – infrastruktura, w której działają Twoje aplikacje. automatycznie skaluje się w zależności od potrzeb. Oznacza to, że aplikacja może być skalowana w dół zero instancji. Jeśli tak jest, następne żądanie do interfejsu API będzie przetwarzane nieco dłużej niż typowe żądania do interfejsu API, ponieważ infrastruktura rotuje instancje, aby przetwarzać żądań.
    • Błąd wdrażania – jeśli podczas wdrażania Serwer proxy hostowanych celów. Spróbuj ponownie wdrożyć serwer proxy. W niektórych przypadkach wdrożenie może przekroczyć limit czasu a ponownym wdrożeniem problem sam się rozwiąże.