Dokumentacja operacji i konfiguracji Edge Microgateway

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

Edge Microgateway wer. 2.4.x

Omówienie

Z tego artykułu dowiesz się, jak zarządzać oraz skonfigurować Edge Microgateway, w tym monitorowanie, logowanie i debugowanie.

Wprowadzanie zmian w konfiguracji

Pliki konfiguracji, o których musisz wiedzieć:

  • Domyślny plik konfiguracji systemu
  • Domyślny plik konfiguracyjny dla nowo zainicjowanej instancji Edge Microgateway
  • Plik konfiguracji dynamicznej do uruchomienia instancji

W tej sekcji omówione są te pliki oraz wszystkie niezbędne informacje na temat ich zmiany. Więcej informacji o ustawieniach pliku konfiguracji patrz Konfiguracja Edge Microgateway odniesienie.

Domyślna konfiguracja systemu plik

Podczas instalacji Edge Microgateway w tym miejscu umieszczany jest domyślny plik konfiguracji systemu:

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

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

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

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

Domyślny plik konfiguracyjny dla nowo zainicjowanych instancji Edge Microgateway

Po uruchomieniu programu edgemicro init systemowy plik konfiguracyjny (opisanej powyżej) default.yaml zostanie umieszczone w tym katalogu: ~/.edgemicro

Jeśli zmienisz plik konfiguracyjny w folderze ~/.edgemicro, musisz ponownie skonfigurować i uruchomić ponownie Mikrobrama Edge:

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

Dynamiczna, plik konfiguracji do uruchomionych instancji

Jeśli używasz edgemicro configure [params], dynamiczne reklamy tworzony jest plik konfiguracyjny w ok. /.edgemicro. Plik ma taką nazwę wzór: [org]-[env]-config.yaml, gdzie org i env to Twoja organizacja Apigee Edge i nazwy środowiska. W tym pliku możesz wprowadzić zmiany w konfiguracji, a następnie załadować je ponownie z zerowym czasem przestoju. Jeśli na przykład dodasz i skonfigurujesz wtyczkę, możesz ponownie załadować bez przestojów, jak opisano poniżej.

Jeśli działa Edge Microgateway (opcja zero przestojów):

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

    Gdzie:

    • org to nazwa Twojej organizacji Edge (musisz być administratora organizacji).
    • env to środowisko w Twojej organizacji (np. środowisko testowe lub produkcja).
    • key to klucz zwrócony wcześniej przez konfigurację .
    • secret to klucz zwrócony wcześniej przez .

    Przykład

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

Jeśli Edge Microgateway zostanie zatrzymany:

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

    Gdzie:

    • org to nazwa Twojej organizacji Edge (musisz być administratora organizacji).
    • env to środowisko w Twojej organizacji (np. środowisko testowe lub produkcja).
    • key to klucz zwrócony wcześniej przez konfigurację .
    • secret to klucz zwrócony wcześniej przez .

    Przykład

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

Oto przykładowy plik konfiguracyjny. Szczegółowe informacje o ustawieniach pliku konfiguracji znajdziesz w artykule Więcej informacji: Edge Microgateway od konfiguracji.

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

poleceń interfejsu wiersza poleceń, które wymagają wartości dla organizacji Edge i , a klucz i obiekt tajny potrzebne do uruchomienia Edge Microgateway mogą być przechowywane w tych zmienne środowiskowe:

  • EDGEMICRO_ORG
  • EDGEMICRO_ENV
  • EDGEMICRO_KEY
  • EDGEMICRO_SECRET

Ustawienie tych zmiennych jest opcjonalne. Jeśli je ustawisz, nie musisz określać ich wartości gdy używasz interfejsu wiersza poleceń (CLI) do konfigurowania i uruchamiania Edge Microgateway.

Konfigurowanie SSL w Edge Microgateway serwer

Serwer Microgateway możesz skonfigurować do używania protokołu SSL. Na przykład, jeśli masz skonfigurowany protokół SSL, może wywoływać interfejsy API za pomocą Edge Microgateway za pomocą protokołu „https” w następujący 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 innej metody.
  2. Dodawanie atrybutu edgemicro:ssl do Edge Microgateway . Pełną listę opcji znajdziesz w tabeli poniżej. Więcej informacji: na temat modyfikowania konfiguracji Edge Microgateway zapoznaj się z artykułem Wprowadzanie zmian 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. Uruchom ponownie Edge Microgateway. Wykonaj czynności opisane w sekcji Wprowadzanie zmian w konfiguracji w zależności od tego, edytowany plik konfiguracji: 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:

Opcja 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 tekstowy zawierający hasło klucza prywatnego lub PFX.
ca Ścieżka do pliku zawierającego listę zaufanych certyfikatów w formacie PEM.
ciphers Ciąg opisujący stosowane mechanizmy szyfrowania, rozdzielone znakiem „:”.
rejectUnauthorized Jeśli ma wartość true (prawda), certyfikat serwera jest weryfikowany pod kątem listy podanych urzędów certyfikacji. Jeśli ale weryfikacja się nie powiedzie, zwracany jest błąd.
secureProtocol Stosowana metoda SSL. Na przykład SSLv3_method wymusza stosowanie SSL w wersji 3.
servername Nazwa serwera rozszerzenia TLS (SNI (Server Name Indication).
requestCert true (prawda) dla dwukierunkowego protokołu SSL; wartość false dla jednokierunkowego protokołu SSL

Korzystanie z opcji SSL/TLS klienta

Możesz skonfigurować Edge Microgateway, aby był klientem TLS lub SSL podczas nawiązywania połączenia z miejscem docelowym i punktów końcowych. Użyj elementu docelowego w pliku konfiguracji Microgateway, aby ustawić protokół SSL/TLS .

Ten przykład zawiera 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 są stosowane 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 użycia protokołu 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 klientów:

Opcja 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 tekstowy zawierający hasło klucza prywatnego lub 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 opisujący stosowane mechanizmy szyfrowania, rozdzielone znakiem „:”.
rejectUnauthorized Jeśli ma wartość true (prawda), certyfikat serwera jest weryfikowany pod kątem listy podanych urzędów certyfikacji. Jeśli ale weryfikacja się nie powiedzie, zwracany jest błąd.
secureProtocol Stosowana metoda SSL. Na przykład SSLv3_method wymusza stosowanie SSL w wersji 3.
servername Nazwa serwera 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 podczas początkowego uruchamiania edgemicro configure. Dostępne opcje zmień domyślną konfigurację tego serwera proxy, aby dodać obsługę deklaracji niestandardowych do witryny JSON Token (JWT), skonfiguruj datę wygaśnięcia tokena i wygeneruj tokeny odświeżania. Więcej informacji: strona 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 podczas początkowego uruchamiania edgemicro configure. Domyślnie 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 obsługi uwierzytelniania chcesz używać własnej usługi niestandardowej, zmień wartość authUri w pliku konfiguracyjnym, aby wskazać Twoją usługę. Dla: możesz na przykład mieć usługę, która do weryfikacji tożsamości używa protokołu LDAP.

.

Zarządzanie pliki dziennika

Edge Microgateway rejestruje informacje o każdym żądaniu i odpowiedzi. Pliki dzienników zapewniają przeznaczone do debugowania i rozwiązywania problemów.

Gdzie są przechowywane pliki dziennika

Domyślnie pliki dziennika są przechowywane w folderze /var/tmp.

Jak zmienić domyślny dziennik katalog plików

Katalog, w którym są przechowywane pliki logów, jest określony w konfiguracji Edge Microgateway . Szczegółowe informacje 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 logu.

Wyślij logi do konsoli

Możesz skonfigurować logowanie w taki sposób, aby informacje dziennika były wysyłane na standardowe dane wyjściowe zamiast do pliku dziennika. Ustaw flagę to_console na „true” 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 do obu stdout i plik dziennika.

Jak ustawić poziom rejestrowania

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

Jak zmienić interwały logu

Te odstępy możesz skonfigurować w pliku konfiguracji Edge Microgateway. Szczegółowe informacje o tworzeniu zmian konfiguracji można znaleźć w sekcji Wprowadzanie konfiguracji zmian.

Atrybuty, które można skonfigurować:

  • stats_log_interval: (domyślnie: 60) interwał w sekundach, w którym statystyki rekord jest zapisywany w pliku dziennika interfejsu API.
  • rotate_interval: (domyślnie: 24) interwał w godzinach, w którym pliki dziennika są obrócono. 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 rozpoczyna się interwał, zostanie utworzony nowy plik dziennika z nową sygnaturą czasową.

Dobre praktyki konserwacji pliku logu

W miarę gromadzenia danych w pliku dziennika Apigee zaleca wdrożenie tego metody:

  • Pliki dziennika mogą być dość duże, dlatego upewnij się, że w katalogu wystarczającą ilość miejsca. Zapoznaj się z sekcjami Gdzie są przechowywane pliki dziennika oraz Jak zmienić domyślny plik dziennika? katalogu.
  • Co najmniej raz w tygodniu usuwaj pliki dzienników lub przenoś je do osobnego katalogu archiwum.
  • Jeśli Twoją zasadą jest usuwanie logów, możesz użyć polecenia interfejsu wiersza poleceń edgemicro log -c, aby usunąć (czyste) starsze logi.

Konwencja nazewnictwa plików logów

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

  • api – rejestruje wszystkie żądania i odpowiedzi, które przechodzą przez Edge. Mikrobrama. W tym pliku są również rejestrowane liczniki zdarzeń (statystyk) i błędy interfejsu API.
  • 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

Informacje o zawartości pliku dziennika

Dodano w wersji 2.3.3

Domyślnie usługa logowania pomija kod JSON pobranych serwerów proxy, produktów i pliku JSON Token internetowy (JWT). Jeśli chcesz przesłać te obiekty do plików dziennika, ustaw DEBUG=* po uruchomieniu 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ść pola „api” plik dziennika

Interfejs API plik dziennika zawiera szczegółowe informacje o przepływie żądań i odpowiedzi za pomocą Edge Microgateway. Interfejs API pliki dziennika mają taką nazwę:

edgemicro-mymachine-local-MTQzNjIxOTk0NzY0Nw-api.log

Dla każdego żądania wysłanego do Edge Microgateway w interfejsie „api” są rejestrowane 4 zdarzenia dziennik plik:

  • Przychodzące żądanie od klienta
  • Żądanie wychodzące wysłane do miejsca docelowego
  • Odpowiedź przychodząca z celu
  • Odpowiedź wychodząca do klienta

Każdy z tych wpisów jest przedstawiony w formie skróconej, aby ułatwić utworzenie dziennika są bardziej kompaktowe. Poniżej przedstawiamy 4 przykładowe wpisy reprezentujące każde z 4 zdarzeń. W dzienniku wyglądają następująco (numery wierszy są w dokumencie tylko w celach informacyjnych, nie są wyświetlane 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

Przyjrzyjmy się im po kolei:

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

1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
  • 1436403888651 – znacznik daty Unix
  • info – zależy od kontekstu. Może to być informacja, ostrzeżenie lub błąd, w zależności od poziomu logowania. Może to być statystyka jako statystyka, ostrzeżenie przed ostrzeżeniami lub dla błędów.
  • req – identyfikuje zdarzenie. W takim przypadku poproś użytkownika klienta.
  • m – czasownik HTTP używany w żądaniu;
  • u – część adresu URL występująca po ścieżce bazowej.
  • h – host i numer portu, na których jest Edge Microgateway. nasłuchiwanie.
  • r – host zdalny i port, do którego chce uzyskać dostęp klient. .
  • i – identyfikator żądania. Wszystkie 4 wydarzenia będą miały ten identyfikator. Każdy do żądania zostaje przypisany unikalny identyfikator. Korelowanie rekordów logu według identyfikatora żądania może zapewnić cennych informacji na temat czasu oczekiwania dla celu.
  • d – czas w milisekundach od otrzymania żądania przez Edge Microgateway. W powyższym przykładzie otrzymano odpowiedź celu na żądanie 0 po 7 milisekundach (wiersz 3), a odpowiedź została wysłana do klienta po kolejnych 4 milisekundy (wiersz 4). Innymi słowy, łączny czas oczekiwania na żądanie wyniósł 11 milisekund z których 7 milisekund było zajęte przez wartość docelową, a 4 milisekundy przez 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 Unix
  • info – zależy od kontekstu. Może to być informacja, ostrzeżenie lub błąd, w zależności od poziomu logowania. Może to być statystyka jako statystyka, ostrzeżenie przed ostrzeżeniami lub dla błędów.
  • treq – identyfikuje zdarzenie. W tym przypadku jest to żądanie docelowe.
  • m – czasownik HTTP używany w żądaniu docelowym.
  • u – część adresu URL występująca po ścieżce bazowej.
  • h – host i numer portu celu backendu.
  • i – identyfikator wpisu w dzienniku. Będzie to widoczne dla wszystkich 4 wydarzeń ID.

3. Przykładowa odpowiedź przychodząca z celu

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

1436403888651 – znacznik daty Unix

  • info – zależy od kontekstu. Może to być informacja, ostrzeżenie lub błąd, w zależności od poziomu logowania. Może to być statystyka jako statystyka, ostrzeżenie przed ostrzeżeniami lub dla błędów.
  • tres – identyfikuje zdarzenie. W tym przypadku jest to odpowiedź docelowa.
  • s – stan odpowiedzi HTTP.
  • d – czas trwania w milisekundach. Czas potrzebny na wywołanie interfejsu API przez wartość docelową.
  • i – identyfikator wpisu w dzienniku. Będzie to widoczne dla wszystkich 4 wydarzeń ID.

4. Przykład odpowiedzi wychodzącej do klienta

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

1436403888651 – znacznik daty Unix

  • info – zależy od kontekstu. Może to być informacja, ostrzeżenie lub błąd, w zależności od poziomu logowania. Może to być statystyka jako statystyka, ostrzeżenie przed ostrzeżeniami lub dla błędów.
  • res – identyfikuje zdarzenie. W takim przypadku odpowiedź na żądanie klienta.
  • s – stan odpowiedzi HTTP.
  • d – czas trwania w milisekundach. To jest całkowity czas potrzebny według wywołania interfejsu API, w tym czas poświęcony przez docelowy interfejs API oraz czas, jaki upłynął od brzegu Mikrobrama.
  • i – identyfikator wpisu w dzienniku. Będzie to widoczne dla wszystkich 4 wydarzeń ID.

Harmonogram plików dziennika

Pliki logów są poddawane rotacji zgodnie z interwałem określonym przez konfiguracja rotate_interval . Wpisy będą dodawane do tego samego pliku logu aż do interwału rotacji wygasa. Jednak przy każdym ponownym uruchomieniu Edge Microgateway urządzenie otrzymuje nowy identyfikator UID i tworzy nowego zestawu plików dziennika z tym identyfikatorem UID. Zapoznaj się też ze sprawdzonymi metodami konserwacji plików dziennika.

Konfiguracja Edge Microgateway odniesienie

Lokalizacja plik konfiguracji

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

atrybuty Edge_config

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

  • loadtrap: (domyślnie: brak) adres URL wskazujący stronę brzegową. Usługa specyficzna dla Microgateway, która działa w Apigee Edge. Edge Microgateway używa tej usługi do: komunikują się z Apigee Edge. Ten adres URL jest zwracany, gdy wykonasz polecenie generujące para kluczy publiczny/prywatny: edgemicro genkeys. Zapoznaj się z ustawieniami i skonfigurować Edge Microgateway.
  • jwt_public_key: (domyślnie: brak) adres URL wskazujący Edge Microgateway. serwera proxy wdrożonego w Apigee Edge. Ten serwer proxy służy jako punkt końcowy uwierzytelniania dla wystawiania podpisanych tokenów dostępu klientom. Ten adres URL jest zwracany, gdy wykonasz polecenie wdrożyć serwer proxy: edgemicroconfigure. Zapoznaj się z ustawieniami i skonfigurować Edge Microgateway.

Atrybuty Edgemicro

Te ustawienia umożliwiają skonfigurowanie procesu Edge Microgateway.

  • port: (domyślnie: 8000) numer portu, na którym działa Edge Microgateway nasłuchuje.
  • max_connections: (domyślnie: -1) określa maksymalną liczbę połączeń jednoczesne połączenia przychodzące, które może odbierać Edge Microgateway. Jeśli ten numer to został przekroczony, zwracany jest następujący stan:

    res.statusCode = 429; // Too many requests
  • max_connections_hard: (domyślnie: –1) maksymalna liczba jednoczesnych połączeń, które może odbierać Edge Microgateway przed zamknięciem połączenia. To ustawienie ma udaremniać ataki typu DoS. Zwykle należy ustawić wartość większą niż max_connections.
  • logowanie:
    • level: (domyślnie: error)
      • info – rejestruje wszystkie żądania i odpowiedzi, które przechodzą przez Instancja Edge Microgateway.
      • warn – rejestruje tylko komunikaty ostrzegawcze.
      • error (błąd) – rejestrowane są tylko komunikaty o błędach.
    • dir: (domyślnie: /var/tmp) katalog, w którym znajdują się pliki dziennika zapisane.
    • stats_log_interval: (domyślnie: 60) interwał w sekundach, w którym statystyki rekord jest zapisywany w pliku dziennika interfejsu API.
    • rotate_interval: (domyślnie: 24) interwał w godzinach, w którym pliki dziennika są obrócono.
  • Wtyczki: wtyczki zwiększają funkcjonalność Edge Microgateway. Więcej informacji o tworzeniu wtyczek można znaleźć w artykule Tworzenie
  • dir: ścieżka względna z katalogu ./gateway do katalogu Katalog ./typy lub ścieżka bezwzględna.
  • sequence (sekwencja): lista modułów wtyczek, które możesz dodać do Edge Microgateway. instancji. Moduły będą wykonywane w określonej tutaj kolejności.
  • debug : dodaje do procesu Edge Microgateway zdalne debugowanie.
    • port: numer portu nasłuchującego. Na przykład skonfiguruj debuger IDE 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 w razie potrzeby odświeża stronę. Ankiety rejestruje wszystkie zmiany wprowadzone w Edge (zmiany w produktach, serwery proxy rozpoznające mikrobramy itp.), oraz zmiany wprowadzone w lokalnym pliku konfiguracyjnym.
  • disable_config_poll_interval: (domyślnie: false) ustaw na true (prawda), aby wyłączyć zmianę automatyczną; w ankietach.
  • request_timeout: ustawia limit czasu żądań docelowych. Czas oczekiwania jest ustawiony w sek. Jeśli upłynie czas oczekiwania, Edge Microgateway zwróci kod stanu 504. (Dodane v2.4.x)

atrybuty nagłówków

Te ustawienia określają sposób traktowania niektórych nagłówków HTTP.

  • x-forwarded-for: (domyślnie: true) ustaw wartość false, aby zapobiec x-forwarded-for nagłówki, które mają być przekazywane do miejsca docelowego. Pamiętaj, że jeśli 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 (fałsz), aby zapobiec nagłówki x-forwarded-host, które mają zostać przekazane do miejsca docelowego.
  • x-request-id: (domyślnie: true) ustaw na false, by zapobiec x-request-id, które mają być przekazywane do miejsca docelowego.
  • x-response-time: (domyślnie: true) ustaw wartość false (fałsz), aby zapobiec. nagłówki x-response-time, które mają zostać przekazane do miejsca docelowego.
  • via: (domyślnie: true) ustaw wartość false, by zapobiec wykorzystywaniu nagłówków trafiła do celu.

atrybuty OAuth

Te ustawienia konfiguruje sposób wymuszania uwierzytelniania klienta przez Edge Microgateway.

  • allowNoAuthorization: (domyślnie: false), jeśli ma wartość prawda, wywołania interfejsu API są mogą przechodzić przez Edge Microgateway bez żadnego nagłówka autoryzacji. Ustaw na false, aby wymagać nagłówka autoryzacji (domyślnie).
  • allowInvalidAuthorization: (domyślnie: false), jeśli ma wartość prawda, wywołania interfejsu API są może zostać przekazana, jeśli token przekazany w nagłówku autoryzacji jest nieprawidłowy lub stracił ważność. Ustaw na false, aby wymagać prawidłowych tokenów (domyślnie).
  • authorization-header: (domyślnie: Authorization: Bearer) nagłówek używany do wyślij token dostępu do Edge Microgateway. Możesz zmienić domyślną wartość wtedy, gdy element docelowy musi używać nagłówka autoryzacji w innym celu.
  • api-key-header: (domyślnie: x-api-key) nazwa nagłówka lub zapytania. służący do przekazywania klucza interfejsu API do Edge Microgateway. Zapoznaj się też z artykułem Używanie klucza interfejsu API.
  • keepAuthHeader: (domyślnie: false), jeśli ma wartość prawda, nagłówek autoryzacji. wysłane w żądaniu jest przekazywane do celu (jest zachowywane).
  • allowOAuthOnly – jeśli ma wartość true (prawda), każdy interfejs API musi zawierać parametr Nagłówek autoryzacji z tokenem dostępu okaziciela. Zezwala tylko na zabezpieczenie OAuth (z zachowaniem zgodności wstecznej). (Dodano 4.2.x)
  • allowAPIKeyOnly – jeśli ma wartość true (prawda), każdy interfejs API musi przesyłać nagłówek x-api-key (lub lokalizacja niestandardowa) z kluczem interfejsu API.Allows. musisz zezwolić tylko na model zabezpieczeń klucza interfejsu API (zachowując zgodność wsteczną). (Dodano 4.2.x)

Wtyczki atrybuty

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

Filtrowanie serwerów proxy

Możesz filtrować serwery proxy rozpoznające mikrobramę, które będzie przetwarzać instancja Edge Microgateway. Po uruchomieniu Edge Microgateway pobierze wszystkie serwery proxy rozpoznające bramę organizacji, z którą jest powiązana. Użyj tej konfiguracji, aby ograniczyć serwery proxy microgateway. Na przykład ta konfiguracja ogranicza serwery proxy w mikrobramie przetworzy trzy zmiany: 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 zapobiega wyświetlaniu informacji o ścieżce żądania w Edge Analytics. Dodaj do konfiguracji mikrobramy poniższy fragment, aby zamaskować identyfikator URI żądania lub ścieżki żądania. Pamiętaj, że identyfikator URI składa się z nazwy hosta i ścieżek żądania.

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

Konfigurowanie Edge Microgateway za firmowa zapora sieciowa

Obsługiwana wersja 4.2.x

Jeśli Edge Microgateway jest zainstalowany za zaporą sieciową, brama może nie być w stanie komunikują się z Apigee Edge. W takim przypadku masz do wyboru 2 opcje:

Opcja 1.

Pierwszą opcją jest ustawienie opcji Edgemicro: proxy_tunnel na true (prawda) w kluczu plik konfiguracyjny microgateway:

edge_config:

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

Gdy parametr proxy_tunnel ma wartość true, Edge Mikrogateway używa metody HTTP CONNECT do tunelowania żądań HTTP przez pojedyncze połączenie TCP. (To samo dotyczy sytuacji, gdy zmienne środowiskowe do konfigurowania serwera proxy są włączone).

Opcja 2:

Drugą opcją jest określenie serwera proxy i ustawienie serwera proxy_tunnel na false w polu . Na przykład:

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

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

Możesz ustawić NO_PROXY jako listę domen rozdzielaną przecinkami do którego Edge Microgateway nie powinien stosować. Na przykład:

export NO_PROXY='localhost,localhost:8080'

Ustaw HTTP_PROXY i HTTPS_PROXY jako HTTP Punkt końcowy serwera proxy Edge Microgateway może wysyłać do niego komunikaty. Na przykład:

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

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

Więcej informacji o tych zmiennych znajdziesz tutaj:

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.

Używanie symboli wieloznacznych w przypadku użycia w usłudze Microgateway serwery proxy

Możesz użyć jednego lub więcej znaków „*” symbole wieloznaczne w ścieżce bazowej argumentu serwer proxy edgemicro_* (zgodny z Microgateway). Na przykład ścieżka podstawowa /team/*/members umożliwia klientom wywołaj https://[host]/team/blue/members i https://[host]/team/green/members bez musisz tworzyć nowe serwery proxy interfejsów API z myślą o obsłudze nowych zespołów. Notatka że /**/ nie jest obsługiwany.

Ważne: Apigee NIE obsługuje użycia symbolu wieloznacznego „*” jako pierwszego elementu ścieżki podstawowej. Na przykład NIE to obsługiwane: /*/.


Debugowanie Rozwiązanie problemu

Łączenie z debugerem

Edge Microgateway możesz uruchomić za pomocą debugera, np. node-inspector. Przydaje się to w przypadku rozwiązywania problemów i debugowania wtyczek niestandardowych.

  1. Uruchom ponownie Edge Microgateway w trybie debugowania. Aby to zrobić, dodaj DEBUG=* do na początku polecenia startowego. 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 ustaw go tak, aby nasłuchiwał na numerze portu w trakcie procesu debugowania.
  3. Możesz teraz przeglądać kod Edge Microgateway, ustawiać punkty przerwania, obserwować wyrażenia i tak dalej.

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

Sprawdzam pliki dziennika

W razie problemów sprawdź pliki dziennika pod kątem szczegółów wykonania i błędów i informacjami o nich. Więcej informacji znajdziesz w artykule Zarządzanie plikami dziennika.

Korzystanie z zabezpieczeń klucza interfejsu API

Klucze interfejsu API zapewniają prosty mechanizm uwierzytelniania klientów wysyłających żądania do Edge Mikrobrama. 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 API są wymieniane na tokeny okaziciela, które są przechowywane w pamięci podręcznej. Aby wyłączyć buforowanie, ustaw nagłówek Cache-Control: no-cache w żądaniach przychodzących do Edge Mikrobrama.

Korzystanie z zabezpieczeń tokenów OAuth2

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

Korzystanie z klucz interfejsu API

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

Konfigurowanie nazwy klucza interfejsu API

Domyślnie x-api-key jest nazwą nagłówka lub zapytania klucza interfejsu API . Możesz zmienić to ustawienie domyślne w pliku konfiguracji, zgodnie z opisem w sekcji Wprowadzanie zmian w konfiguracji. W przypadku Przykład: aby zmienić nazwę na apiKey:

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