Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. Informacje
Limity zmiennych środowiskowych
Hostowane obiekty docelowe ograniczają rozmiar i liczbę zmiennych środowiskowych, które można ustawić w środowisku wykonawczym hostowanych elementów docelowych.
- 1000: maksymalna długość pojedynczej zmiennej środowiskowej.
- 100: maksymalna liczba zmiennych środowiskowych, które możesz ustawić.
Informacje na temat ustawiania zmiennych środowiskowych znajdziesz w artykule Plik manifestu.
Zmienne środowiskowe ustawione w środowisku wykonawczym aplikacji
Gdy wdrażasz aplikację hostowanych celów, ustawione są te zmienne środowiskowe i są dla niej dostępne w czasie działania:
APIGEE_ENVIRONMENT
– środowisko, w którym wdrożony jest hostowany serwer proxy.APIGEE_ORGANIZATION
– organizacja, w której wdrożono serwer proxy hostowany.PORT
– port, na którym musi nasłuchiwać aplikacja hostowana w środowisku docelowym.
Przydzielanie zasobów systemowych
Każda instancja z obiektami docelowymi otrzymuje te zasoby:
- 256 MB pamięci
- Procesor 1,2 GHz
Skalowanie
W tej sekcji opisano, jak skalują się aplikacje hostowanych celów w zależności od typu posiadanego konta Edge.- Wersja próbna Apigee Edge jest ograniczona do 1 instancji hostowanych celów na serwer proxy.
- Płatne konta Apigee Edge otrzymują automatyczne skalowanie na podstawie częstotliwości żądań, opóźnień odpowiedzi i innych wskaźników aplikacji na serwer proxy.
- Aplikacje hostowane w środowiskach docelowych wdrożone w płatnej i próbnej wersji Apigee Edge skalują się do zera w okresach braku aktywności. W takim przypadku odpowiedź może być krótsza niż zwykle. Zobacz też Znane problemy
Plik manifestu
Aby zebrać informacje o środowisku wykonawczym na potrzeby skompilowania i wdrożenia hostowanej aplikacji, Edge szuka pliku 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) określa typ wdrażanej aplikacji.
Musisz określić
node
. - runtimeVersion – (opcjonalnie) wersja środowiska wykonawczego używanego przez aplikację. Domyślnie: Node.js LTS (v10.x). Inne opcje znajdziesz w oficjalnym repozytorium Dockera dla węzła.
- command – (opcjonalny) pozwala określić polecenie do uruchomienia innego niż domyślne. 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). Są one zwykle dodawane do polecenia domyślnego.
Wartość domyślna to start. Na przykład domyślnie aplikacja Node.js będzie przekazywała polecenie
npm start
. - env – (opcjonalnie) tablica zmiennych środowiskowych (pary nazw i wartości) do ustawienia w środowisku wykonawczym hostowanych elementów docelowych. Te zmienne są dostępne dla wdrożonej aplikacji hostowanych celów.
- nazwa – nazwa zmiennej.
- value | valueRef – masz dwie opcje. Możesz ustawić wartość literałową lub odniesienie do wartości przechowywanej w mapie par klucz-wartość. Mapa klucz-wartość musi już istnieć w środowisku Edge. Patrz Praca z mapami klucz-wartość
- Jeśli używasz opcji 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ć nazwę mapy klucz-wartość (KVM) utworzonej wcześniej w Edge i podać klucz.
Na przykład:
runtime: node env: - name: DB_ENV value: production - name: DB_PASSWORD valueRef: name: hosted-kvm key: db-password
- Jeśli używasz opcji value, musisz określić zmienną
Przykładowe pliki manifestu
Ta sekcja zawiera przykładowe pliki manifestu aplikacji Node.js. Plik manifestu jest wymagany do wdrożenia aplikacji hostowanych celów. Musi on znajdować się w katalogu apiproxy/resources/hosted
, a plik musi mieć nazwę app.yaml
.
Poniżej znajdziesz przykładowe pliki app.yaml
(manifest) 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 rozpoczęcia, 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 określający odniesienie do mapy klucz-wartość (KVM):
Więcej informacji o dostępie KVM znajdziesz w artykule Plik manifestu.
runtime: node env: - name: DB_ENV value: production - name: DB_PASSWORD valueRef: name: hosted-kvm key: db-password
Przykładowe aplikacje z hostowanymi obiektami na GitHubie
Apigee udostępnia przykładowe serwery proxy na GitHubie z aplikacjami hostowanych celów napisanych w Node.js. Możesz skopiować to repozytorium i wykonać instrukcje README, aby wdrożyć dowolny z serwerów proxy.
Wymagania wstępne
Aby wdrożyć przykłady, w systemie musisz zainstalować 2 narzędzia:
- apigeetool – narzędzie wiersza poleceń służące do wdrażania serwerów proxy brzegowych.
- get_token – narzędzie wiersza poleceń służące do uzyskiwania tokena autoryzacji wymaganego przez apigeetool.
Jeśli chcesz przetestować przykłady lokalnie, musisz też zainstalować środowisko Node.js.
Uzyskiwanie przykładowego repozytorium
- W przeglądarce otwórz stronę https://github.com/apigee/api-platform-samples.
- Kliknij Sklonuj lub pobierz i pobierz repozytorium do systemu lokalnego przy użyciu preferowanej metody.
- cd do <katalogu instalacji>/api-platform-samples/doc-samples/udostępnianych-targets
- Po pobraniu repozytorium możesz przejść do dowolnego z przykładowych katalogów i postępować zgodnie z instrukcjami README, aby wdrożyć przykładowy serwer proxy na serwerze Edge. Polecenie wdrożenia jest widoczne poniżej. Wystarczy, że zastąpisz wskazane parametry swoim kontem Apigee:
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 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 pojawi się błąd wdrożenia, wykonaj polecenie wdrażania ponownie.
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 – teraz, gdy aplikacja Node.js nie działa już w JVM maszyny wirtualnej, występuje przeskok sieciowy między MP a wdrożeniem. Oczywiście wiąże się to z pewnymi kosztami, ale wstępne analizy pokazują, że mieści się w rozsądnym zakresie
- Powolne odpowiedzi interfejsu API – infrastruktura, w której działają aplikacje, automatycznie skaluje się w zależności od potrzeb. Oznacza to, że Twoja aplikacja może być skalowana w dół do 0 instancji, a jeśli tak się stanie, kolejne żądanie do interfejsu API potrwa trochę dłużej niż typowe żądania do interfejsu API, ponieważ infrastruktura obraca instancje w celu ich przetwarzania.
- Błąd wdrażania – jeśli podczas wdrażania serwera proxy hostowanych obiektów docelowych pojawi się błąd wdrożenia, spróbuj ponownie wdrożyć serwer proxy. W niektórych przypadkach może nastąpić przekroczenie limitu czasu, a ponowne wdrożenie rozwiąże problem.