Dokumentacja operacji i konfiguracji Edge Microgateway

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Edge Microgateway wersja 2.4.x

Opis

Ten temat zawiera informacje na temat zarządzania i konfigurowania Edge Microgateway, w tym monitorowania, logowania i debugowania.

Wprowadzanie zmian w konfiguracji

Pliki konfiguracji, które musisz znać, zawierają:

  • Domyślny plik konfiguracji systemu
  • Domyślny plik konfiguracji dla nowo zainicjowanej instancji Edge Microgateway
  • Dynamiczny plik konfiguracji na potrzeby uruchomionych instancji

W tej sekcji omawiamy te pliki oraz informacje o tym, co musisz wiedzieć o ich przekształcaniu. Więcej informacji o ustawieniach pliku konfiguracji znajdziesz w dokumentacji dotyczącej konfiguracji Edge Microgateway.

Domyślny plik konfiguracji systemu

Gdy instalujesz Edge Microgateway, w tym miejscu znajduje się domyślny plik konfiguracji systemu:

[prefix]/lib/node_modules/edgemicro/config/default.yaml

gdzie [prefix] to katalog prefiksów npm. Zobacz, gdzie jest zainstalowana Edge Microgateway.

Jeśli zmienisz plik konfiguracji systemu, musisz ponownie zainicjować, skonfigurować i ponownie uruchomić Edge Microgateway:

  1. Zadzwoń: edgemicro init
  2. Zadzwoń: edgemicro configure [params]
  3. Zadzwoń: edgemicro start [params]

Domyślny plik konfiguracji dla nowo zainicjowanych instancji Edge Microgateway

Po uruchomieniu programu edgemicro init systemowy plik konfiguracyjny (opisany powyżej) default.yaml jest umieszczany w tym katalogu: ~/.edgemicro

Jeśli zmienisz plik konfiguracji w lokalizacji ~/.edgemicro, musisz ponownie skonfigurować i ponownie uruchomić Edge Microgateway:

  1. edgemicro stop
  2. edgemicro configure [params]
  3. edgemicro start [params]

Dynamiczny plik konfiguracji do uruchamiania instancji

Po uruchomieniu edgemicro configure [params] w pliku ~/.edgemicro tworzony jest dynamiczny plik konfiguracji. Plik nazywa się zgodnie z tym wzorcem: [org]-[env]-config.yaml, gdzie org i env to nazwy organizacji i środowisk Apigee Edge. Za pomocą tego pliku możesz wprowadzić zmiany w konfiguracji, a następnie załadować go ponownie z zerowym czasem przestoju. Jeśli na przykład dodasz i skonfigurujesz wtyczkę, możesz ponownie załadować konfigurację bez przerw w działaniu usługi, jak opisano poniżej.

Jeśli Edge Microgateway jest uruchomiona (opcja zerowa przestoju):

  1. Załaduj ponownie konfigurację Edge Microgateway:
    edgemicro reload -o [org] -e [env] -k [key] -s [secret]
    

    Gdzie:

    • org to nazwa organizacji Edge (musisz być administratorem organizacji).
    • env to środowisko w Twojej organizacji (np. testowe lub produkcyjne).
    • key to klucz zwrócony wcześniej przez polecenie konfiguracji.
    • secret to klucz zwrócony wcześniej przez polecenie konfiguracji.

    Przykład

    edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d000723 -s 05c14356e42ed136b8dd35cf8a18531ff52d7299134677e30ef4e34ab0cc824
    

Jeśli Edge Microgateway jest zatrzymana:

  1. Ponownie uruchom Edge Microgateway:
    edgemicro start -o [org] -e [env] -k [key] -s [secret]
    

    Gdzie:

    • org to nazwa organizacji Edge (musisz być administratorem organizacji).
    • env to środowisko w Twojej organizacji (np. testowe lub produkcyjne).
    • key to klucz zwrócony wcześniej przez polecenie konfiguracji.
    • secret to klucz zwrócony wcześniej przez polecenie konfiguracji.

    Przykład

    edgemicro start -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d000723 -s 05c14356e42ed136b8dd35cf8a18531ff52d7299134677e30ef4e34ab0cc824
    

Oto przykładowy plik konfiguracyjny. Więcej informacji o ustawieniach pliku konfiguracji znajdziesz w dokumentacji konfiguracji Edge Microgateway.

edge_config:
  bootstrap: >-
    https://edgemicroservices-us-east-1.apigee.net/edgemicro/bootstrap/organization/docs/environment/test
  jwt_public_key: 'https://docs-test.apigee.net/edgemicro-auth/publicKey'
  managementUri: 'https://api.enterprise.apigee.com'
  vaultName: microgateway
  authUri: 'https://%s-%s.apigee.net/edgemicro-auth'
  baseUri: >-
    https://edgemicroservices.apigee.net/edgemicro/%s/organization/%s/environment/%s
  bootstrapMessage: Please copy the following property to the edge micro agent config
  keySecretMessage: The following credentials are required to start edge micro
  products: 'https://docs-test.apigee.net/edgemicro-auth/products'
edgemicro:
  port: 8000
  max_connections: 1000
  max_connections_hard: 5000
  config_change_poll_interval: 600
  logging:
    level: error
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24
  plugins:
    sequence:
      - oauth
headers:
  x-forwarded-for: true
  x-forwarded-host: true
  x-request-id: true
  x-response-time: true
  via: true
oauth:
  allowNoAuthorization: false
  allowInvalidAuthorization: false
  verify_api_key_url: 'https://docs-test.apigee.net/edgemicro-auth/verifyApiKey'
analytics:
  uri: >-
    https://edgemicroservices-us-east-1.apigee.net/edgemicro/axpublisher/organization/docs/environment/test

Ustawianie zmiennych środowiskowych

Polecenia interfejsu wiersza poleceń, które wymagają wartości dla organizacji i środowiska Edge, oraz klucz i obiekt tajny potrzebne do uruchomienia Edge Microgateway, mogą być przechowywane w tych zmiennych środowiskowych:

  • EDGEMICRO_ORG
  • EDGEMICRO_ENV
  • EDGEMICRO_KEY
  • EDGEMICRO_SECRET

Ustawianie tych zmiennych jest opcjonalne. Jeśli je ustawisz, nie musisz określać ich wartości podczas konfigurowania i uruchamiania Edge Microgateway za pomocą interfejsu wiersza poleceń.

Konfigurowanie SSL na serwerze Edge Microgateway

Możesz skonfigurować serwer Microgateway, aby używał SSL. Na przykład po skonfigurowaniu SSL możesz wywoływać interfejsy API przez Edge Microgateway, korzystając z protokołu „https” w ten sposób:

https://localhost:8000/myapi

Aby skonfigurować protokół SSL na serwerze Microgateway, wykonaj następujące czynności:

  1. Wygeneruj lub uzyskaj certyfikat i klucz SSL przy użyciu narzędzia openssl lub dowolnej preferowanej metody.
  2. Dodaj atrybut edgemicro:ssl do pliku konfiguracji Edge Microgateway. Pełną listę opcji znajdziesz w poniższej tabeli. Szczegółowe informacje o modyfikowaniu konfiguracji Edge Microgateway znajdziesz w artykule Wprowadzanie zmian w konfiguracji. Przykład:
     edgemicro:
         ssl:
             key: <absolute path to the SSL key file>
             cert: <absolute path to the SSL cert file>
             passphrase: admin123 #option added in v2.2.2
             rejectUnauthorized: true #option added in v2.2.2
             requestCert: true 
    
  3. Ponownie uruchom Edge Microgateway. Wykonaj czynności opisane w sekcji Wprowadzanie zmian w konfiguracji w zależności od tego, który plik konfiguracji był edytowany: plik domyślny lub plik konfiguracji środowiska wykonawczego.

Oto przykład sekcji Edgemicro w pliku konfiguracyjnym ze skonfigurowanym protokołem SSL:

edgemicro:
  port: 8000
  max_connections: 1000
  max_connections_hard: 5000
  logging:
    level: error
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24
  plugins:
    sequence:
      - oauth
  ssl:
    key: /MyHome/SSL/em-ssl-keys/server.key
    cert: /MyHome/SSL/em-ssl-keys/server.crt
    passphrase: admin123 #option added in v2.2.2
    rejectUnauthorized: true #option added in v2.2.2

Oto lista wszystkich obsługiwanych opcji serwera:

Option Opis
key Ścieżka do pliku ca.key (w formacie PEM).
cert Ścieżka do pliku ca.cert (w formacie PEM).
pfx Ścieżka do pliku pfx zawierającego klucz prywatny, certyfikat i certyfikaty CA klienta w formacie PFX.
passphrase Ciąg znaków zawierający hasło klucza prywatnego lub pliku PFX.
ca Ścieżka do pliku zawierającego listę zaufanych certyfikatów w formacie PEM.
ciphers Ciąg tekstowy opisujący mechanizmy szyfrowania, których należy użyć, oddzielony znakiem „:”.
rejectUnauthorized Jeśli ma wartość true (prawda), certyfikat serwera jest weryfikowany pod kątem listy urzędów certyfikacji. Jeśli weryfikacja się nie powiedzie, zostanie zwrócony błąd.
secureProtocol Metoda SSL, której chcesz użyć. Przykładem może być SSLv3_method, aby wymuszać protokół SSL do wersji 3.
servername Nazwa serwera dla rozszerzenia TLS SNI (Server Name Indication).
requestCert Wartość true dla dwukierunkowego protokołu SSL; false dla jednokierunkowego protokołu SSL

Korzystanie z opcji SSL/TLS klienta

Podczas nawiązywania połączenia z docelowymi punktami końcowymi możesz skonfigurować Edge Microgateway jako klienta TLS lub SSL. W pliku konfiguracji Microgateway użyj elementu target, aby ustawić opcje SSL/TLS.

W tym przykładzie przedstawiono ustawienia, które zostaną zastosowane do wszystkich hostów:

targets:
   ssl:
     client:
       key: /Users/jdoe/nodecellar/twowayssl/ssl/client.key
       cert: /Users/jdoe/nodecellar/twowayssl/ssl/ca.crt
       passphrase: admin123
       rejectUnauthorized: true

W tym przykładzie ustawienia zostały zastosowane tylko do określonego hosta:

targets:
   host: 'myserver.example.com'
   ssl:
     client:
       key: /Users/myname/twowayssl/ssl/client.key
       cert: /Users/myname/twowayssl/ssl/ca.crt
       passphrase: admin123
       rejectUnauthorized: true

Oto przykład z protokołem TLS:

targets:
   host: 'myserver.example.com'
   tls:
     client:
       pfx: /Users/myname/twowayssl/ssl/client.pfx
       passphrase: admin123
       rejectUnauthorized: true

Oto lista wszystkich obsługiwanych opcji klienckich:

Option Opis
pfx Ścieżka do pliku pfx zawierającego klucz prywatny, certyfikat i certyfikaty CA klienta w formacie PFX.
key Ścieżka do pliku ca.key (w formacie PEM).
passphrase Ciąg znaków zawierający hasło klucza prywatnego lub pliku PFX.
cert Ścieżka do pliku ca.cert (w formacie PEM).
ca Ścieżka do pliku zawierającego listę zaufanych certyfikatów w formacie PEM.
ciphers Ciąg tekstowy opisujący mechanizmy szyfrowania, których należy użyć, oddzielony znakiem „:”.
rejectUnauthorized Jeśli ma wartość true (prawda), certyfikat serwera jest weryfikowany pod kątem listy urzędów certyfikacji. Jeśli weryfikacja się nie powiedzie, zostanie zwrócony błąd.
secureProtocol Metoda SSL, której chcesz użyć. Przykładem może być SSLv3_method, aby wymuszać protokół SSL do wersji 3.
servername Nazwa serwera dla rozszerzenia TLS SNI (Server Name Indication).

Dostosowywanie serwera proxy uwierzytelniania Edgemicro

Domyślnie Edge Microgateway używa serwera proxy wdrożonego w Apigee Edge do uwierzytelniania OAuth2. Ten serwer proxy jest wdrażany przy pierwszym uruchomieniu przeglądarki edgemicro configure. Możesz zmienić domyślną konfigurację tego serwera proxy, aby dodać obsługę deklaracji niestandardowych do tokena internetowego JSON (JWT), skonfigurować wygaśnięcie tokena i wygenerować tokeny odświeżania. Szczegółowe informacje znajdziesz na stronie edgemicro-auth w GitHubie.

Korzystanie z niestandardowej usługi uwierzytelniania

Domyślnie Edge Microgateway używa serwera proxy wdrożonego w Apigee Edge do uwierzytelniania OAuth2. Ten serwer proxy jest wdrażany przy pierwszym uruchomieniu przeglądarki edgemicro configure. Domyślnie adres URL tego serwera proxy jest określony w pliku konfiguracyjnym Edge Microgateway w następujący sposób:

authUri: https://myorg-myenv.apigee.net/edgemicro-auth

Jeśli do uwierzytelniania chcesz używać własnej usługi niestandardowej, zmień wartość authUri w pliku konfiguracyjnym, tak aby wskazywała Twoją usługę. Możesz na przykład mieć usługę, która weryfikuje tożsamość za pomocą protokołu LDAP.

Zarządzanie plikami logu

Edge Microgateway loguje informacje o każdym żądaniu i odpowiedzi. Pliki logów zawierają przydatne informacje podczas debugowania i rozwiązywania problemów.

Miejsce przechowywania plików dziennika

Domyślnie pliki dziennika są przechowywane w usłudze /var/tmp.

Jak zmienić domyślny katalog pliku dziennika

Katalog, w którym są przechowywane pliki logów, jest określony w pliku konfiguracji Edge Microgateway. Szczegółowe informacje o wprowadzaniu zmian w konfiguracji znajdziesz w artykule Wprowadzanie zmian w konfiguracji.

edgemicro:
  home: ../gateway
  port: 8000
  max_connections: -1
  max_connections_hard: -1
  logging:
    level: info
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24

Zmień wartość dir, aby wskazać inny katalog pliku dziennika.

Wysyłaj logi do konsoli

Możesz skonfigurować logowanie w taki sposób, aby informacje dotyczące logu były wysyłane na standardowe dane wyjściowe, a nie do pliku logu. Ustaw flagę to_console na „true” (prawda) w ten sposób:

edgemicro:
  logging:
    to_console: true  

Przy tym ustawieniu logi będą wysyłane do standardowego wyjścia. Obecnie nie można wysyłać logów zarówno do stdout, jak i do pliku logu.

Jak ustawić poziom rejestrowania

Możesz ustawić te poziomy rejestrowania: informacje, ostrzeżenie i błąd. Zalecany jest poziom informacji. Loguje wszystkie żądania i odpowiedzi interfejsu API i jest to ustawienie domyślne.

Jak zmienić odstępy w dzienniku

Te odstępy możesz skonfigurować w pliku konfiguracyjnym Edge Microgateway. Szczegółowe informacje o wprowadzaniu zmian w konfiguracji znajdziesz w artykule Wprowadzanie zmian w konfiguracji.

Atrybuty, które można skonfigurować:

  • stats_log_interval: (domyślnie: 60) interwał, w sekundach, podczas którego rekord statystyk jest zapisywany w pliku dziennika interfejsu API.
  • rotate_interval: (domyślnie: 24) interwał, w godzinach, podczas którego rotacja plików dziennika jest rotowana. Na przykład:
edgemicro:
  home: ../gateway
  port: 8000
  max_connections: -1
  max_connections_hard: -1
  logging:
    level: info
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24

Uwaga: zarchiwizowane pliki dziennika nie są kompresowane. Gdy rozpocznie się interwał, zostanie utworzony nowy plik logu z nową sygnaturą czasową.

Sprawdzone metody obsługi plików logów

W miarę gromadzenia danych w pliku logu Apigee zaleca zastosowanie tych metod:

  • Pliki logów mogą być dość duże, dlatego upewnij się, że w katalogu pliku dziennika jest wystarczająca ilość miejsca. Zapoznaj się z sekcjami Gdzie są przechowywane pliki dziennika i Jak zmienić domyślny katalog pliku logu.
  • Co najmniej raz w tygodniu usuń lub przenieś pliki dziennika do osobnego katalogu archiwum.
  • Jeśli zasadą jest usuwanie logów, możesz usunąć (oczyścić) starsze logi za pomocą polecenia interfejsu wiersza poleceń edgemicro log -c.

Konwencja nazewnictwa plików dziennika

Każda instancja Edge Microgateway tworzy 3 typy plików dziennika:

  • api – rejestruje wszystkie żądania i odpowiedzi przechodzące przez Edge Microgateway. W tym pliku są także rejestrowane liczniki zdarzeń (statystyki) i błędy.
  • err – rejestruje wszystkie dane wysłane do stderr.
  • out – rejestruje wszystkie dane wysłane do stdout.

Oto konwencja nazewnictwa:

edgemicro-<Host Name>-<Instance ID>-<Log Type>.log

Na przykład:

edgemicro-mymachine-local-MTQzNTgNDMxODAyMQ-api.log
edgemicro-mymachine-local-MTQzNTg1NDMODAyMQ-err.log
edgemicro-mymachine-local-mtqzntgndmxodaymq-out.log

Zawartość pliku dziennika

Dodano w wersji 2.3.3

Domyślnie usługa logowania pomija plik JSON z pobranymi serwerami proxy, produktami i tokenem sieciowym JSON (JWT). Jeśli chcesz umieszczać te obiekty w plikach logu, ustaw DEBUG=* podczas uruchamiania Edge Microgateway. Na przykład:

DEBUG=* edgemicro start -o docs -e test -k abc123 -s xyz456

Uwaga: w systemie Windows użyj SET DEBUG=*

Zawartość pliku dziennika „api”

Plik logu „api” zawiera szczegółowe informacje o przepływie żądań i odpowiedzi przez Edge Microgateway. Pliki dziennika „api” mają taką nazwę:

edgemicro-mymachine-local-MTQzNjIxOTk0NzY0Nw-api.log

W przypadku każdego żądania wysłanego do Edge Microgateway plik dziennika „api” rejestruje 4 zdarzenia:

  • Żądanie przychodzące od klienta
  • Żądanie wychodzące wysłane do środowiska docelowego
  • Odpowiedź przychodząca od środowiska docelowego
  • Odpowiedź wychodząca dla klienta

Każdy z tych wpisów jest ujęty w zapisie skróconym, dzięki czemu pliki logów są bardziej kompaktowe. Oto 4 przykładowe wpisy reprezentujące każde z 4 zdarzeń. W pliku dziennika wyglądają one tak (numery wierszy służą tylko do celów referencyjnych w dokumencie, nie występują w pliku dziennika).

(1) 1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
(2) 1436403888665 info treq m=GET, u=/, h=127.0.0.18080, i=0
(3) 1436403888672 info tres s=200, d=7, i=0
(4) 1436403888676 info res s=200, d=11, i=0

Omówmy je kolejno:

1. Przykładowe żądanie przychodzące z klienta:

1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
  • 1436403888651 – znacznik daty uniksowej
  • info – zależy od kontekstu. W zależności od poziomu logu może to być informacja, ostrzeżenie lub błąd. Może to być statystyki rekordu statystyk, ostrzeżenie przed ostrzeżeniami lub błąd w przypadku błędu.
  • req – identyfikuje zdarzenie. W tym przypadku żądanie od klienta.
  • m – czasownik HTTP użyty w żądaniu.
  • u – część adresu URL podążająca za ścieżką bazową.
  • h – host i numer portu, na którym nasłuchuje Edge Microgateway.
  • r – host zdalny i port, z którego wyszło żądanie klienta.
  • i – identyfikator żądania. Wszystkie 4 wpisy dotyczące wydarzenia będą miały ten sam identyfikator. Każde żądanie ma przypisany unikalny identyfikator. Korelowanie rekordów logów według identyfikatora żądania może dostarczyć cennych informacji o czasie oczekiwania celu.
  • d – czas w milisekundach od momentu odebrania żądania przez Edge Microgateway. W powyższym przykładzie odpowiedź obiektu docelowego na żądanie 0 została odebrana po 7 milisekundach (wiersz 3), a odpowiedź do klienta została wysłana do klienta po dodatkowych 4 milisekundach (wiersz 4). Inaczej mówiąc, łączny czas oczekiwania na żądanie wyniósł 11 milisekund, z czego 7 milisekund zostało wykonane przez serwer docelowy i 4 milisekundy przez samą usługę Edge Microgateway.

2. Przykładowe żądanie wychodzące wysłane do środowiska docelowego:

1436403888665 info treq m=GET, u=/, h=127.0.0.1:8080, i=0
  • 1436403888651 – znacznik daty uniksowej
  • info – zależy od kontekstu. W zależności od poziomu logu może to być informacja, ostrzeżenie lub błąd. Może to być statystyki rekordu statystyk, ostrzeżenie przed ostrzeżeniami lub błąd w przypadku błędu.
  • treq – identyfikuje zdarzenie. W takim przypadku jest to żądanie docelowe.
  • m – czasownik HTTP użyty w żądaniu docelowym.
  • u – część adresu URL podążająca za ścieżką bazową.
  • h – host i numer portu docelowego backendu.
  • i – identyfikator wpisu logu. Wszystkie 4 wpisy dotyczące wydarzenia będą miały ten sam identyfikator.

3. Przykładowa odpowiedź przychodząca ze środowiska docelowego

1436403888672 info tres s=200, d=7, i=0

1436403888651 – znacznik daty uniksowej

  • info – zależy od kontekstu. W zależności od poziomu logu może to być informacja, ostrzeżenie lub błąd. Może to być statystyki rekordu statystyk, ostrzeżenie przed ostrzeżeniami lub błąd w przypadku błędu.
  • tres – identyfikuje zdarzenie. W tym przypadku jest to odpowiedź docelowa.
  • s – stan odpowiedzi HTTP.
  • d – czas w milisekundach. Czas potrzebny na wywołanie interfejsu API przez element docelowy.
  • i – identyfikator wpisu logu. Wszystkie 4 wpisy dotyczące wydarzenia będą miały ten sam identyfikator.

4. Przykładowa odpowiedź wychodząca dla klienta

1436403888676 info res s=200, d=11, i=0

1436403888651 – znacznik daty uniksowej

  • info – zależy od kontekstu. W zależności od poziomu logu może to być informacja, ostrzeżenie lub błąd. Może to być statystyki rekordu statystyk, ostrzeżenie przed ostrzeżeniami lub błąd w przypadku błędu.
  • res – identyfikuje zdarzenie. W tym przypadku odpowiedź dla klienta.
  • s – stan odpowiedzi HTTP.
  • d – czas w milisekundach. Jest to łączny czas potrzebny na wywołanie interfejsu API, w tym czas potrzebny na użycie docelowego interfejsu API, a także przez samą Edge Microgateway.
  • i – identyfikator wpisu logu. Wszystkie 4 wpisy dotyczące wydarzenia będą miały ten sam identyfikator.

Harmonogram plików dziennika

Pliki logów są rotowane w odstępie określonym przez atrybut konfiguracji rotate_interval. Wpisy będą nadal dodawane do tego samego pliku logu, dopóki nie upłynie interwał rotacji. Jednak przy każdym ponownym uruchomieniu Edge Microgateway otrzymuje nowy identyfikator UID i tworzy z nim nowy zestaw plików logów. Zobacz też Sprawdzone metody obsługi plików dziennika.

Dokumentacja konfiguracji Edge Microgateway

Lokalizacja pliku konfiguracji

Atrybuty konfiguracji opisane w tej sekcji znajdują się w pliku konfiguracji Edge Microgateway. Szczegółowe informacje o wprowadzaniu zmian w konfiguracji znajdziesz w artykule Wprowadzanie zmian w konfiguracji.

atrybuty Edge_config

Te ustawienia służą do konfigurowania interakcji między instancją Edge Microgateway a Apigee Edge.

  • bootstrap: (domyślnie: brak) adres URL wskazujący usługę Edge Microgateway działającą w Apigee Edge. Edge Microgateway korzysta z tej usługi do komunikacji z Apigee Edge. Ten URL jest zwracany po wykonaniu polecenia do wygenerowania pary kluczy publicznego/prywatnego: edgemicro genkeys. Więcej informacji znajdziesz w artykule o konfigurowaniu i konfigurowaniu Edge Microgateway.
  • jwt_public_key: (domyślnie: brak) URL wskazujący serwer proxy Edge Microgateway wdrożony w Apigee Edge. Ten serwer proxy służy jako punkt końcowy uwierzytelniania przy wystawianiu podpisanych tokenów dostępu klientom. Ten adres URL jest zwracany po wykonaniu polecenia wdrożenia serwera proxy: edgemicro configure. Więcej informacji znajdziesz w artykule o konfigurowaniu i konfigurowaniu Edge Microgateway.

atrybuty Edgemicro

Te ustawienia służą do konfigurowania procesu Edge Microgateway.

  • port: (domyślnie: 8000) numer portu, na którym nasłuchuje proces Edge Microgateway.
  • max_connections: (domyślnie: -1) określa maksymalną liczbę jednoczesnych połączeń przychodzących, które może odebrać Edge Microgateway. Jeśli ta liczba zostanie przekroczona, zwracany jest ten stan:

    res.statusCode = 429; // Too many requests
  • max_connections_hard: (domyślnie: -1) maksymalna liczba jednoczesnych żądań, które może otrzymać firma Edge Microgateway przed wyłączeniem połączenia. To ustawienie ma zapobiegać atakom typu DoS. Zwykle należy go ustawić na wartość większą niż max_connections.
  • logging:
    • level: (domyślnie: błąd)
      • info – rejestruje wszystkie żądania i odpowiedzi przechodzące przez instancję Edge Microgateway.
      • warn – rejestrowane są tylko komunikaty ostrzegawcze.
      • error – rejestrowane są tylko komunikaty o błędach.
    • dir: (domyślnie: /var/tmp) katalog, w którym są przechowywane pliki dziennika.
    • stats_log_interval: (domyślnie: 60) interwał, w sekundach, podczas którego rekord statystyk jest zapisywany w pliku dziennika interfejsu API.
    • rotate_interval: (domyślnie: 24) interwał, w godzinach, podczas którego rotacja plików dziennika jest rotowana.
  • dir: ścieżka względna z katalogu ./gateway do katalogu ./Wtyczki lub ścieżka bezwzględna.
  • sequence: lista modułów wtyczek, które należy dodać do instancji Edge Microgateway. Moduły będą wykonywane w kolejności, w jakiej zostały tu określone.
  • debugowanie: dodaje debugowanie zdalne do procesu Edge Microgateway.
    • port: numer portu na potrzeby nasłuchiwania. Na przykład ustaw debuger IDE tak, aby nasłuchiwał na tym porcie.
    • args: argumenty procesu debugowania. Na przykład: args --nolazy
  • config_change_poll_interval: (domyślnie: 600 sekund) Edge Microgateway okresowo wczytuje nową konfigurację i uruchamia ponowne załadowanie, jeśli coś się zmieni. Odpytywanie wykrywa wszystkie zmiany wprowadzone w Edge (zmiany usług, serwerów proxy rozpoznających mikrobramy itp.), a także zmiany wprowadzone w lokalnym pliku konfiguracji.
  • disable_config_poll_interval: (domyślnie: fałsz) ustaw wartość true, aby wyłączyć automatyczne odpytywanie zmian.
  • request_timeout: określa czas oczekiwania dla żądań docelowych. Limit czasu jest ustawiany w sekundach. W przypadku przekroczenia limitu czasu Edge Microgateway wysyła kod stanu 504. (Dodano wersję 2.4.x)

atrybuty nagłówków

Te ustawienia określają sposób obsługi określonych nagłówków HTTP.

  • x-forwarded-for: (default: true) ustaw na „false” (fałsz), aby uniemożliwić przekazywanie nagłówków do elementu docelowego (x-forwarded-for). Pamiętaj, że jeśli w żądaniu znajduje się nagłówek x-forwarded-for, jego wartość zostanie ustawiona na wartość client-ip w Edge Analytics.
  • x-forwarded-host: (domyślnie: true) ustaw wartość false, by uniemożliwić przesyłanie nagłówków x-forwarded-host do środowiska docelowego.
  • x-request-id: (domyślnie: true) ustaw na „false”, by uniemożliwić przesyłanie nagłówków x-request-id do elementu docelowego.
  • x-response-time: (domyślnie: prawda) ustaw na „false” (fałsz), aby uniemożliwić przekazywanie nagłówków x-response-time do elementu docelowego.
  • via: (default: true) ustaw na wartość false, aby uniemożliwić przesyłanie nagłówków do elementu docelowego.

atrybuty OAuth

Te ustawienia określają sposób wymuszania uwierzytelniania klienta przez Edge Microgateway.

  • allowNoAuthorization: (domyślnie: false) jeśli zasada ma wartość prawda, wywołania interfejsu API mogą przechodzić przez Edge Microgateway bez nagłówka Authorization. Ustaw tę wartość na false, aby wymagać nagłówka autoryzacji (domyślnie).
  • allowInvalidAuthorization: (domyślnie: false) jeśli zasada ma wartość true (prawda), wywołania interfejsu API mogą być przekazywane, gdy token przekazany w nagłówku autoryzacji jest nieprawidłowy lub wygasł. Ustaw tę wartość na false, aby wymagać prawidłowych tokenów (domyślnie).
  • authorization-header: (domyślnie: Authorization: Bearer) nagłówek używany do wysłania tokena dostępu do Edge Microgateway. Możesz zmienić wartość domyślną, jeśli cel musi używać nagłówka autoryzacji w innym celu.
  • api-key-header: (domyślnie: x-api-key) nazwa nagłówka lub parametru zapytania używanego do przekazania klucza interfejsu API do Edge Microgateway. Zobacz też Używanie klucza interfejsu API.
  • keepAuthHeader: (domyślnie: fałsz) jeśli ma wartość Prawda, nagłówek autoryzacji wysłany w żądaniu jest przekazywany do środowiska docelowego (zachowywany).
  • allowOAuthOnly – jeśli zasada ma wartość Prawda, każdy interfejs API musi mieć nagłówek autoryzacji z tokenem dostępu okaziciela. Pozwala zezwolić tylko na model zabezpieczeń OAuth (przy zachowaniu zgodności wstecznej). (Dodano wersję 4.2.x)
  • allowAPIKeyOnly – jeśli ma wartość Prawda, każdy interfejs API musi mieć nagłówek x-api-key (lub niestandardową lokalizację) z kluczem interfejsu API.Pozwala na zezwolenie tylko na model zabezpieczeń klucza interfejsu API (z zachowaniem zgodności wstecznej). (Dodano 4.2.x)

Atrybuty konkretnych wtyczek

Szczegółowe informacje o konfigurowalnych atrybutach każdej wtyczki znajdziesz w sekcji Korzystanie z wtyczek.

Filtrowanie serwerów proxy

Możesz przefiltrować serwery proxy rozpoznające mikrobramy, które będzie przetwarzać instancja Edge Microgateway. Po uruchomieniu Edge Microgateway pobiera wszystkie rozpoznające mikrobramy w organizacji, z którą jest powiązana. Użyj tej konfiguracji, aby ograniczyć serwery proxy przetwarzane przez mikrobramę. Na przykład ta konfiguracja ogranicza serwery proxy, które będzie przetwarzać mikrobrama: edgemicro_proxy-1, edgemicro_proxy-2 i edgemicro_proxy-3:

proxies:
  - edgemicro_proxy-1
  - edgemicro_proxy-2
  - edgemicro_proxy-3

Maskowanie danych analitycznych

Ta konfiguracja uniemożliwia wyświetlanie informacji o ścieżce żądania w analityce Edge. Dodaj poniższy kod do konfiguracji mikrobramy, aby zamaskować identyfikator URI żądania lub ścieżkę żądania. Zwróć uwagę, że identyfikator URI składa się z nazwy hosta i ścieżki żądania.

analytics:
  mask_request_uri: 'string_to_mask'
  mask_request_path: 'string_to_mask'

Konfigurowanie Edge Microgateway za firmową zaporą sieciową

Obsługiwana wersja 4.2.x

Jeśli Edge Microgateway jest zainstalowana za zaporą sieciową, brama może nie być w stanie komunikować się z Apigee Edge. W takim przypadku masz 2 możliwości:

Opcja 1:

Pierwszą opcją jest ustawienie opcji Edgemicro: proxy_tunnel na wartość true w pliku konfiguracyjnym mikrobramy:

edge_config:

    proxy: http://10.224.16.85:3128
    proxy_tunnel: true

Gdy proxy_tunnel ma wartość true, Edge Microgateway używa metody POŁĄCZENIA HTTP do tunelowania żądań HTTP przez pojedyncze połączenie TCP. (To samo dzieje się, jeśli zmienne środowiskowe do konfigurowania serwera proxy mają włączony protokół TLS).

Opcja 2:

Druga opcja to określenie serwera proxy i ustawienie wartości false dla parametru proxy_tunnel w pliku konfiguracyjnym mikrobramy. Na przykład:

edge_config:
     proxy: http://10.224.16.85:3128
     proxy_tunnel: false

W tym przypadku możesz ustawić następujące zmienne, aby kontrolować hosty dla każdego serwera proxy HTTP, którego chcesz używać lub które hosty nie powinny obsługiwać serwerów proxy Edge Microgateway: HTTP_PROXY, HTTPS_PROXY i NO_PROXY.

Możesz ustawić NO_PROXY jako listę domen rozdzielonych przecinkami, do których Edge Microgateway nie ma serwera proxy. Na przykład:

export NO_PROXY='localhost,localhost:8080'

Ustaw HTTP_PROXY i HTTPS_PROXY na punkt końcowy serwera proxy HTTP, aby Edge Microgateway może wysyłać do niego wiadomości. Na przykład:

export HTTP_PROXY='http://localhost:3786'

export HTTPS_PROXY='https://localhost:3786'

Więcej informacji o tych zmiennych znajdziesz w tych artykułach:

https://www.npmjs.com/package/request#controlling-proxy-behaviour-using-environment-variables


Zobacz też

Jak skonfigurować Edge Microgateway za firmową zaporą sieciową w społeczności Apigee.

Korzystanie z symboli wieloznacznych w serwerach proxy obsługiwanych przez Microgateway

W ścieżce bazowej serwera proxy edgemicro_* (ang. Microgateway-aware) możesz użyć co najmniej jednego symbolu wieloznacznego „*”. Na przykład ścieżka bazowa /team/*/members pozwala klientom wywoływać https://[host]/team/blue/members i https://[host]/team/green/members bez konieczności tworzenia nowych serwerów proxy interfejsu API do obsługi nowych zespołów. Pamiętaj, że właściwość /**/ nie jest obsługiwana.

Ważne: Apigee NIE obsługuje użycia symbolu wieloznacznego „*” jako pierwszego elementu ścieżki podstawowej. Na przykład takie pole nie jest obsługiwane: wyszukiwanie za pomocą polecenia /*/.


Debugowanie i rozwiązywanie problemów

Łączenie z debugerem

Edge Microgateway możesz uruchomić przy użyciu debugera, takiego jak node-inspector. Przydaje się to do rozwiązywania problemów i debugowania niestandardowych wtyczek.

  1. Ponownie uruchom Edge Microgateway w trybie debugowania. Aby to zrobić, dodaj DEBUG=* na początku polecenia start. Przykład:

    DEBUG=* edgemicro start -o myorg -e test -k db4e9e8a95aa7fabfdeacbb1169d0a8cbe42bec19c6b98129e02 -s 6e56af7c1b26dfe93dae78a735c8afc9796b077d105ae5618ce7ed

    Uwaga: w systemie Windows użyj SET DEBUG=*

  2. Uruchom debuger i skonfiguruj go, aby nasłuchiwał na numerze portu podczas procesu debugowania.
  3. Możesz teraz przejść przez kod Edge Microgateway, ustawiać punkty przerwania, obserwować wyrażenia itd.

Możesz określić standardowe flagi Node.js związane z trybem debugowania. Na przykład --nolazy pomaga w debugowaniu kodu asynchronicznego.

Sprawdzam pliki dziennika

Jeśli wystąpią problemy, przejrzyj pliki logów pod kątem szczegółów wykonania i błędów. Więcej informacji znajdziesz w temacie Zarządzanie plikami dziennika.

Używanie zabezpieczeń klucza interfejsu API

Klucze interfejsu API zapewniają prosty mechanizm uwierzytelniania klientów wysyłających żądania do Edge Microgateway. Klucz interfejsu API możesz uzyskać, kopiując wartość klucza klienta (nazywanego też identyfikatorem klienta) z usługi Apigee Edge, która zawiera serwer proxy uwierzytelniania Edge Microgateway.

Buforowanie kluczy

Klucze interfejsu API są wymieniane na tokeny okaziciela, które są przechowywane w pamięci podręcznej. Możesz wyłączyć buforowanie, ustawiając nagłówek Cache-Control: no-cache dla żądań przychodzących do Edge Microgateway.

Korzystanie z zabezpieczeń tokena OAuth2

Szczegółowe informacje o używaniu tokena OAuth z żądaniami serwera proxy znajdziesz w sekcji Microsoft Microgateway.

Używanie klucza interfejsu API

Szczegółowe informacje o używaniu kluczy interfejsu API z żądaniami serwera proxy znajdziesz w sekcji Secure Edge Microgateway.

Konfigurowanie nazwy klucza interfejsu API

Domyślnie x-api-key jest nazwą używaną w nagłówku klucza interfejsu API lub parametrze zapytania. Możesz zmienić to ustawienie domyślne w pliku konfiguracji, zgodnie z opisem w sekcji Wprowadzanie zmian w konfiguracji. Aby na przykład zmienić nazwę na apiKey:

oauth:
 allowNoAuthorization: false
 allowInvalidAuthorization: false
 api-key-header: apiKey