Dokumentacja hostowanych celów

Wyświetlasz dokumentację Apigee Edge.
Przejdź do dokumentacji Apigee X.
info

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

Gdy wdrożysz aplikację Hostowane cele, zostaną ustawione te zmienne środowiskowe, które będą dostępne dla Twojej aplikacji w czasie działania:

  • APIGEE_ENVIRONMENT – środowisko, w którym wdrożono docelowy serwer proxy hostowany.
  • APIGEE_ORGANIZATION – organizacja, w której wdrożono docelowy serwer proxy Hostowane cele.
  • PORT – port, na którym musi nasłuchiwać aplikacja Hostowane cele.

Przydział zasobów systemowych

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

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

Skalowanie

W tej sekcji opisujemy, jak skalują się aplikacje Hostowane cele w zależności od typu konta Edge.
  • Wersja próbna Apigee Edge jest ograniczona do 1 instancji Hostowanych celów na serwer proxy.
  • Płatne konta Apigee Edge korzystają z automatycznego skalowania na podstawie liczby wniosków, opóźnień odpowiedzi i innych wskaźników aplikacji na serwer proxy.
  • Aplikacje Hostowane cele wdrożone w płatnych i próbnych wersjach Apigee Edge skalują się do zera w okresach bezczynnoś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 tworzenia i wdrażania hostowanej aplikacji, Edge szuka pliku manifestu o nazwie app.yaml w katalogu resources/hosted. Ten plik zawiera informacje niezbędne do utworzenia i wdrożenia aplikacji Hostowane cele.

Składnia pliku manifestu

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) określa typ wdrażanej aplikacji. Musisz podać wartość node.
  • runtimeVersion – (opcjonalny) wersja środowiska wykonawczego używana przez aplikację. Domyślnie: Node.js LTS (wersja 10.x). Inne opcje znajdziesz w oficjalnym repozytorium Dockera dla Node.
  • command – (opcjonalny) umożliwia określenie polecenia, które ma być uruchamiane zamiast domyślnego polecenia używanego do uruchamiania aplikacji. Domyślnie: Node.js=npm
  • args – (opcjonalny) tablica argumentów wiersza poleceń, które mają być przekazywane do aplikacji (określona w standardowej składni tablicy YAML). Zwykle są one dodawane do polecenia domyślnego. Domyślnie jest to start. Na przykład domyślnie do aplikacji Node.js zostanie przekazane polecenie npm start.
  • env – (opcjonalny) tablica zmiennych środowiskowych (par nazwa/wartość) do ustawienia w środowisku wykonawczym Hostowanych celów. Te zmienne są dostępne dla wdrożonej aplikacji Hostowane cele.
    • name – nazwa zmiennej.
    • value | valueRef – masz 2 opcje. Możesz ustawić wartość literału lub odwołać się do wartości przechowywanej w mapie klucz-wartość. Mapa klucz-wartość musi już istnieć w Twoim środowisku Edge. Zobacz Praca z mapami klucz-wartość
      • Jeśli używasz value, musisz określić zmienną name i literał value. Na przykład:
        runtime: node
        env:
         - name: NODE_ENV
           value: production
      • Jeśli używasz valueRef, musisz podać name mapy klucz-wartość (KVM), którą utworzono wcześniej w Edge, oraz key. 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 aplikacji Node.js aplikacji. Do wdrożenia aplikacji Hostowane cele wymagany jest plik manifestu, który musi znajdować się w katalogu apiproxy/resources/hosted a jego nazwa musi być app.yaml.

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

    Przykład, który określa literał zmiennej środowiskowej:

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

    Przykład z poleceniem startowym, 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 znajdziesz w sekcji Plik manifestu.

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

    Przykładowe aplikacje Hostowane cele na GitHubie

    Apigee udostępnia na GitHubie przykładowe serwery proxy z aplikacjami Hostowane cele napisanymi w Node.js. Możesz sklonować to repozytorium i postępować zgodnie z instrukcjami w pliku README, aby wdrożyć dowolny serwer proxy.

    Wymagania wstępne

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

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

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

    Pobieranie przykładowego repozytorium

    1. W przeglądarce otwórz stronę https://github.com/apigee/api-platform-samples.
    2. Kliknij Clone or download (Sklonuj lub pobierz) i pobierz repozytorium do systemu lokalnego za pomocą preferowanej metody.
    3. cd do <your install dir>/api-platform-samples/doc-samples/hosted-targets
    4. Po pobraniu repozytorium możesz przejść do dowolnego katalogu z przykładami i postępować zgodnie z instrukcjami w pliku README, aby wdrożyć przykładowy serwer proxy w Edge. Polecenie wdrożenia jest pokazane poniżej. Po prostu zastąp wskazane parametry parametrami swojego 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: wykonywanie przykładowej aplikacji

    Klonowanie repozytorium z przykładami

    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

    Lokalne testowanie aplikacji

    Aby przeprowadzić ten test lokalny, musisz mieć zainstalowany 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

    Wdrożenie może potrwać kilka minut. Jeśli wystąpi błąd wdrożenia, uruchom ponownie polecenie wdrożenia.

    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 w sieci – ponieważ aplikacja Node.js nie działa już w JVM procesora wiadomości, między procesorem wiadomości a wdrożeniem występuje teraz przeskok sieciowy. Oczywiście wiąże się to z kosztami, ale wstępne testy porównawcze pokazują, że mieszczą się one w rozsądnych granicach.
    • Powolne odpowiedzi interfejsu API – infrastruktura, na której działają Twoje aplikacje automatycznie skaluje się w zależności od potrzeb. Oznacza to, że aplikacja może zostać skalowana w dół do zera instancji. W takim przypadku kolejne żądanie do interfejsu API będzie trwało nieco dłużej niż typowe żądania do interfejsu API, ponieważ infrastruktura uruchamia instancje w celu przetworzenia żądań.
    • Błąd wdrożenia – jeśli podczas wdrażania serwera proxy Hostowane cele wystąpi błąd wdrożenia, spróbuj ponownie wdrożyć serwer proxy. W niektórych przypadkach wdrożenie może przekroczyć limit czasu i jeśli wdrożysz ponownie, problem zostanie rozwiązany.