Automatyzacja w chmurze oparta na zdarzeniach

Azure Event Grid
Azure Functions
Azure Logic Apps
Azure Monitor
Azure Cosmos DB

Automatyzacja przepływów pracy i powtarzających się zadań w chmurze przy użyciu technologii bezserwerowych może znacznie zwiększyć produktywność zespołu DevOps organizacji. Model bezserwerowy najlepiej nadaje się do scenariuszy automatyzacji pasujących do podejścia opartego na zdarzeniach.

Architektura

Diagram that demonstrates two serverless cloud automation scenarios.

Scenariusze

W tym artykule przedstawiono dwa kluczowe scenariusze automatyzacji chmury:

  1. Tagowanie centrum kosztów: ta implementacja śledzi centra kosztów każdego zasobu platformy Azure. Usługa Azure Policy taguje wszystkie nowe zasoby w grupie z domyślnym identyfikatorem centrum kosztów. Usługa Azure Event Grid monitoruje zdarzenia tworzenia zasobów, a następnie wywołuje funkcję platformy Azure. Funkcja współdziała z identyfikatorem Microsoft Entra ID i weryfikuje identyfikator centrum kosztów dla nowego zasobu. W przeciwnym razie aktualizuje tag i wysyła wiadomość e-mail do właściciela zasobu. Zapytania REST dotyczące identyfikatora Entra firmy Microsoft są wyśmiewane dla uproszczenia. Identyfikator entra firmy Microsoft można również zintegrować przy użyciu modułu Microsoft Graph PowerShell lub biblioteki Microsoft Authentication Library (MSAL) dla języka Python.

  2. Odpowiedź ograniczania przepustowości: w tym przykładzie jest monitorowana baza danych usługi Azure Cosmos DB pod kątem ograniczania przepustowości. Alerty usługi Azure Monitor są wyzwalane, gdy żądania dostępu do danych do usługi Azure Cosmos DB przekraczają pojemność w jednostkach żądań (lub jednostkach RU). Grupa akcji usługi Azure Monitor jest skonfigurowana do wywoływania funkcji automatyzacji w odpowiedzi na te alerty. Funkcja skaluje jednostki RU do wyższej wartości, zwiększając pojemność i z kolei zatrzymując alerty.

Uwaga

Te rozwiązania nie są jedynym rozwiązaniem do wykonania tych zadań i są pokazane jako ilustrujące, jak technologie bezserwerowe mogą reagować na sygnały środowiskowe (zdarzenia) i wpływać na zmiany w środowisku. Gdzie jest to praktyczne, należy używać rozwiązań natywnych dla platformy w przypadku rozwiązań niestandardowych. Na przykład usługa Azure Cosmos DB natywnie obsługuje przepływność autoskalowania jako natywną alternatywę dla scenariusza odpowiedzi ograniczanie przepustowości.

GitHub logo Implementacja referencyjna scenariusza 1 jest dostępna w witrynie GitHub.

Funkcje w tych scenariuszach automatyzacji chmury bezserwerowej są często zapisywane w programach PowerShell i Python, dwóch z najczęściej używanych języków skryptów w automatyzacji systemu. Są one wdrażane przy użyciu narzędzi Azure Functions Core Tools w interfejsie wiersza polecenia platformy Azure. Alternatywnie do wdrażania usługi Azure Functions i zarządzania nią służy polecenie cmdlet programu PowerShell Az.Functions.

Przepływ pracy

Scenariusze automatyzacji oparte na zdarzeniach najlepiej zaimplementować przy użyciu usługi Azure Functions. Są one zgodne z następującymi typowymi wzorcami:

  • Reagowanie na zdarzenia dotyczące zasobów. Są to odpowiedzi na zdarzenia, takie jak zasób platformy Azure lub grupa zasobów, które są tworzone, usuwane, zmieniane itd. Ten wzorzec używa usługi Event Grid do wyzwalania funkcji dla takich zdarzeń. Scenariusz tagowania centrum kosztów jest przykładem tego wzorca. Inne typowe scenariusze to:

    • udzielanie zespołom DevOps dostępu do nowo utworzonych grup zasobów,
    • wysyłanie powiadomienia do metodyki DevOps po usunięciu zasobu i
    • reagowanie na zdarzenia konserwacji dla zasobów, takich jak maszyny wirtualne platformy Azure.
  • Zaplanowane zadania. Są to zazwyczaj zadania konserwacji wykonywane przy użyciu funkcji wyzwalanych przez czasomierz. Przykłady tego wzorca to:

    • zatrzymywanie zasobu w nocy i rozpoczęcie od rana,
    • odczytywanie zawartości usługi Blob Storage w regularnych odstępach czasu i konwertowanie na dokument usługi Azure Cosmos DB,
    • okresowo skanowane pod kątem zasobów, które nie są już używane, oraz
    • automatyczne kopie zapasowe.
  • Przetwarzanie alertów platformy Azure. Ten wzorzec używa łatwości integracji alertów i grup akcji usługi Azure Monitor z usługą Azure Functions. Funkcja zwykle wykonuje działania naprawcze w odpowiedzi na metryki, analizę dzienników i alerty pochodzące z aplikacji i infrastruktury. Scenariusz odpowiedzi ograniczania przepustowości jest przykładem tego wzorca. Inne typowe scenariusze to:

    • obcinanie tabeli, gdy usługa SQL Database osiągnie maksymalny rozmiar,
    • ponowne uruchamianie usługi na maszynie wirtualnej, gdy jest ona błędnie zatrzymana, i
    • wysyłanie powiadomień, jeśli funkcja kończy się niepowodzeniem.
  • Orkiestruj z systemami zewnętrznymi. Ten wzorzec umożliwia integrację z systemami zewnętrznymi przy użyciu usługi Logic Apps do organizowania przepływu pracy. Łączniki usługi Logic Apps można łatwo zintegrować z kilkoma usługami innych firm, a także z usługi firmy Microsoft, takimi jak Platforma Microsoft 365. Usługi Azure Functions można używać do rzeczywistej automatyzacji. W scenariuszu tagowania centrum kosztów pokazano ten wzorzec. Inne typowe scenariusze to:

    • monitorowanie procesów IT, takich jak żądania zmian lub zatwierdzenia, oraz
    • wysyłanie powiadomień e-mail po zakończeniu zadania automatyzacji.
  • Uwidaczniaj jako element webhook lub interfejs API. Zadania automatyzacji korzystające z usługi Azure Functions można zintegrować z aplikacjami innych firm, a nawet narzędziami wiersza polecenia, uwidaczniając funkcję jako element webhook/interfejs API przy użyciu wyzwalacza HTTP. Wiele metod uwierzytelniania jest dostępnych zarówno w programie PowerShell, jak i języku Python w celu zabezpieczenia dostępu zewnętrznego do funkcji. Automatyzacja jest wykonywana w odpowiedzi na zdarzenia zewnętrzne specyficzne dla aplikacji, na przykład integrację z usługą Power Apps lub GitHub. Typowe scenariusze obejmują:

    • wyzwalanie automatyzacji dla usługi, która kończy się niepowodzeniem, oraz
    • dołączanie użytkowników do zasobów organizacji.
  • Utwórz interfejs ChatOps. Ten wzorzec umożliwia klientom tworzenie interfejsu operacyjnego opartego na czacie oraz uruchamianie funkcji programistycznych i operacyjnych oraz poleceń zgodnie z ludzką współpracą. Można to zintegrować z usługą Azure Bot Framework i używać poleceń usługi Microsoft Teams lub Slack do wdrażania, monitorowania, typowych pytań itd. Interfejs ChatOps tworzy system czasu rzeczywistego do zarządzania zdarzeniami produkcyjnymi, z każdym krokiem udokumentowanym automatycznie podczas czatu. Przeczytaj artykuł How ChatOps can help you DevOps better for more information (Jak metodyka ChatOps może pomóc metodyce DevOps lepiej uzyskać więcej informacji).

  • Automatyzacja hybrydowa. Ten wzorzec używa Połączenie hybrydowej usługi aplikacja systemu Azure Service w celu zainstalowania składnika oprogramowania na komputerze lokalnym. Ten składnik umożliwia bezpieczny dostęp do zasobów na tym komputerze. Możliwość zarządzania środowiskami hybrydowymi jest obecnie dostępna w systemach opartych na systemie Windows przy użyciu funkcji programu PowerShell. Typowe scenariusze obejmują:

    • zarządzanie maszynami lokalnymi i
    • zarządzanie innymi systemami za zaporą (na przykład lokalnym programem SQL Server) za pośrednictwem serwera przesiadkowego.

Elementy

Niniejsza architektura zawiera następujące składniki:

  • Usługa Azure Functions. Usługa Azure Functions zapewnia oparte na zdarzeniach możliwości obliczeniowe bezserwerowe w tej architekturze. Funkcja wykonuje zadania automatyzacji po wyzwoleniu przez zdarzenia lub alerty. W dwóch scenariuszach funkcja jest wywoływana z żądaniem HTTP. Złożoność kodu powinna być zminimalizowana przez opracowanie funkcji bezstanowej i idempotentnej.

    Wiele wykonań funkcji idempotentnej tworzy te same wyniki. Aby zachować idempotentność, skalowanie funkcji w scenariuszu ograniczania jest zachowywane uproszczone. W rzeczywistych automatyzacji należy odpowiednio skalować w górę lub w dół. Przeczytaj artykuł Optimize the performance and reliability of Azure Functions (Optymalizowanie wydajności i niezawodności usługi Azure Functions ), aby uzyskać najlepsze rozwiązania dotyczące pisania funkcji.

  • Usługa Azure Logic Apps. Usługa Logic Apps może służyć do wykonywania prostszych zadań, łatwego implementowania przy użyciu wbudowanych łączników. Te zadania mogą obejmować powiadomienia e-mail po integrację z zewnętrznymi aplikacjami do zarządzania. Aby dowiedzieć się, jak używać usługi Logic Apps z aplikacjami innych firm, przeczytaj podstawową integrację przedsiębiorstwa na platformie Azure.

    Usługa Logic Apps nie udostępnia żadnego kodu ani projektanta wizualnego niskiego poziomu kodu i może być używana samodzielnie w niektórych scenariuszach automatyzacji. Przeczytaj to porównanie usług Azure Functions i Logic Apps , aby zobaczyć, która usługa może pasować do danego scenariusza.

  • Event Grid. Usługa Event Grid ma wbudowaną obsługę zdarzeń z innych usług platformy Azure, a także zdarzeń niestandardowych (nazywanych również tematami niestandardowymi). Zdarzenia operacyjne, takie jak tworzenie zasobów, można łatwo propagować do funkcji automatyzacji przy użyciu wbudowanego mechanizmu usługi Event Grid.

    Usługa Event Grid upraszcza automatyzację opartą na zdarzeniach za pomocą modelu publikowania-subskrybowania, umożliwiając niezawodną automatyzację zdarzeń dostarczanych za pośrednictwem protokołu HTTPS.

  • Azure Monitor. Alerty usługi Azure Monitor mogą monitorować krytyczne warunki i podejmować działania naprawcze przy użyciu grup akcji usługi Azure Monitor. Te grupy akcji są łatwo zintegrowane z usługą Azure Functions. Jest to przydatne do obserwowannia i naprawiania wszelkich warunków błędów w infrastrukturze, takich jak ograniczanie przepustowości bazy danych.

  • Akcja automatyzacji. Ten szeroki blok reprezentuje inne usługi, z którymi funkcja może korzystać, aby zapewnić funkcjonalność automatyzacji. Na przykład identyfikator Entra firmy Microsoft do weryfikacji tagów, jak w pierwszym scenariuszu, lub bazy danych do aprowizacji, jak w drugim scenariuszu.

Kwestie wymagające rozważenia

Te zagadnienia implementują filary struktury Azure Well-Architected Framework, która jest zestawem wytycznych, które mogą służyć do poprawy jakości obciążenia. Aby uzyskać więcej informacji, zobacz Microsoft Azure Well-Architected Framework.

Odporność

Azure Functions

Obsługa limitów czasu HTTP

Aby uniknąć przekroczenia limitu czasu HTTP dla dłuższego zadania automatyzacji, należy w kolejce to zdarzenie w usłudze Service Bus i obsłużyć rzeczywistą automatyzację w innej funkcji. Scenariusz automatyzacji odpowiedzi ograniczania ilustruje ten wzorzec, mimo że rzeczywista aprowizacja jednostek RU usługi Azure Cosmos DB jest szybka.

Diagram that shows reliability in an automation function.

Rozszerzenie Durable Functions, które utrzymuje stan między wywołaniami, stanowi alternatywę dla powyższego podejścia. Rozszerzenie Durable Functions obsługuje tylko określone języki.

Błędy dziennika

Najlepszym rozwiązaniem jest rejestrowanie wszelkich błędów podczas wykonywania zadań automatyzacji. Umożliwia to prawidłowe rozwiązywanie problemów z warunkami błędu. Usługa Azure Functions natywnie obsługuje integrację z aplikacją Szczegółowe informacje jako system telemetrii.

Współbieżność

Sprawdź wymaganie współbieżności funkcji automatyzacji. Współbieżność jest ograniczona przez ustawienie zmiennej maxConcurrentRequests w pliku host.json. To ustawienie ogranicza liczbę współbieżnych wystąpień funkcji uruchomionych w aplikacji funkcji. Ponieważ każde wystąpienie zużywa procesor i pamięć, ta wartość musi być dostosowywana do operacji intensywnie korzystających z procesora CPU. Obniż wartość , maxConcurrentRequests jeśli wywołania funkcji wydają się być zbyt wolne lub nie są w stanie ukończyć. Zobacz sekcję Konfigurowanie zachowań hosta, aby lepiej obsługiwać współbieżność , aby uzyskać więcej szczegółów.

Idempotentność

Upewnij się, że funkcja automatyzacji jest idempotentna. Zarówno usługa Azure Monitor, jak i usługa Event Grid mogą emitować alerty lub zdarzenia, które wskazują postęp, taki jak zdarzenie subskrybowane, zostało rozwiązane, wyzwolone, w toku itp., zasób jest aprowizowany, utworzony pomyślnie itp., a nawet wysyła fałszywe alerty z powodu błędnej konfiguracji. Upewnij się, że funkcja działa tylko na odpowiednich alertach i zdarzeniach i ignoruje wszystkie inne, aby zdarzenia fałszywe lub błędnie skonfigurowane nie powodowały niepożądanych wyników. Aby uzyskać więcej informacji, zobacz Projektowanie usługi Azure Functions pod kątem identycznych danych wejściowych.

Event Grid

Jeśli przepływ pracy korzysta z usługi Event Grid, sprawdź, czy scenariusz może wygenerować dużą liczbę zdarzeń, wystarczy, aby zalogować siatkę. Zobacz Dostarczanie komunikatów usługi Event Grid i ponów próbę , aby zrozumieć, jak obsługuje zdarzenia, gdy dostarczanie nie jest potwierdzane, i odpowiednio zmodyfikuj logikę. Przepływ pracy centrum kosztów nie implementuje dodatkowych kontroli, ponieważ obserwuje tylko zdarzenia tworzenia zasobów w grupie zasobów. Monitorowanie zasobów utworzonych w całej subskrypcji może generować większą liczbę zdarzeń, co wymaga bardziej odpornej obsługi.

Azure Monitor

Jeśli jest generowana wystarczająco duża liczba alertów, a automatyzacja aktualizuje zasoby platformy Azure, limity ograniczania przepustowości usługi Azure Resource Manager mogą zostać osiągnięte. Może to negatywnie wpłynąć na pozostałą część infrastruktury w tej subskrypcji. Unikaj tej sytuacji, ograniczając częstotliwość generowania alertów przez usługę Azure Monitor. Możesz również ograniczyć alerty generowane dla określonego błędu. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją dotyczącą alertów usługi Azure Monitor.

Zabezpieczenia

Zabezpieczenia zapewniają ochronę przed celowymi atakami i nadużyciami cennych danych i systemów. Aby uzyskać więcej informacji, zobacz Omówienie filaru zabezpieczeń.

Kontrolowanie dostępu do funkcji

Ogranicz dostęp do funkcji wyzwalanej przez protokół HTTP, ustawiając poziom autoryzacji. W przypadku uwierzytelniania anonimowego funkcja jest łatwo dostępna za pomocą adresu URL, takiego jak http://<APP_NAME>.azurewebsites.net/api/<FUNCTION_NAME>. Uwierzytelnianie na poziomie funkcji może zaciemniać punkt końcowy HTTP, wymagając kluczy funkcji w adresie URL. Ten poziom jest ustawiany w pliku function.json:

{
  "bindings": [
    {
      "authLevel": "function",
      "type": "httpTrigger",
      "direction": "in",
      "name": "Request",
      "methods": [
        "get",
        "post"
      ]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "Response"
    }
  ]
}

W przypadku środowiska produkcyjnego do zabezpieczenia funkcji mogą być wymagane dodatkowe strategie. W tych scenariuszach funkcje są wykonywane na platformie Azure przez inne usługi platformy Azure i nie będą widoczne dla Internetu. Autoryzacja funkcji jest czasami wystarczająca dla funkcji, do których uzyskuje się dostęp jako webhook.

Rozważ dodanie warstw zabezpieczeń na podstawie uwierzytelniania funkcji, na przykład

  • uwierzytelnianie za pomocą certyfikatów klienta lub
  • Upewnij się, że obiekt wywołujący jest częścią katalogu lub ma dostęp do katalogu, który hostuje funkcję, włączając uwierzytelnianie usługi App Service.

Uwierzytelnianie na poziomie funkcji to jedyna opcja dostępna dla grup akcji usługi Azure Monitor przy użyciu usługi Azure Functions.

Jeśli funkcja musi być wywoływana z aplikacji lub usługi innej firmy, zaleca się zapewnienie dostępu do niej za pomocą warstwy usługi API Management . Ta warstwa powinna wymuszać uwierzytelnianie. Usługa API Management ma warstwę zużycia zintegrowaną z usługą Azure Functions, która umożliwia płacenie tylko wtedy, gdy interfejs API zostanie wykonany. Aby uzyskać więcej informacji, przeczytaj Tworzenie i uwidacznianie funkcji za pomocą interfejsu OpenAPI.

Jeśli usługa wywołująca obsługuje punkty końcowe usługi lub link prywatny, można rozważyć następujące opcje kosztowne:

  • Użyj dedykowanego planu usługi App Service, w którym można zablokować funkcje w sieci wirtualnej, aby ograniczyć dostęp do niego. Nie jest to możliwe w modelu bezserwerowym opartym na użyciu.
  • Użyj planu usługi Azure Functions Premium, który obejmuje dedykowaną sieć wirtualną, która będzie używana przez aplikacje funkcji.

Aby porównać ceny i funkcje między tymi opcjami, przeczytaj temat Skalowanie i hosting usługi Azure Functions.

Kontrolowanie możliwości uzyskiwania dostępu do funkcji

Tożsamości zarządzane dla zasobów platformy Azure, funkcja Firmy Microsoft Entra, upraszcza sposób uwierzytelniania funkcji i uzyskiwania dostępu do innych zasobów i usług platformy Azure. Kod nie musi zarządzać poświadczeniami uwierzytelniania, ponieważ jest zarządzany przez identyfikator Entra firmy Microsoft.

Istnieją dwa typy tożsamości zarządzanych:

  • Tożsamości zarządzane przypisane przez system: są one tworzone jako część zasobu platformy Azure i nie mogą być współużytkowane przez wiele zasobów. Są one usuwane po usunięciu zasobu. Użyj ich w scenariuszach, które obejmują pojedynczy zasób platformy Azure lub które wymagają niezależnych tożsamości. Oba scenariusze używają tożsamości przypisanych przez system, ponieważ aktualizują tylko jeden zasób. Tożsamości zarządzane są wymagane tylko do zaktualizowania innego zasobu. Na przykład funkcja może odczytywać tagi zasobów bez tożsamości zarządzanej. Zapoznaj się z tymi instrukcjami , aby dodać tożsamość przypisaną przez system do funkcji.

  • Tożsamości zarządzane przypisane przez użytkownika: są one tworzone jako autonomiczne zasoby platformy Azure. Mogą one być współużytkowane przez wiele zasobów i muszą zostać jawnie usunięte, gdy nie będą już potrzebne. Przeczytaj te instrukcje dotyczące dodawania tożsamości przypisanej przez użytkownika do funkcji. Użyj tych elementów w scenariuszach, które:

    • Wymaganie dostępu do wielu zasobów, które mogą współużytkować jedną tożsamość lub
    • Potrzebna wstępna autoryzacja w celu zabezpieczenia zasobów podczas aprowizacji lub
    • Mają zasoby, które są często poddawane recyklingu, a uprawnienia muszą być spójne.

Po przypisaniu tożsamości do funkcji platformy Azure przypisz jej rolę przy użyciu kontroli dostępu na podstawie ról (RBAC) platformy Azure, aby uzyskać dostęp do zasobów. Na przykład aby zaktualizować zasób, rola Współautor musi zostać przypisana do tożsamości funkcji.

Optymalizacja kosztów

Optymalizacja kosztów dotyczy sposobów zmniejszenia niepotrzebnych wydatków i poprawy wydajności operacyjnej. Aby uzyskać więcej informacji, zobacz Omówienie filaru optymalizacji kosztów.

Koszty możesz szacować za pomocą kalkulatora cen platformy Azure. Poniżej przedstawiono niektóre zagadnienia dotyczące obniżania kosztów.

Azure Logic Apps

Aplikacje logiki mają model cen płatności zgodnie z rzeczywistym użyciem. Wyzwalacze, akcje i wykonania łącznika są mierzone przy każdym uruchomieniu aplikacji logiki. Wszystkie akcje zakończone pomyślnie i niepomyślnie, w tym wyzwalacze, są uznawane za wykonania.

Aplikacje logiki mają również stały model cen. Jeśli musisz uruchamiać aplikacje logiki komunikujące się z zabezpieczonymi zasobami w sieci wirtualnej platformy Azure, możesz je utworzyć w środowisku usługi integracji (ISE).

Aby uzyskać szczegółowe informacje, zobacz Model cen dla usługi Azure Logic Apps.

W tej architekturze aplikacje logiki są używane w scenariuszu tagowania centrum kosztów do organizowania przepływu pracy.

Wbudowane łączniki służą do nawiązywania połączenia z usługą Azure Functions i wysyłania powiadomień e-mail po zakończeniu zadania automatyzacji. Funkcje są uwidocznione jako element webhook/interfejs API przy użyciu wyzwalacza HTTP. Aplikacje logiki są wyzwalane tylko wtedy, gdy wystąpi żądanie HTTPS. Jest to ekonomiczny sposób w porównaniu z projektem, w którym funkcje stale sondują i sprawdzają określone kryteria. Każde żądanie sondowania jest mierzone jako akcja.

Aby uzyskać więcej informacji, zobacz Cennik usługi Logic Apps.

Azure Functions

Usługa Azure Functions jest dostępna z następującymi trzema planami cenowymi.

  • Plan zużycia. Jest to najbardziej ekonomiczny, bezserwerowy plan dostępny, w którym płacisz tylko za czas uruchamiania funkcji. W ramach tego planu funkcje mogą być uruchamiane przez maksymalnie 10 minut naraz.

  • Plan Premium. Rozważ użycie planu usługi Azure Functions w warstwie Premium dla scenariuszy automatyzacji z dodatkowymi wymaganiami, takimi jak dedykowana sieć wirtualna, dłuższy czas trwania wykonywania itd. Te funkcje mogą być uruchamiane przez maksymalnie godzinę i powinny być wybierane dla dłuższych zadań automatyzacji, takich jak uruchamianie kopii zapasowych, indeksowanie bazy danych lub generowanie raportów.

  • Plan usługi App Service. Scenariusze automatyzacji hybrydowej, które korzystają z Połączenie hybrydowej usługi aplikacja systemu Azure Service, będą musiały korzystać z planu usługi App Service. Funkcje utworzone w ramach tego planu mogą być uruchamiane przez nieograniczony czas trwania, podobnie jak w przypadku aplikacji internetowej.

W tych scenariuszach automatyzacji usługa Azure Functions jest używana do wykonywania zadań, takich jak aktualizowanie tagów w identyfikatorze Entra firmy Microsoft lub zmienianie konfiguracji usługi Azure Cosmos DB przez skalowanie jednostek RU w górę do wyższej wartości. Plan Zużycie jest odpowiedni dla tego przypadku użycia, ponieważ te zadania są interaktywne i nie są długotrwałe.

Azure Cosmos DB

Opłaty za aprowizowaną przepływność i zużycie magazynu w usłudze Azure Cosmos DB są naliczane godzinowo. Aprowizowana przepływność jest wyrażana w jednostkach żądań na sekundę (RU/s), które mogą być używane do typowych operacji bazy danych, takich jak operacje wstawiania, odczyty. Opłata za magazyn jest naliczana za każdy GB używany dla przechowywanych danych i indeksu. Aby uzyskać więcej informacji, zobacz Model cen usługi Azure Cosmos DB.

W tej architekturze, gdy żądania dostępu do danych do usługi Azure Cosmos DB przekraczają pojemność w jednostkach żądań (lub jednostkach RU), usługa Azure Monitor wyzwala alerty. W odpowiedzi na te alerty grupa akcji usługi Azure Monitor jest skonfigurowana do wywoływania funkcji automatyzacji. Funkcja skaluje jednostki RU do wyższej wartości. Pomaga to utrzymać koszty w dół, ponieważ płacisz tylko za zasoby, których potrzebują obciążenia na godzinę.

Aby uzyskać szybkie oszacowanie kosztów obciążenia, użyj kalkulatora pojemności usługi Azure Cosmos DB.

Aby uzyskać więcej informacji, zobacz sekcję Koszt w witrynie Microsoft Azure Well-Architected Framework.

Uwagi dotyczące wdrażania

W przypadku krytycznych przepływów pracy automatyzacji, które zarządzają zachowaniem aplikacji, wdrożenie bez przestojów musi zostać osiągnięte przy użyciu wydajnego potoku DevOps. Aby uzyskać więcej informacji, przeczytaj temat Wdrażanie zaplecza bezserwerowego.

Jeśli automatyzacja obejmuje wiele aplikacji, zachowaj zasoby wymagane przez automatyzację w oddzielnej grupie zasobów. Pojedyncza grupa zasobów może być współdzielona między zasobami automatyzacji i aplikacji, jeśli automatyzacja obejmuje jedną aplikację.

Jeśli przepływ pracy obejmuje wiele funkcji automatyzacji, pogrupuj funkcje catering na jeden scenariusz w jednej aplikacji funkcji. Aby uzyskać więcej informacji, przeczytaj artykuł Manage function app (Zarządzanie aplikacją funkcji).

Podczas wdrażania aplikacji należy ją monitorować. Rozważ użycie Szczegółowe informacje aplikacji, aby umożliwić deweloperom monitorowanie wydajności i wykrywanie problemów.

Aby uzyskać więcej informacji, zobacz sekcję DevOps w witrynie Microsoft Azure Well-Architected Framework.

Akcje imperatywne w zasobach platformy Azure

W obu powyższych scenariuszach wynik końcowy był zmianą stanu zasobu platformy Azure za pośrednictwem bezpośredniej interakcji z usługą Azure Resource Manager. Chociaż był to zamierzony wynik, należy wziąć pod uwagę wpływ na środowisko, jeśli zmodyfikowane zasoby zostały pierwotnie wdrożone deklaratywnie, takie jak szablony Bicep lub Terraform. Jeśli te zmiany nie zostaną zreplikowane z powrotem do szablonów źródłowych, kolejne użycie tych szablonów może cofnąć zmiany wprowadzone przez tę automatyzację. Rozważ wpływ mieszania zmian imperatywnych do zasobów platformy Azure, które są rutynowo wdrażane za pośrednictwem szablonów.

Wdrażanie tego scenariusza

Aby wdrożyć scenariusz centrum kosztów, zobacz kroki wdrażania w usłudze GitHub.

Następne kroki