Zarządzanie kosztami przy użyciu automatyzacji

Automatyzacja w usłudze Cost Management pozwala utworzyć niestandardowy zestaw rozwiązań do pobierania danych kosztów i zarządzania nimi. W tym artykule opisano typowe scenariusze zastosowania automatyzacji w usłudze Cost Management i opcje dostępne w zależności od sytuacji. Jeśli chcesz programować z użyciem interfejsów API, zaprezentowano przykłady typowych żądań kierowanych do interfejsu API, które przyspieszą proces programowania.

Automatyzowanie pobierania danych kosztów do analizy w trybie offline

Pobranie danych kosztów platformy Azure może być konieczne w celu scalenia ich z innymi zestawami danych. Możesz też potrzebować zintegrować dane kosztów z własnymi systemami. Zależnie od ilości danych, których to dotyczy, dostępne są różne opcje. W każdym przypadku do korzystania z interfejsów API i narzędzi trzeba mieć odpowiedni zakres uprawnień w usłudze Cost Management. Aby uzyskać więcej informacji, zobacz Przypisywanie dostępu do danych.

Sugestie dotyczące obsługi dużych zestawów danych

Jeśli Twoja organizacja ma dużą obecność platformy Azure w wielu zasobach lub subskrypcjach, będziesz mieć dużą ilość wyników danych szczegółów użycia. Program Excel często nie może ładować tak dużych plików. W tej sytuacji zalecamy następujące opcje:

Power BI

Usługa Power BI służy do pozyskiwania i obsługi dużych ilości danych. Jeśli jesteś klientem z umową Enterprise Agreement, możesz użyć aplikacji szablonu usługi Power BI do analizowania kosztów dla konta rozliczeniowego. Raport zawiera najważniejsze widoki używane przez klientów. Aby uzyskać więcej informacji, zobacz Analizowanie kosztów platformy Azure za pomocą aplikacji szablonu usługi Power BI.

Łącznik danych usługi Power BI

Jeśli chcesz analizować dane codziennie, zalecamy użycie łącznika danych usługi Power BI w celu pobierania danych do szczegółowej analizy. Wszystkie raporty, które tworzysz, są aktualizowane przez łącznik w miarę naliczania kolejnych kosztów.

Eksporty z usługi Cost Management

Możesz nie mieć potrzeby codziennego analizowania danych. W takim przypadku rozważ użycie funkcji Eksporty w usłudze Cost Management w celu zaplanowania eksportów danych na konto usługi Azure Storage. Następnie możesz zgodnie z potrzebami ładować dane do usługi Power BI lub analizować je w programie Excel, jeśli plik będzie dostatecznie mały. Eksporty są dostępne w witrynie Azure Portal, ale można też je skonfigurować za pomocą interfejsu API eksportów.

Interfejs API szczegółów użycia

Rozważ zastosowanie interfejsu API szczegółów użycia, jeśli masz niewielki zestaw danych kosztów. Poniżej przedstawiono zalecane najlepsze rozwiązania:

  • Jeśli chcesz uzyskać najnowsze dane dotyczące kosztów, zalecamy wykonywanie zapytań co najwyżej raz dziennie. Raporty są odświeżane co cztery godziny. Jeśli dzwonisz częściej, otrzymasz identyczne dane.
  • Po pobraniu danych kosztów dla faktur historycznych opłaty nie zostaną zmienione, chyba że jawnie otrzymasz powiadomienie. Zalecamy buforowanie danych kosztów w magazynie z możliwością wykonywania zapytań, aby zapobiec powtarzającym się wywołaniom identycznych danych.
  • Podziel wywołania na małe zakresy dat, aby uzyskać bardziej możliwe do zarządzania pliki, które można pobrać. Na przykład zalecamy fragmentowanie według dnia lub tygodnia, jeśli masz duże pliki użycia platformy Azure od miesiąca do miesiąca.
  • Jeśli masz zakresy z dużą ilością danych użycia (na przykład konto rozliczeniowe), rozważ umieszczenie wielu wywołań do zakresów podrzędnych, aby uzyskać bardziej zarządzane pliki, które można pobrać.
  • Jeśli zestaw danych jest większy niż 2 GB miesięcznie, rozważ użycie eksportów jako bardziej skalowalnego rozwiązania.

Automatyzacja pobierania za pomocą interfejsu API szczegółów użycia

Interfejs API szczegółów użycia zapewnia łatwy sposób uzyskiwania nieprzetworzonych, niezagregowanych danych kosztów, które odnoszą się do rachunku za platformę Azure. Interfejs API jest przydatny, gdy organizacja potrzebuje rozwiązania pobierającego dane w sposób programistyczny. Rozważ użycie interfejsu API, jeśli chcesz analizować mniejsze zestawy danych kosztów. W przypadku większych zestawów danych powinno się jednak korzystać z innych rozwiązań wskazanych wcześniej. Dane szczegółów użycia są udostępniane dla poszczególnych liczników i dni. Są stosowane do obliczania rachunków miesięcznych. Ogólnie dostępna wersja tych interfejsów API to 2019-10-01. Użyj wersji 2019-04-01-preview, aby uzyskać dostęp do wersji zapoznawczej dla rezerwacji i zakupów w witrynie Azure Marketplace przy użyciu interfejsów API.

Jeśli chcesz regularnie pobierać duże ilości eksportowanych danych, zobacz Pobieranie zestawów danych z dużymi kosztami cyklicznie z eksportami.

Sugestie dotyczące interfejsu API szczegółów użycia

Harmonogram żądań

Zalecamy, aby do interfejsu API szczegółów użycia kierować nie więcej niż jedno żądanie dziennie. Aby uzyskać więcej informacji o tym, jak często dane kosztów są odświeżane i jak obsługiwane jest zaokrąglanie, zobacz Omówienie danych usługi Cost Management.

Ukierunkowanie na zakresy najwyższego poziomu bez filtrowania

Użyj interfejsu API, aby uzyskać wszystkie potrzebne dane w zakresie o najwyższym dostępnym poziomie. Przed wykonaniem jakiejkolwiek operacji filtrowania, grupowania lub agregowania albo analizy zagregowanych danych zaczekaj, aż wszystkie potrzebne dane zostaną pozyskane. Interfejs API jest zoptymalizowany pod kątem dostarczania dużej ilości niezagregowanych i nieprzetworzonych danych kosztów. Aby dowiedzieć się więcej o zakresach dostępnych w usłudze Cost Management, zobacz Opis zakresów i praca z nimi. Po pobraniu potrzebnych danych dla zakresu użyj programu Excel do dalszej analizy danych za pomocą filtrów i tabel przestawnych.

Uwagi dotyczące cennika

Jeśli chcesz uzgodnić użycie i opłaty za pomocą arkusza cen lub faktury, zobacz Zachowanie cennika w szczegółach kosztów.

Pojedynczy zasób może mieć wiele rekordów przez jeden dzień

Dostawcy zasobów platformy Azure emitują użycie i opłaty do systemu rozliczeniowego i wypełniają Additional Info pole rekordów użycia. Czasami dostawcy zasobów mogą emitować użycie dla danego dnia i oznaczać rekordy różnymi centrami danych w Additional Info polu rekordów użycia. Może to spowodować, że w pliku użycia będzie obecnych wiele rekordów dla miernika/zasobu przez jeden dzień. W takiej sytuacji nie są przeładowane. Wiele rekordów reprezentuje pełny koszt miernika dla zasobu w tym dniu.

Przykładowe żądania do interfejsu API dotyczące szczegółów użycia

Poniższe przykładowe żądania są używane przez klientów firmy Microsoft w typowych scenariuszach, które możesz napotkać.

Pobieranie szczegółów użycia dla zakresu w określonym zakresie dat

Dane zwracane przez żądanie odpowiadają dacie, kiedy informacje o użyciu zostały odebrane przez system rozliczeniowy. Mogą obejmować koszty z wielu faktur. Wywołanie, którego należy użyć, różni się w zależności od typu subskrypcji.

W przypadku starszych klientów z subskrypcją Enterprise Agreement (EA) lub z płatnością zgodnie z rzeczywistym użyciem użyj następującego wywołania:

GET https://management.azure.com/{scope}/providers/Microsoft.Consumption/usageDetails?$filter=properties%2FusageStart%20ge%20'2020-02-01'%20and%20properties%2FusageEnd%20le%20'2020-02-29'&$top=1000&api-version=2019-10-01

W przypadku klientów nowoczesnych z Umową z Klientem firmy Microsoft użyj następującego wywołania:

GET https://management.azure.com/{scope}/providers/Microsoft.Consumption/usageDetails?startDate=2020-08-01&endDate=2020-08-05&$top=1000&api-version=2019-10-01

Uwaga

Parametr $filter nie jest obsługiwany przez Umowa z Klientem Microsoft.

Pobieranie szczegółów amortyzowanego kosztu

Jeśli potrzebujesz rzeczywistych kosztów, aby pokazać zakupy w miarę ich naliczania, zmień metrykę na ActualCost w poniższym żądaniu. Aby skorzystać z kosztów amortyzowanych i rzeczywistych, musisz użyć wersji 2019-04-01-preview. Bieżąca wersja interfejsu API działa tak samo jak wersja 2019-10-01, z wyjątkiem nowego atrybutu typu/metryki i zmienionych nazw właściwości. Jeśli masz Umowę z Klientem Microsoft, Twoje filtry to startDate i endDate w poniższym przykładzie.

GET https://management.azure.com/{scope}/providers/Microsoft.Consumption/usageDetails?metric=AmortizedCost&$filter=properties/usageStart+ge+'2019-04-01'+AND+properties/usageEnd+le+'2019-04-30'&api-version=2019-04-01-preview

Automatyzowanie alertów i akcji przy użyciu budżetów

Istnieją dwa kluczowe składniki umożliwiające maksymalizowanie wartości inwestycji w chmurze. Jednym z nich jest automatyczne tworzenie budżetu. Drugi to konfigurowanie aranżacji opartej na kosztach w odpowiedzi na alerty budżetowe. Istnieją różne sposoby automatyzowania tworzenia budżetu. Po przekroczeniu skonfigurowanych progów alertów zdarzają się różne odpowiedzi na alerty.

W poniższych sekcjach opisano dostępne opcje i przedstawiono przykładowe żądania interfejsu API umożliwiające rozpoczęcie pracy z automatyzacją budżetu.

Sposób oceniania kosztów względem progu budżetu

Koszty są oceniane względem progu budżetu raz dziennie. Po utworzeniu nowego budżetu lub w dniu resetowania budżetu koszty w porównaniu z progiem będą równe zero/null, ponieważ ocena mogła jeszcze nie zostać przeprowadzona.

Gdy platforma Azure wykryje, że koszty przekroczyły wartość progową, w ciągu godziny od wykrycia zostanie wyzwolone powiadomienie.

Wyświetlanie bieżącego kosztu

Aby wyświetlić bieżące koszty, musisz wykonać wywołanie GET przy użyciu interfejsu API zapytania.

Wywołanie GET do interfejsu API budżetów nie zwróci bieżących kosztów wyświetlanych w analizie kosztów. Zamiast tego wywołanie zwróci ostatnio oceniony koszt.

Automatyzowanie tworzenia budżetu

Tworzenie budżetu można zautomatyzować za pomocą interfejsu API budżetów. Można również utworzyć budżet za pomocą szablonu budżetu. Szablony to łatwy sposób na ustandaryzowanie wdrożeń platformy Azure z zapewnieniem prawidłowej konfiguracji i wymuszania kontroli kosztów.

Ustawienia regionalne obsługiwane w przypadku wiadomości e-mail z alertami budżetowymi

W przypadku budżetów otrzymasz alert, gdy koszty przekroczą ustawiony próg. Możesz skonfigurować maksymalnie pięciu adresatów wiadomości e-mail na budżet. Adresaci będą otrzymywać alerty e-mail w ciągu 24 godzin od przekroczenia progu budżetu. Może być jednak konieczne wysłanie do adresata wiadomości e-mail w innym języku. W interfejsie API budżetów można używać następujących kodów kultur języków. Ustaw kod kultury przy użyciu parametru locale podobnie jak w poniższym przykładzie.

{
  "eTag": "\"1d681a8fc67f77a\"",
  "properties": {
    "timePeriod": {
      "startDate": "2020-07-24T00:00:00Z",
      "endDate": "2022-07-23T00:00:00Z"
    },
    "timeGrain": "BillingMonth",
    "amount": 1,
    "currentSpend": {
      "amount": 0,
      "unit": "USD"
    },
    "category": "Cost",
    "notifications": {
      "actual_GreaterThan_10_Percent": {
        "enabled": true,
        "operator": "GreaterThan",
        "threshold": 20,
        "locale": "en-us",
        "contactEmails": [
          "user@contoso.com"
        ],
        "contactRoles": [],
        "contactGroups": [],
        "thresholdType": "Actual"
      }
    }
  }
}

Języki obsługiwane przez kod kultury:

Kod kulturowy Język
pl Angielski (Stany Zjednoczone)
ja-jp Japoński (Japonia)
zh-cn Chiński (uproszczony, Chiny)
de-de Niemiecki (Niemcy)
es-es Hiszpański (Hiszpania — międzynarodowy)
fr-fr Francuski (Francja)
it-it Włoski (Włochy)
ko-kr Koreański (Korea)
pt-br Portugalski (Brazylia)
ru-ru Rosyjski (Rosja)
zh-tw Chiński (tradycyjny, Tajwan)
cs-cz Czeski (Czechy)
pl-pl Polski (Polska)
tr-tr Turecki (Türkiye)
da-dk Duński (Dania)
en-gb Angielski (Zjednoczone Królestwo)
hu-hu Węgierski (Węgry)
nb-no Norweski, Bokmal (Norwegia)
nl-nl Holenderski (Holandia)
pt-pt Portugalski (Portugalia)
sv-se Szwedzki (Szwecja)

Typowe konfiguracje interfejsu API budżetów

Istnieje wiele sposobów konfigurowania budżetu w środowisku platformy Azure. Najpierw rozważ scenariusz, a następnie zidentyfikuj opcje konfiguracji, które pozwolą go zrealizować. Zapoznaj się z następującymi opcjami:

  • Ziarno czasu — reprezentuje okres cyklu używany przez budżet do naliczania i oceniania kosztów. Najbardziej popularne opcje to: Miesięcznie, Kwartalnie i Rocznie.
  • Okres — określa, jak długo budżet jest ważny. Budżet aktywnie monitoruje i wyświetla alerty tylko w okresie swojej ważności.
  • Powiadomienia
    • Kontakty e-mail — gdy budżet nalicza koszty i przekracza zdefiniowane progi, na adresy e-mail są wysyłane alerty.
    • Role kontaktu — ta opcja powoduje, że alerty e-mail otrzymują wszyscy użytkownicy z odpowiednią rolą na platformie Azure. Na przykład właściciele subskrypcji mogą otrzymać alert o utworzeniu budżetu w zakresie subskrypcji.
    • Grupy kontaktów — po przekroczeniu progu alertu budżet wywołuje skonfigurowane grupy akcji.
  • Filtry wymiaru kosztu — to samo filtrowanie, które można przeprowadzić w analizie kosztów lub interfejsie API zapytania, jest również dostępne w budżecie. Ten filtr umożliwia ograniczenie zakresu kosztów monitorowanych w budżecie.

Po zidentyfikowaniu opcji tworzenia budżetu, które spełniają Twoje wymagania, utwórz budżet przy użyciu interfejsu API. Poniższy przykład ułatwia rozpoczęcie pracy z typową konfiguracją budżetu.

Tworzenie budżetu przefiltrowanego według wielu zasobów i tagów

Adres URL żądania: PUT https://management.azure.com/subscriptions/{SubscriptionId} /providers/Microsoft.Consumption/budgets/{BudgetName}/?api-version=2019-10-01

{
  "eTag": "\"1d34d016a593709\"",
  "properties": {
    "category": "Cost",
    "amount": 100.65,
    "timeGrain": "Monthly",
    "timePeriod": {
      "startDate": "2017-10-01T00:00:00Z",
      "endDate": "2018-10-31T00:00:00Z"
    },
    "filter": {
      "and": [
        {
          "dimensions": {
            "name": "ResourceId",
            "operator": "In",
            "values": [
              "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{meterName}",
              "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{meterName}"
            ]
          }
        },
        {
          "tags": {
            "name": "category",
            "operator": "In",
            "values": [
              "Dev",
              "Prod"
            ]
          }
        },
        {
          "tags": {
            "name": "department",
            "operator": "In",
            "values": [
              "engineering",
              "sales"
            ]
          }
        }
      ]
    },
    "notifications": {
      "Actual_GreaterThan_80_Percent": {
        "enabled": true,
        "operator": "GreaterThan",
        "threshold": 80,
        "contactEmails": [
          "user1@contoso.com",
          "user2@contoso.com"
        ],
        "contactRoles": [
          "Contributor",
          "Reader"
        ],
        "contactGroups": [
          "/subscriptions/{subscriptionID}/resourceGroups/{resourceGroupName}/providers/microsoft.insights/actionGroups/{actionGroupName}
        ],
        "thresholdType": "Actual"
      }
    }
  }
}

Konfigurowanie aranżacji opartej na kosztach dla alertów budżetu

Budżety można skonfigurować tak, aby uruchamiały zautomatyzowane akcje, używając grup akcji platformy Azure. Aby dowiedzieć się więcej na temat automatyzowania akcji przy użyciu budżetów, zobacz Automatyzacja z budżetami.

Opóźnienie danych i limity szybkości

Zalecamy wywoływanie interfejsów API nie częściej niż raz dziennie. Dane usługi Cost Management są odświeżane co cztery godziny, gdy nowe dane użycia są odbierane od dostawców zasobów platformy Azure. Wywoływanie częściej nie zapewnia większej ilości danych. Zamiast tego tworzy większe obciążenie.

Jednostki przetwarzania zapytań interfejsu API zapytań

Oprócz istniejących procesów ograniczania szybkości interfejs API zapytań ogranicza również przetwarzanie na podstawie kosztów wywołań interfejsu API. Koszt wywołania interfejsu API jest wyrażony jako jednostki przetwarzania zapytań (QPU). QPU to waluta wydajności, na przykład jednostki RU usługi Cosmos DB. Abstrakują zasoby systemowe, takie jak procesor CPU i pamięć.

Obliczanie QPU

Obecnie jedna funkcja QPU jest odejmowana za jeden miesiąc zapytań dotyczących danych z przydzielonych przydziałów. Ta logika może ulec zmianie bez powiadomienia.

Czynniki QPU

Następujący czynnik wpływa na liczbę jednostek QPU używanych przez żądanie interfejsu API.

  • Zakres dat, wraz ze wzrostem zakresu dat w żądaniu, zwiększa się liczba użytych jednostek QPU.

Inne czynniki QPU można dodać bez powiadomienia.

Limity przydziału QPU

Następujące limity przydziału są konfigurowane dla dzierżawy. Żądania są ograniczane po wyczerpaniu któregokolwiek z następujących limitów przydziału.

  • 12 QPU na 10 sekund
  • 60 QPU na 1 minutę
  • 600 QPU na 1 godzinę

Przydziały mogą zostać zmienione w razie potrzeby i można dodać więcej przydziałów.

Nagłówki odpowiedzi

Możesz sprawdzić nagłówki odpowiedzi, aby śledzić liczbę jednostek QPU używanych przez żądanie interfejsu API i liczbę pozostałych jednostek QPU.

x-ms-ratelimit-microsoft.costmanagement-qpu-retry-after

Wskazuje czas wycofywania w sekundach. Gdy żądanie jest ograniczane z wartością 429, należy cofnąć czas określony w tym nagłówku przed ponowieniu próby żądania.

x-ms-ratelimit-microsoft.costmanagement-qpu-consumed

Jednostki QPU używane przez wywołanie interfejsu API.

x-ms-ratelimit-microsoft.costmanagement-qpu-remaining

Lista pozostałych przydziałów.