Praca z mapami klucz-wartość

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

Może się zdarzyć, że zechcesz przechowywać dane do pobrania w czasie działania – dane, które nie tracą ważności który nie powinien być na stałe zakodowany w logice serwera proxy interfejsu API. Do tego celu idealnie nadają się mapy wartości klucza (KVM). O KVM to niestandardowy zbiór par klucz/wartość, który jest zaszyfrowany lub niezaszyfrowany. Poniżej przedstawiamy dwa przykłady:

Informacje o innych typach trwałości znajdziesz w artykule Dodawanie buforowania i trwałości.

Scenariusze maszyn wirtualnych

Przydatne mogą być te rozwiązania:

  • Masz serwer proxy interfejsu API, który musi wywoływać 1 docelowy (lub objaśnienia usługi) w teście a inny docelowy adres URL w środowisku produkcyjnym. Zamiast kodowania adresów URL na stałe w z serwera proxy, może on określić środowisko, w którym jest, i wykonać powiązany klucz zasadą operacji mapowania wartości i pobierz prawidłowy docelowy URL z jednej z maszyn wirtualnych (KVM) Utworzono. Później, jeśli zmieni się co najmniej jeden z Twoich celów, możesz zaktualizować Kubernetes w celu nowe adresy URL. Serwer proxy pobierze nowe wartości i nie jest wymagane ponowne wdrożenie serwera proxy.
  • chcesz przechowywać dane logowania, klucze prywatne lub tokeny, takie jak tokeny dla zewnętrznych usług, danych logowania wymaganych do generowania tokenów OAuth lub kluczy prywatnych używane w wywołaniach Javy lub JavaScripcie do szyfrowania lub podpisywania tokena internetowego JSON (JWT). Zamiast przekazywania danych uwierzytelniających, kluczy czy tokenów w żądaniu albo zakodowanie ich na stałe w ramach logiki serwera proxy. można zapisać je w kluczu KVM (zawsze zaszyfrowanego) i dynamicznie pobierać je w wywołaniach które wymagają ich stosowania.

Poznasz inne sytuacje, w których warto przechowywać pary ciągów znaków klucz-wartość. W maszyn wirtualnych warto używać, gdy:

  • Określone miejsca w kodzie wymagają różnych wartości w czasie działania.
  • Dane wrażliwe należy przekazywać bez kodowania.
  • Warto przechowywać wartości, które nie tracą ważności, tak jak mogłaby to robić pamięć podręczna.

Wirtualne maszyny wirtualne mają zakres

Zakres oznacza „tam, gdzie dostępna jest maszyna wirtualna”. Instancje KVM można tworzyć w tych zakresach: organization, environment i apiproxy.

Jeśli na przykład tylko jeden serwer proxy interfejsu API wymaga danych w maszynie wirtualnej, możesz ją utworzyć w Zakres apiproxy, w którym tylko serwer proxy interfejsu API ma dostęp do danych.

Możesz też chcieć, aby wszystkie serwery proxy interfejsu API w środowisku testowym miały dostęp do mapy wartości klucza w W takim przypadku utworzysz mapę wartości klucza w zakresie środowiskowym. Serwery proxy wdrożone w „prod” środowisko nie ma dostępu do maszyn KVM w „teście” w zakresie środowiska. Jeśli potrzebujesz tej samej KVM aby były dostępne w środowisku produkcyjnym, utwórz równoległą maszynę wirtualną o zakresie na „prod” dla środowiska.

Jeśli chcesz, aby wszystkie serwery proxy we wszystkich środowiskach miały dostęp do tej samej maszyny wirtualnej, utwórz ją w Zakres: organization.

Informacje o zaszyfrowanych maszynach wirtualnych

Zaszyfrowane maszyny wirtualne są szyfrowane kluczem szyfrowania AES-128 wygenerowanego przez Apigee. Klucz używany do jest przechowywane w zakresie KVM. Na przykład w organizacji wszystkie zaszyfrowane maszyny wirtualne utworzone w zakresie środowiska są tworzone z użyciem tego samego .

Edge obsługuje wyświetlanie zaszyfrowanych wartości w następujący sposób. Więcej informacji o tworzeniu zaszyfrowanych maszyn wirtualnych znajdziesz w artykule Zarządzanie maszynami wirtualnymi i korzystanie z nich.

Interfejs Edge

Zaszyfrowana wartość klucza mapuje wartości wyświetlane w interfejsie użytkownika zamaskowane gwiazdkami (*****). Dla: przykład:

interfejs API zarządzania Google Analytics

W interfejsie zarządzania API zaszyfrowane wartości są zwracane zamaskowane. Poniżej znajduje się przykład zarządzania Odpowiedź interfejsu API na wywołanie metody „Get Encrypted KVM”:

{
  "encrypted": true,
  "entry": [
    {
      "name": "Key1",
      "value": "*****"
    },
    {
      "name": "Key2",
      "value": "*****"
    }
  ],
  "name": "secretMap"
}

Śledzenie i debugowanie

Jeśli używasz zasad dotyczących operacji na mapie klucz-wartość aby pobrać zaszyfrowane wartości KVM, musisz podać nazwę zmiennej do przechowywania . Aby uzyskać zaszyfrowaną wartość, musisz dodać „private.” przedrostek nazwy zmiennej, przez co zapobiega pojawianiu się kluczy/wartości KVM w sesjach śledzenia i debugowania.

Limity

W organizacjach z Rdzeń Włączone usługi trwałości (CPS):

  • W nazwie lub identyfikatorze KVM rozróżniana jest wielkość liter.
  • Rozmiar klucza nie może przekraczać 2 KB.
  • Rozmiar wartości jest ograniczony do 10 KB.

W przypadku Apigee Edge dla chmury prywatnej żadna KVM nie powinna przekraczać 15 MB (jest to łączny rozmiar kluczy i wartości). Jeśli przekroczysz ten limit, Apigee Edge dla chmury prywatnej zwróci błąd. Aby określić rozmiar posiadanych maszyn KVM, możesz użyć: użyj polecenia nodetool cfstats.

Większe maszyny KVM mogą spowodować pogorszenie wydajności. Dlatego należy dzielić duże ilości zasobów, monolityczne maszyny wirtualne na mniejsze w celu zwiększenia wydajności.

Zarządzanie maszynami KVM i korzystanie z nich

Istnieje wiele sposobów tworzenia i używania kluczy KVM i zarządzania nimi. W tej sekcji opisujemy różne zarówno szyfrowanych, jak i niezaszyfrowanych maszyn wirtualnych.

Tworzenie i aktualizowanie maszyn KVM

Istnieją te sposoby tworzenia i aktualizowania obiektów KVM:

  • Zasady dotyczące operacji na mapie klucz-wartość (bez szyfrowania)

    Aby utworzyć i aktualizować środowisko wykonawcze KVM przez serwery proxy interfejsu API, użyj Zasady dotyczące operacji na mapie klucz-wartość (W zasadach podajesz nazwę KVM w atrybut mapIdentifier w elemencie nadrzędnym element.)

    Element <InitialEntries> pozwala utworzyć i wypełnić bazowy zestaw wpisów w nowej KVM, gdy tylko zapiszesz zasadę w interfejsie lub wdrożysz Serwer proxy interfejsu API (jeśli został utworzony w trybie offline). Jeśli wartości ulegną zmianie, dotychczasowy są zastępowane. Wszystkie nowe klucze/wartości są dodawane do istniejącej KVM obok z istniejącymi parami klucz-wartość.

    Element <Put> tworzy nową maszynę wirtualną, jeśli tak nie jest. już istnieje i tworzy klucz z co najmniej jedną wartością. Jeśli KVM jest już , pary klucz-wartość zostały dodane (lub zaktualizowane, jeśli klucz już istnieje). Za pomocą wiele elementów <Put> w zasadzie KVM.

  • Interfejs API zarządzania Google Analytics

    Interfejs zarządzania API jest przeznaczony do pracy z maszynami wirtualnymi dla administratorów, a nie w czasie działania. w serwerach proxy interfejsu API. Możesz na przykład mieć wewnętrzny skrypt wykorzystujący funkcję zarządzania API do usuwania i odtwarzania KVM w środowisku testowym lub możesz zresetować wartość klucza w KVM, by wysłać ją do wszystkich serwerów proxy. (Do manipulowania zasobami KVM w czasie działania używaj metody Zasady dotyczące operacji na mapie klucz-wartość na serwerach proxy).

    Interfejs API do zarządzania mapami kluczy i wartości umożliwia tworzenie, aktualizowanie i usuwanie zaszyfrowanych maszyn wirtualnych i kluczy/wartości w wszystkie zakresy (organizacja, środowisko i apiproxy).

    Aby utworzyć szyfrowaną maszynę wirtualną za pomocą interfejsu API zarządzania, dodaj "encrypted" : "true" do ładunku JSON. Kamery KVM możesz szyfrować tylko podczas ich tworzenia . Nie możesz zaszyfrować istniejącej maszyny wirtualnej.

  • Interfejs zarządzania

    W interfejsie zarządzania brzegowego można tworzyć i aktualizować KVM ograniczonych do środowiska, czyli jedynego zakresu maszyn wirtualnych, widoczne w interfejsie. Interfejs zarządzania to dobry sposób na ręczne administrowanie danymi KVM dla interfejsu API. serwerów proxy w czasie działania. Zobacz Tworzenie i edytowanie map klucz-wartość środowiska .

Pobieram KVM

Szyfrowanie i niezaszyfrowane wartości kluczy są pobierane w ten sam sposób, z jedną drobną zmianą podczas pobierania za pomocą zasad dotyczących operacji na mapie klucz-wartość.

  • Zasada: użyj elementu <Get> w nagłówku Zasady dotyczące operacji na mapie klucz-wartość aby pobrać zaszyfrowane i niezaszyfrowane maszyny wirtualne. Jedyną drobną różnicą jest to, pobieranie zaszyfrowanych wartości z zasadą, gdzie trzeba dodać parametr „private.” do nazwy zmiennej, która będzie zawierać pobraną wartość, zgodnie z opisem w sekcji Pobieranie sekcji operacji od tematu referencyjnego. Ten prefiks ukrywa wartość przed śledzeniem i debugowaniem podczas debugowania serwerów proxy interfejsu API.
  • Interfejs API zarządzania: do celów administracyjnych można używać interfejsu API Tworzenie i edytowanie map klucz-wartość środowiska aby uzyskać klucze kluczowe i pary klucz-wartość. Jeśli chcesz na przykład aby utworzyć kopię zapasową maszyn KVM, pobierając i przechowując definicje JSON, użyj interfejsu API zarządzania. Uwaga: jednak te zaszyfrowane wartości są wyświetlane w odpowiedzi interfejsu API jako *****.
  • Interfejs zarządzania: maszyny KVM ograniczone do środowiska możesz wyświetlić w sekcji zarządzania. przez przejście do sekcji Interfejsy API > Konfiguracja środowiska > Mapy klucz-wartość (Klasyczna Edge) lub Administracja > Środowiska > Mapy klucz-wartość (New Edge).

Przykład KVM

Przykład użycia KVM do wypełniania wartości w adresie URL znajdziesz tutaj: https://community.apigee.com/questions/32727/templatize-target-url-with-kvm-by-environment.html.