Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ograniczanie przepustowości to proces, który sam inicjujesz, aby ograniczyć liczbę współbieżnych wywołań do usługi Azure, aby zapobiec nadmiernemu użyciu zasobów. Usługa Azure Key Vault (AKV) jest przeznaczona do obsługi dużej liczby żądań. Jeśli wystąpi przytłaczająca liczba żądań, ograniczanie żądań klienta pomaga zachować optymalną wydajność i niezawodność usługi AKV.
Limity przepustowości różnią się w zależności od scenariusza. Jeśli na przykład wykonujesz dużą liczbę zapisów, możliwość ograniczania przepustowości jest większa niż w przypadku wykonywania tylko odczytów.
Jak usługa Key Vault obsługuje swoje limity?
Limity usług w usłudze Key Vault uniemożliwiają nieprawidłowe użycie zasobów i zapewniają jakość usług dla wszystkich klientów usługi Key Vault. Po przekroczeniu progu usługi usługa Key Vault ogranicza wszelkie dalsze żądania od tego klienta, zwraca kod stanu HTTP 429 (zbyt wiele żądań) i żądanie kończy się niepowodzeniem. Żądania, które zwracają kod błędu 429, nie są wliczane do limitów przepustowości śledzonych przez usługę Key Vault.
Usługa Key Vault została pierwotnie zaprojektowana do przechowywania i pobierania tajemnic w czasie wdrażania. W miarę rozwoju technologii usługa Key Vault jest coraz częściej używana w czasie wykonywania do przechowywania i pobierania wpisów tajnych. Wiele aplikacji i usług używa usługi Key Vault podobnej do bazy danych. Jednak bieżące limity usług nie są przeznaczone do obsługi takich scenariuszy o wysokiej przepływności.
Usługa Key Vault została pierwotnie utworzona z limitami określonymi w limitach usługi Azure Key Vault. Aby zmaksymalizować współczynniki przepływności usługi Key Vault, poniżej przedstawiono zalecane wskazówki/najlepsze rozwiązania dotyczące maksymalizacji przepływności:
- Upewnij się, że ograniczanie przepustowości jest spełnione. Użytkownik musi przestrzegać zasad wykładniczego wycofywania się dla kodów 429 i zapewnić, że ponawianie prób odbywa się zgodnie ze wskazówkami.
- Podziel ruch usługi Key Vault między wiele magazynów i różnych regionów. Użyj oddzielnego magazynu dla każdej domeny zabezpieczeń/dostępności. Jeśli masz pięć aplikacji, z których każda znajduje się w dwóch regionach, zalecamy 10 magazynów zawierających wpisy tajne unikatowe dla aplikacji i regionu. Limit obejmujący całą subskrypcję dla wszystkich typów transakcji wynosi pięć razy więcej niż limit pojedynczego magazynu kluczy. Na przykład transakcje HSM na subskrypcję są ograniczone do 5000 transakcji w ciągu 10 sekund na subskrypcję. Rozważ buforowanie wpisu tajnego w swojej usłudze lub aplikacji, aby zmniejszyć liczbę żądań na sekundę do magazynu kluczy i/lub radzić sobie z nagłymi wzrostami ruchu. Możesz również podzielić ruch między różne regiony, aby zminimalizować opóźnienia i użyć innej subskrypcji/skrytki. Nie wysyłaj więcej niż limit subskrypcji do usługi Key Vault w jednym regionie świadczenia usługi Azure.
- Buforuj wpisy tajne pobierane z usługi Azure Key Vault w pamięci i używaj ich ponownie z pamięci, jeśli to możliwe. Ponownie odczyt z usługi Azure Key Vault tylko wtedy, gdy buforowana kopia przestanie działać (na przykład dlatego, że została obracana w źródle).
- Usługa Key Vault została zaprojektowana pod kątem własnych wpisów tajnych usług. Jeśli przechowujesz tajemnice klientów (szczególnie w scenariuszach przechowywania kluczy o dużej przepustowości), rozważ umieszczenie kluczy w zaszyfrowanej bazie danych lub zaszyfrowanym koncie magazynu i przechowywanie tylko klucza podstawowego w usłudze Azure Key Vault.
- W przypadku operacji klucza publicznego, takich jak szyfrowanie, zawijanie i weryfikacja, wykonaj te operacje lokalnie bez uzyskiwania dostępu do usługi Key Vault, buforując materiał klucza publicznego. Takie podejście nie tylko zmniejsza ryzyko ograniczania przepustowości, ale także zwiększa niezawodność aplikacji.
- Jeśli używasz usługi Key Vault do przechowywania poświadczeń dla usługi, sprawdź, czy ta usługa obsługuje uwierzytelnianie firmy Microsoft Entra w celu bezpośredniego uwierzytelniania. Zmniejsza to obciążenie usługi Key Vault, zwiększa niezawodność i upraszcza kod, ponieważ usługa Key Vault może teraz używać tokenu Microsoft Entra. Wiele usług korzysta teraz z uwierzytelniania Entra firmy Microsoft. Zobacz bieżącą listę w temacie Usługi, które obsługują tożsamości zarządzane dla zasobów platformy Azure.
- Rozważ rozłożenie obciążenia/wdrożenia na dłuższy okres czasu, aby pozostać w granicach obowiązujących limitów RPS.
- Jeśli aplikacja składa się z wielu węzłów, które muszą odczytać jeden lub więcej tych samych sekretów, należy rozważyć użycie wzorca rozproszenia, w którym jedna jednostka odczytuje sekret z Azure Key Vault i rozdziela to na wszystkie węzły. Buforuj pobrane wpisy tajne tylko w pamięci.
Jak ograniczyć przepustowość aplikacji w odpowiedzi na limity usługi
Poniżej przedstawiono najlepsze rozwiązania , które należy zaimplementować, gdy usługa jest ograniczona:
- Zmniejsz liczbę operacji na żądanie.
- Zmniejsz częstotliwość żądań.
- Unikaj natychmiastowych ponownych prób.
- Wszystkie żądania wliczają się do limitów użycia.
Podczas implementowania obsługi błędów aplikacji użyj kodu błędu HTTP 429, aby wykryć potrzebę ograniczania przepustowości po stronie klienta. Jeśli żądanie ponownie zakończy się niepowodzeniem z kodem błędu HTTP 429, nadal występuje limit usługi platformy Azure. Kontynuuj korzystanie z zalecanej metody ograniczania przepustowości po stronie klienta, ponów próbę żądania, dopóki nie powiedzie się.
Oto kod implementujący wycofywanie wykładnicze:
SecretClientOptions options = new SecretClientOptions()
{
Retry =
{
Delay= TimeSpan.FromSeconds(2),
MaxDelay = TimeSpan.FromSeconds(16),
MaxRetries = 5,
Mode = RetryMode.Exponential
}
};
var client = new SecretClient(new Uri("https://keyVaultName.vault.azure.net"), new DefaultAzureCredential(),options);
//Retrieve Secret
secret = client.GetSecret(secretName);
Użycie tego kodu w aplikacji języka C# klienta jest proste.
Zalecana metoda regulacji po stronie klienta
W przypadku kodu błędu HTTP 429 rozpocznij ograniczanie przepustowości klienta z użyciem odczekiwania wykładniczego:
- Poczekaj 1 sekundę i ponów żądanie
- Jeśli ograniczenie nadal występuje, poczekaj 2 sekundy i spróbuj ponownie wysłać żądanie.
- Jeśli nadal występuje ograniczenie przepustowości, poczekaj 4 sekundy, a następnie ponownie wyślij żądanie
- Jeśli przepustowość jest nadal ograniczona, poczekaj 8 sekund i ponów żądanie
- Jeśli przepustowość jest nadal ograniczona, poczekaj 16 sekund i ponów żądanie
W tym momencie nie powinny już być zwracane kody odpowiedzi HTTP 429.
Zobacz także
Aby uzyskać dokładną orientację ograniczania przepustowości w chmurze firmy Microsoft, zobacz Wzorzec ograniczania przepustowości.