Zarządzanie kosztami przy użyciu budżetów platformy AzureManage costs with Azure Budgets

Kontrola kosztów to kluczowy składnik umożliwiający maksymalizowanie wartości inwestycji w chmurze.Cost control is a critical component to maximizing the value of your investment in the cloud. Istnieje kilka scenariuszy, w których widoczność kosztów, raportowanie i aranżacja oparta na kosztach mają kluczowe znaczenie dla zachowania ciągłości operacji biznesowych.There are several scenarios where cost visibility, reporting, and cost-based orchestration are critical to continued business operations. Interfejsy API usługi Azure Cost Management udostępniają zestaw interfejsów API do obsługi każdego z tych scenariuszy.Azure Cost Management APIs provide a set of APIs to support each of these scenarios. Interfejsy API udostępniają szczegółowe informacje dotyczące użycia, co pozwala na wyświetlanie szczegółowych kosztów na poziomie wystąpienia.The APIs provide usage details, allowing you to view granular instance level costs.

Budżety są często używane jako część kontroli kosztów.Budgets are commonly used as part of cost control. Budżety mogą być objęte zakresem na platformie Azure.Budgets can be scoped in Azure. Na przykład możesz zawęzić widok budżetu na podstawie subskrypcji, grup zasobów lub kolekcji zasobów.For instance, you could narrow your budget view based on subscription, resource groups, or a collection of resources. Oprócz używania interfejsu API budżetów do powiadamiania użytkownika za pośrednictwem poczty e-mail, gdy próg budżetu zostanie osiągnięty, można użyć grup akcji usługi Azure Monitor do wyzwolenia zorganizowanego zestawu akcji w wyniku zdarzenia budżetu.In addition to using the budgets API to notify you via email when a budget threshold is reached, you can use Azure Monitor action groups to trigger an orchestrated set of actions as a result of a budget event.

Typowy scenariusz budżetów dla klienta uruchamiającego obciążenie inne niż krytyczne może wystąpić, gdy chce on zarządzać budżetem, a także uzyskać informacje o przewidywalnym koszcie podczas przeglądania faktury miesięcznej.A common budgets scenario for a customer running a non-critical workload could occur when they want to manage against a budget and also get to a predictable cost when looking at the monthly invoice. Ten scenariusz wymaga opartej na kosztach aranżacji zasobów, które są częścią środowiska platformy Azure.This scenario requires some cost-based orchestration of resources that are part of the Azure environment. W tym scenariuszu ustawiono miesięczny budżet dla subskrypcji wynoszący 1000 USD.In this scenario, a monthly budget of $1000 for the subscription is set. Ponadto progi powiadomień zostały ustawione tak, aby wyzwalać kilka aranżacji.Also, notification thresholds are set to trigger a few orchestrations. Ten scenariusz rozpoczyna się od progu kosztów wynoszącego 80%, co spowoduje zatrzymanie wszystkich maszyn wirtualnych w grupie zasobów Opcjonalna.This scenario starts with an 80% cost threshold, which will stop all VMs in the resource group Optional. Następnie przy progu kosztów wynoszącym 100% wszystkie wystąpienia maszyn wirtualnych zostaną zatrzymane.Then, at the 100% cost threshold, all VM instances will be stopped. Aby skonfigurować ten scenariusz, wykonaj następujące akcje opisane w poszczególnych sekcjach tego samouczka.To configure this scenario, you will complete the following actions by following the steps provided in each section of this tutorial.

Akcje opisane w tym samouczku umożliwiają:These actions included in this tutorial allow you to:

  • Tworzenie elementu runbook usługi Azure Automation w celu zatrzymywania maszyn wirtualnych za pomocą elementów webhook.Create an Azure Automation Runbook to stop VMs by using webhooks.
  • Tworzenie aplikacji logiki platformy Azure, która ma być wyzwalana na podstawie wartości progu budżetu, i wywoływanie elementu runbook z właściwymi parametrami.Create an Azure Logic App to be triggered based on the budget threshold value and call the runbook with the right parameters.
  • Tworzenie grupy akcji usługi Azure Monitor, która zostanie skonfigurowana do wyzwalania aplikacji logiki platformy Azure po osiągnięciu progu budżetu.Create an Azure Monitor Action Group that will be configured to trigger the Azure Logic App when the budget threshold is met.
  • Tworzenie budżetu platformy Azure z żądanymi progami i łączenie go z grupą akcji.Create the Azure budget with the desired thresholds and wire it to the action group.

Tworzenie elementu runbook usługi Azure AutomationCreate an Azure Automation Runbook

Azure Automation to usługa, która umożliwia tworzenie skryptów do obsługi większości zadań zarządzania zasobami oraz uruchamianie tych zadań zgodnie z harmonogramem lub na żądanie.Azure Automation is a service that enables you to script most of your resource management tasks and run those tasks as either scheduled or on-demand. W ramach tego scenariusza utworzysz element runbook usługi Azure Automation, który będzie używany do zatrzymywania maszyn wirtualnych.As part of this scenario, you will create an Azure Automation runbook that will be used to stop VMs. W celu skompilowania tego scenariusza użyjesz graficznego elementu runbook Zatrzymaj maszyny wirtualne platformy Azure w wersji 2 z galerii.You will use the Stop Azure V2 VMs graphical runbook from the gallery to build this scenario. Po zaimportowaniu elementu runbook do konta platformy Azure i jego opublikowaniu będziesz mieć możliwość zatrzymywania maszyn wirtualnych po osiągnięciu progu budżetu.By importing this runbook into your Azure account and publishing it, you will be able to stop VMs when a budget threshold is reached.

Tworzenie konta usługi Azure AutomationCreate an Azure Automation account

  1. Zaloguj się do witryny Azure Portal przy użyciu poświadczeń konta Azure.Sign in to the Azure portal with your Azure account credentials.
  2. Kliknij przycisk Utwórz zasób znajdujący się w lewym górnym rogu witryny Azure Portal.Click the Create a resource button found on the upper left corner of Azure.
  3. Wybierz pozycję Narzędzia do zarządzania > Automation.Select Management Tools > Automation.

    Uwaga

    Jeśli nie masz jeszcze konta platformy Azure, możesz utworzyć bezpłatne konto.If you don’t have an Azure account, you can create a free account.

  4. Wprowadź informacje o koncie.Enter your account information. W obszarze Utwórz konto Uruchom jako platformy Azure wybierz pozycję Tak, aby ustawienia wymagane do uproszczenia uwierzytelniania na platformie Azure zostały automatycznie włączone.For Create Azure Run As account, choose Yes to automatically enable the settings needed to simplify authentication to Azure.
  5. Po zakończeniu kliknij przycisk Utwórz, aby rozpocząć wdrażanie konta usługi Automation.When complete, click Create, to start the Automation account deployment.

Importowanie elementu runbook Zatrzymaj maszyny wirtualne platformy Azure w wersji 2Import the Stop Azure V2 VMs runbook

Używając elementu runbook usługi Azure Automation runbook, zaimportuj graficzny element runbook Zatrzymaj maszyny wirtualne platformy Azure w wersji 2 z galerii.Using an Azure Automation runbook, import the Stop Azure V2 VMs graphical runbook from the gallery.

  1. Zaloguj się do witryny Azure Portal przy użyciu poświadczeń konta Azure.Sign in to the Azure portal with your Azure account credentials.

  2. Otwórz konto usługi Automation, wybierając pozycję Wszystkie usługi > Konta usługi Automation.Open your Automation account by selecting All services > Automation Accounts. Następnie wybierz swoje konto usługi Automation.Then, select your Automation Account.

  3. Kliknij pozycję Galeria elementów Runbook w sekcji Automatyzacja procesu.Click Runbooks gallery from the Process Automation section.

  4. Ustaw źródło galerii na Centrum skryptów i wybierz przycisk OK.Set the Gallery Source to Script Center and select OK.

  5. Znajdź i wybierz element galerii Zatrzymaj maszyny wirtualne platformy Azure w wersji 2 w witrynie Azure Portal.Locate and select the Stop Azure V2 VMs gallery item within the Azure portal.

  6. Kliknij przycisk Importuj, aby wyświetlić blok Import, i wybierz przycisk OK.Click the Import button to display the Import blade and select OK. Zostanie wyświetlony blok omówienia elementów runbook.The runbook overview blade will be displayed.

  7. Gdy element runbook ukończy proces importowania, wybierz pozycję Edytuj, aby wyświetlić edytor graficznych elementów runbook i opcję publikowania.Once the runbook has completed the import process, select Edit to display the graphical runbook editor and publishing option.

    Azure — edytowanie graficznych elementów runbook

  8. Kliknij przycisk Opublikuj, aby opublikować element runbook, a następnie wybierz pozycję Tak po wyświetleniu monitu.Click the Publish button to publish the runbook and then select Yes when prompted. Podczas publikowania elementu runbook można zastąpić istniejącą wersję opublikowaną wersją roboczą.When you publish a runbook, you override any existing published version with the draft version. W tym przypadku nie ma jeszcze wersji opublikowanej, ponieważ element runbook został utworzony.In this case, you have no published version because you have created the runbook.

    Aby uzyskać więcej informacji o publikowaniu elementu runbook, zobacz sekcję dotyczącą tworzenia graficznego elementu runbook.For more information about publishing a runbook, see Create a graphical runbook.

Tworzenie elementów webhook dla elementu runbookCreate webhooks for the runbook

Przy użyciu graficznego elementu runbook Zatrzymaj maszyny wirtualne platformy Azure w wersji 2 utworzysz dwa elementy webhook, aby uruchomić element runbook w usłudze Azure Automation za pośrednictwem pojedynczego żądania HTTP.Using the Stop Azure V2 VMs graphical runbook, you will create two Webhooks to start the runbook in Azure Automation through a single HTTP request. Pierwszy element webhook wywoła element runbook przy progu budżetu wynoszącym 80% z nazwą grupy zasobów jako parametrem, umożliwiając zatrzymanie opcjonalnych maszyn wirtualnych.The first webhook will invoke the runbook at an 80% budget threshold with the resource group name as a parameter, allowing the optional VMs to be stopped. Następnie drugi element webhook wywoła element runbook bez parametrów (przy wartości 100%), co spowoduje zatrzymanie wszystkich pozostałych wystąpień maszyn wirtualnych.Then, second webhook will invoke the runbook with no parameters (at 100%), which will stop all remaining VM instances.

  1. Na stronie Elementy runbook w witrynie Azure Portal kliknij element runbook StopAzureV2Vm, który wyświetla blok omówienia elementu runbook.From the Runbooks page in the Azure portal, click the StopAzureV2Vm runbook that displays the runbook’s overview blade.
  2. Kliknij opcję Element webhook u góry strony, aby otworzyć blok Dodawanie elementu webhook.Click Webhook at the top of the page to open the Add Webhook blade.
  3. Kliknij pozycję Utwórz nowy element webhook, aby otworzyć blok Tworzenie nowego elementu webhook.Click Create new webhook to open the Create a new webhook blade.
  4. Ustaw nazwę elementu webhook na Optional (Opcjonalne).Set the Name of the Webhook to Optional. Właściwość Włączono musi mieć wartość Tak.The Enabled property must be Yes. Wartości Wygasa nie trzeba zmieniać.The Expires value does not need to be changed. Aby uzyskać więcej informacji na temat właściwości elementu webhook, zobacz sekcję Szczegóły elementu webhook.For more information about Webhook properties, see Details of a webhook.
  5. Obok wartości adresu URL kliknij ikonę kopiowania, aby skopiować adres URL elementu webhook.Next to the URL value, click the copy icon to copy the URL of the webhook.

    Ważne

    Zapisz adres URL elementu webhook o nazwie Optional (Opcjonalne) w bezpiecznym miejscu.Save the URL of the webhook named Optional in a safe place. Ten adres URL zostanie użyty w dalszej części tego samouczka.You will use the URL later in this tutorial. Ze względów bezpieczeństwa po utworzeniu elementu webhook nie można ponownie wyświetlić ani pobrać adresu URL.For security reasons, once you create the webhook, you cannot view or retrieve the URL again.

  6. Kliknij przycisk OK, aby utworzyć nowy element webhook.Click OK to create the new webhook.
  7. Kliknij pozycję Skonfiguruj parametry i parametry uruchomieniowe, aby wyświetlić wartości parametrów dla elementu runbook.Click Configure parameters and run settings to view parameter values for the runbook.

    Uwaga

    Jeśli element runbook ma parametry obowiązkowe, nie można utworzyć elementu webhook, chyba że zostaną podane wartości.If the runbook has mandatory parameters, then you are not able to create the webhook unless values are provided.

  8. Kliknij przycisk OK, aby zaakceptować wartości parametrów elementu webhook.Click OK to accept the webhook parameter values.
  9. Kliknij pozycję Utwórz, aby utworzyć element webhook.Click Create to create the webhook.
  10. Następnie wykonaj powyższe kroki, aby utworzyć drugi element webhook o nazwie Complete (Ukończenie).Next, follow the steps above to create a second webhook named Complete.

    Ważne

    Pamiętaj, aby zapisać obydwa adresy URL elementu webhook do użycia w dalszej części tego samouczka.Be sure to save both webhook URLs to use later in this tutorial. Ze względów bezpieczeństwa po utworzeniu elementu webhook nie można ponownie wyświetlić ani pobrać adresu URL.For security reasons, once you create the webhook, you cannot view or retrieve the URL again.

Teraz powinny istnieć dwa skonfigurowane elementy webhook dostępne przy użyciu zapisanych adresów URL.You should now have two configured webhooks that are each available using the URLs that you saved.

Elementy webhook — Optional (Opcjonalne) i Complete (Ukończone)

Konfiguracja usługi Azure Automation została zakończona.You’re now done with the Azure Automation setup. Możesz przetestować elementy webhook przy użyciu prostego testu Postman, aby sprawdzić, czy element webhook działa.You can test the webhooks with a simple Postman test to validate that the webhook works. Następnie musisz utworzyć aplikację logiki na potrzeby aranżacji.Next, you must create the Logic App for orchestration.

Tworzenie aplikacji logiki platformy Azure na potrzeby aranżacjiCreate an Azure Logic App for orchestration

Usługa Logic Apps ułatwia tworzenie, planowanie i automatyzowanie procesów jako przepływów pracy, aby można było integrować aplikacje, dane, systemy i usługi między przedsiębiorstwami i organizacjami.Logic Apps help you build, schedule, and automate processes as workflows so you can integrate apps, data, systems, and services across enterprises or organizations. W tym scenariuszu tworzona aplikacja logiki wykona więcej pracy niż tylko wywołanie utworzonego elementu webhook usługi Automation.In this scenario, the Logic App you create will do a little more than just call the automation webhook you created.

Można skonfigurować budżety, aby wyzwolić powiadomienie po osiągnięciu określonego progu.Budgets can be set up to trigger a notification when a specified threshold is met. Można określić wiele progów w celu otrzymywania powiadomień, a aplikacja logiki będzie demonstrować zdolność wykonywania różnych akcji w oparciu o osiągnięty próg.You can provide multiple thresholds to be notified at and the Logic App will demonstrate the ability for you to perform different actions based on the threshold met. W tym przykładzie zostanie skonfigurowany scenariusz, w którym otrzymasz kilka powiadomień: pierwsze powiadomienie będzie dostępne po osiągnięciu 80% budżetu, a drugie powiadomienie po osiągnięciu 100% budżetu.In this example, you will set up a scenario where you get a couple of notifications, the first notification is for when 80% of the budget has been reached and the second notification is when 100% of the budget has been reached. Aplikacja logiki zostanie użyta do zamknięcia wszystkich maszyn wirtualnych w grupie zasobów.The logic app will be used to shut down all VMs in the resource group. Najpierw próg opcjonalny zostanie osiągnięty przy wartości 80%, a następnie drugi próg zostanie osiągnięty, gdy wszystkie maszyny wirtualne w subskrypcji zostaną zamknięte.First, the Optional threshold will be reached at 80%, then the second threshold will be reached where all VMs in the subscription will be shut down.

Aplikacje logiki umożliwiają dostarczenie przykładowego schematu dla wyzwalacza HTTP, ale wymagają ustawienia nagłówka Content-Type.Logic apps allow you to provide a sample schema for the HTTP trigger, but require you to set the Content-Type header. Ponieważ grupa akcji nie ma niestandardowych nagłówków dla elementu webhook, musisz przeanalizować ładunek w osobnym kroku.Because the action group does not have custom headers for the webhook, you must parse out the payload in a separate step. Użyjesz akcji Przeanalizuj i zastosujesz dla niej przykładowy ładunek.You will use the Parse action and provide it with a sample payload.

Tworzenie aplikacji logikiCreate the logic app

Aplikacja logiki wykona kilka akcji.The logic app will perform several actions. Poniższa lista zawiera ogólny zestaw akcji, które wykona aplikacja logiki:The following list provides a high-level set of actions that the logic app will perform:

  • Rozpoznanie momentu odebrania żądania HTTPRecognizes when an HTTP request is received
  • Przeanalizowanie przekazanych danych JSON w celu określenia wartości progowej, która została osiągniętaParse the passed in JSON data to determine the threshold value that has been reached
  • Użycie instrukcji warunkowej w celu sprawdzenia, czy wielkość progowa osiągnęła co najmniej 80% zakresu budżetu, ale nie więcej niż 100%.Use a conditional statement to check whether the threshold amount has reached 80% or more of the budget range, but not greater than or equal to 100%.
    • Jeśli ta wielkość progowa została osiągnięta, instrukcja HTTP POST jest wysyłana przy użyciu elementu webhook o nazwie Optional (Opcjonalne).If this threshold amount has been reached, send an HTTP POST using the webhook named Optional. Ta akcja spowoduje zamknięcie maszyn wirtualnych w grupie „Opcjonalne”.This action will shut down the VMs in the "Optional" group.
  • Użycie instrukcji warunkowej w celu sprawdzenia, czy wielkość progu osiągnęła lub przekroczyła 100% wartości budżetu.Use a conditional statement to check whether the threshold amount has reached or exceeded 100% of the budget value.
    • Jeśli ta wielkość progowa została osiągnięta, instrukcja HTTP POST jest wysyłana przy użyciu elementu webhook o nazwie Complete (Ukończone).If the threshold amount has been reached, send an HTTP POST using the webhook named Complete. Ta akcja spowoduje zamknięcie wszystkich pozostałych maszyn wirtualnych.This action will shut down all remaining VMs.

Następujące kroki są niezbędne do utworzenia aplikacji logiki, która będzie wykonywać powyższe czynności:The following steps are needed to create the logic app that will perform the above steps:

  1. W witrynie Azure Portal wybierz pozycję Utwórz zasób > Integracja > Aplikacja logiki.In the Azure portal, select Create a resource > Integration > Logic App.

    Azure — wybieranie zasobu Aplikacja logiki

  2. W bloku Tworzenie aplikacji logiki podaj szczegóły niezbędne do utworzenia aplikacji logiki, wybierz pozycję Przypnij do pulpitu nawigacyjnego i kliknij pozycję Utwórz.In the Create logic app blade, provide the details need to create your logic app, select Pin to dashboard, and click Create.

    Azure — Tworzenie aplikacji logiki

Gdy platforma Azure wdroży aplikację logiki, zostanie otwarty Projektant aplikacji usługi Logic Apps wyświetlający blok z wprowadzającym filmem wideo i najczęściej używanymi wyzwalaczami.After Azure deploys your logic app, the Logic Apps Designer opens and shows a blade with an introduction video and commonly used triggers.

Dodawanie wyzwalaczaAdd a trigger

Każda aplikacja logiki musi rozpoczynać się od wyzwalacza, który jest aktywowany w momencie wystąpienia konkretnego zdarzenia lub spełnienia określonego warunku.Every logic app must start with a trigger, which fires when a specific event happens or when a specific condition is met. Po każdym aktywowaniu wyzwalacza aparat usługi Logic Apps tworzy wystąpienie aplikacji logiki uruchamiającej i wykonującej przepływ pracy.Each time the trigger fires, the Logic Apps engine creates a logic app instance that starts and runs your workflow. akcje to wszystkie kroki wykonywane po aktywowaniu wyzwalacza.Actions are all the steps that happen after the trigger.

  1. W obszarze Szablony bloku Projektant aplikacji usługi Logic Apps wybierz pozycję Pusta aplikacja logiki.Under Templates of the Logic Apps Designer blade, choose Blank Logic App.

  2. Dodaj wyzwalacz, wprowadzając ciąg „Żądanie HTTP” w polu wyszukiwania Projektanta aplikacji usługi Logic Apps, aby znaleźć i wybrać wyzwalacz o nazwie Żądanie — po odebraniu żądania HTTP.Add a trigger by entering "http request" in the Logic Apps Designer search box to find and select the trigger named Request – When an HTTP request is received.

    Azure — Aplikacja logiki — Wyzwalacz HTTP

  3. Wybierz pozycję Nowy krok > Dodaj akcję.Select New step > Add an action.

    Azure — Nowy krok — Dodaj akcję

  4. Wyszukaj ciąg „Przeanalizuj kod JSON” w polu wyszukiwania Projektanta aplikacji usługi Logic Apps, aby znaleźć i wybrać akcję Operacje na danych — Przeanalizuj dane JSON.Search for "parse JSON" in the Logic Apps Designer search box to find and select the Data Operations - Parse JSON action.

    Azure — Aplikacja logiki — Dodawanie akcji analizy danych JSON

  5. Wprowadź „Ładunek” jako nazwę zawartości dla ładunku Przeanalizuj dane JSON” użyj tagu „Treść” z zawartości dynamicznej.Enter "Payload" as the Content name for the Parse JSON payload or use the "Body" tag from dynamic content.

  6. Wybierz opcję Użyj przykładowego ładunku do wygenerowania schematu w polu Przeanalizuj dane JSON.Select the Use sample payload to generate schema option in the Parse JSON box.

    Azure — Aplikacja logiki — Używanie przykładowych danych JSON w celu wygenerowania schematu

  7. Wklej następujący przykładowy ładunek JSON w polu tekstowym: {"schemaId":"AIP Budget Notification","data":{"SubscriptionName":"CCM - Microsoft Azure Enterprise - 1","SubscriptionId":"<GUID>","SpendingAmount":"100","BudgetStartDate":"6/1/2018","Budget":"50","Unit":"USD","BudgetCreator":"email@contoso.com","BudgetName":"BudgetName","BudgetType":"Cost","ResourceGroup":"","NotificationThresholdAmount":"0.8"}}Paste the following JSON sample payload into the textbox: {"schemaId":"AIP Budget Notification","data":{"SubscriptionName":"CCM - Microsoft Azure Enterprise - 1","SubscriptionId":"<GUID>","SpendingAmount":"100","BudgetStartDate":"6/1/2018","Budget":"50","Unit":"USD","BudgetCreator":"email@contoso.com","BudgetName":"BudgetName","BudgetType":"Cost","ResourceGroup":"","NotificationThresholdAmount":"0.8"}}

    Pole tekstowe będzie wyglądać następująco:The textbox will appear as the following:

    Azure — Aplikacja logiki — Przykładowy ładunek JSON

  8. Kliknij przycisk Gotowe.Click Done.

Dodawanie pierwszej akcji warunkowejAdd the first conditional action

Użycie instrukcji warunkowej w celu sprawdzenia, czy wielkość progowa osiągnęła co najmniej 80% zakresu budżetu, ale nie więcej niż 100%.Use a conditional statement to check whether the threshold amount has reached 80% or more of the budget range, but not greater than or equal to 100%. Jeśli ta wielkość progowa została osiągnięta, instrukcja HTTP POST jest wysyłana przy użyciu elementu webhook o nazwie Optional (Opcjonalne).If this threshold amount has been reached, send an HTTP POST using the webhook named Optional. Ta akcja spowoduje zamknięcie maszyn wirtualnych w grupie Opcjonalne.This action will shut down the VMs in the Optional group.

  1. Wybierz pozycję Nowy krok > Dodaj warunek.Select New step > Add a condition.

    Azure — Aplikacja logiki — Dodaj warunek

  2. W polu Warunek kliknij pole tekstowe zawierające frazę Wybierz wartość, aby wyświetlić listę dostępnych wartości.In the Condition box, click the textbox containing Choose a value to display a list of available values.

    Azure — Aplikacja logiki — pole Warunek

  3. Kliknij pozycję Wyrażenie w górnej części listy i wprowadź następujące wyrażenie w edytorze wyrażeń: float()Click Expression at the top of the list and enter the following expression in the expression editor: float()

    Azure — Aplikacja logiki — Wyrażenie float

  4. Wybierz pozycję Zawartość dynamiczna, umieść kursor wewnątrz nawiasu () i wybierz pozycję NotificationThresholdAmount z listy, aby wypełnić ukończone wyrażenie.Select Dynamic content, place the cursor inside the parenthesis (), and select NotificationThresholdAmount from the list to populate the complete expression.

    Wyrażenie będzie wyglądać następująco:The expression will be the following:
    float(body('Parse_JSON')?['data']?['NotificationThresholdAmount'])

  5. Wybierz przycisk OK, aby ustawić wyrażenie.Select OK to set the expression.

  6. Wybierz pozycję jest większe lub równe w polu listy rozwijanej Warunek.Select is greater than or equal to in the dropdown box of the Condition.

  7. W polu Wybierz wartość warunku wprowadź .8.In the Choose a value box of the condition enter .8.

    Azure — Aplikacja logiki — Wyrażenie float z wartością

  8. Kliknij pozycję Dodaj > Dodaj wiersz w polu Warunek, aby dodać dodatkową część warunku.Click Add > Add row within the Condition box to add an additional part of the condition.

  9. W polu Warunek kliknij pole tekstowe zawierające frazę Wybierz wartość.In the Condition box, click the textbox containing Choose a value.

  10. Kliknij pozycję Wyrażenie w górnej części listy i wprowadź następujące wyrażenie w edytorze wyrażeń: float()Click Expression at the top of the list and enter the following expression in the expression editor: float()

  11. Wybierz pozycję Zawartość dynamiczna, umieść kursor wewnątrz nawiasu () i wybierz pozycję NotificationThresholdAmount z listy, aby wypełnić ukończone wyrażenie.Select Dynamic content, place the cursor inside the parenthesis (), and select NotificationThresholdAmount from the list to populate the complete expression.

  12. Wybierz przycisk OK, aby ustawić wyrażenie.Select OK to set the expression.

  13. Wybierz pozycję jest mniejsze niż w polu listy rozwijanej Warunek.Select is less than in the dropdown box of the Condition.

  14. W polu Wybierz wartość warunku wprowadź 1.In the Choose a value box of the condition enter 1.

    Azure — Aplikacja logiki — Wyrażenie float z wartością

  15. W polu W przypadku wartości true wybierz pozycję Dodaj akcję.In the If true box, select Add an action. Zostanie dodana akcja HTTP POST, która spowoduje wyłączenie opcjonalnych maszyn wirtualnych.You will add an HTTP POST action that will shut down optional VMs.

    Azure — Aplikacja logiki — Dodaj akcję

  16. Wprowadź HTTP, aby wyszukać akcję HTTP, i wybierz akcję HTTP — HTTP.Enter HTTP to search for the HTTP action and select the HTTP – HTTP action.

    Azure — Aplikacja logiki — Dodaj akcję HTTP

  17. Wybierz pozycję Post jako wartość pola Metoda.Select Post as the for the Method value.

  18. Wprowadź adres URL elementu webhook o nazwie Optional (Opcjonalne), który został utworzony wcześniej w tym samouczku, jako wartość identyfikatora URI.Enter the URL for the webhook named Optional that you created earlier in this tutorial as the Uri value.

    Azure — Aplikacja logiki — Identyfikator URI akcji HTTP

  19. Wybierz pozycję Dodaj akcję w polu W przypadku wartości true.Select Add an action in the If true box. Dodasz akcję poczty e-mail, która spowoduje wysłanie wiadomości e-mail z powiadomieniem odbiorcy o wyłączeniu opcjonalnych maszyn wirtualnych.You will add an email action that will send an email notifying the recipient that the optional VMs have been shut down.

  20. Wyszukaj ciąg „wyślij wiadomość e-mail” i wybierz akcję wyślij wiadomość e-mail na podstawie używanej usługi poczty e-mail.Search for "send email" and select a send email action based on the email service you use.

    Azure — Aplikacja logiki — Akcja Wyślij wiadomość e-mail

    W przypadku osobistych kont Microsoft wybierz pozycję Outlook.com.For personal Microsoft accounts, select Outlook.com. W przypadku kont służbowych platformy Azure wybierz pozycję Office 365 Outlook.For Azure work or school accounts, select Office 365 Outlook. Jeśli nie masz jeszcze połączenia, pojawi się monit o zalogowanie się do swojego konta poczty e-mail.If you don't already have a connection, you're asked to sign in to your email account. Usługa Logic Apps utworzy połączenie z kontem e-mail.Logic Apps creates a connection to your email account.

    Musisz zezwolić aplikacji logiki na dostęp do informacji w poczcie e-mail.You will need to allow the Logic App to access your email information.

    Azure — Aplikacja logiki — Informacje o dostępie

  21. Dodaj tekst w polach Do, Temat i Treść wiadomości e-mail, która powiadamia o adresata o zamknięciu opcjonalnych maszyn wirtualnych.Add the To, Subject, and Body text for the email that notifies the recipient that the optional VMs have been shut down. Użyj nazwy BudgetName i zawartości dynamicznej NotificationThresholdAmount do wypełnienia pól tematu i treści.Use the BudgetName and the NotificationThresholdAmount dynamic content to populate the subject and body fields.

    Azure — Aplikacja logiki — Szczegóły wiadomości E-mail

Dodawanie drugiej akcji warunkowejAdd the second conditional action

Użycie instrukcji warunkowej w celu sprawdzenia, czy wielkość progu osiągnęła lub przekroczyła 100% wartości budżetu.Use a conditional statement to check whether the threshold amount has reached or exceeded 100% of the budget value. Jeśli ta wielkość progowa została osiągnięta, instrukcja HTTP POST jest wysyłana przy użyciu elementu webhook o nazwie Complete (Ukończone).If the threshold amount has been reached, send an HTTP POST using the webhook named Complete. Ta akcja spowoduje zamknięcie wszystkich pozostałych maszyn wirtualnych.This action will shut down all remaining VMs.

  1. Wybierz pozycję Nowy krok > Dodaj warunek.Select New step > Add a Condition.

    Azure — Aplikacja logiki — Dodaj akcję

  2. W polu Warunek kliknij pole tekstowe zawierające frazę Wybierz wartość, aby wyświetlić listę dostępnych wartości.In the Condition box, click the textbox containing Choose a value to display a list of available values.

  3. Kliknij pozycję Wyrażenie w górnej części listy i wprowadź następujące wyrażenie w edytorze wyrażeń: float()Click Expression at the top of the list and enter the following expression in the expression editor: float()

  4. Wybierz pozycję Zawartość dynamiczna, umieść kursor wewnątrz nawiasu () i wybierz pozycję NotificationThresholdAmount z listy, aby wypełnić ukończone wyrażenie.Select Dynamic content, place the cursor inside the parenthesis (), and select NotificationThresholdAmount from the list to populate the complete expression.

    Wyrażenie będzie wyglądać następująco:The expression will be the following:
    float(body('Parse_JSON')?['data']?['NotificationThresholdAmount'])

  5. Wybierz przycisk OK, aby ustawić wyrażenie.Select OK to set the expression.

  6. Wybierz pozycję jest większe lub równe w polu listy rozwijanej Warunek.Select is greater than or equal to in the dropdown box of the Condition.

  7. W polu Wybierz wartość warunku wprowadź 1.In the Choose a value box of the condition enter 1.

    Azure — Aplikacja logiki — Ustawianie wartości warunku

  8. W polu W przypadku wartości true wybierz pozycję Dodaj akcję.In the If true box, select Add an action. Zostanie dodana akcja HTTP POST, która spowoduje wyłączenie wszystkich pozostałych maszyn wirtualnych.You will add an HTTP POST action that will shut down all the remaining VMs.

    Azure — Aplikacja logiki — Dodaj akcję

  9. Wprowadź HTTP, aby wyszukać akcję HTTP, i wybierz akcję HTTP — HTTP.Enter HTTP to search for the HTTP action and select the HTTP – HTTP action.

  10. Wybierz pozycję Post jako wartość pola Metoda.Select Post as the for the Method value.

  11. Wprowadź adres URL elementu webhook o nazwie Complete (Ukończone), który został utworzony wcześniej w tym samouczku, jako wartość identyfikatora URI.Enter the URL for the webhook named Complete that you created earlier in this tutorial as the Uri value.

    Azure — Aplikacja logiki — Dodaj akcję

  12. Wybierz pozycję Dodaj akcję w polu W przypadku wartości true.Select Add an action in the If true box. Dodasz akcję poczty e-mail, która spowoduje wysłanie wiadomości e-mail z powiadomieniem odbiorcy o wyłączeniu pozostałych maszyn wirtualnych.You will add an email action that will send an email notifying the recipient that the remaining VMs have been shut down.

  13. Wyszukaj ciąg „wyślij wiadomość e-mail” i wybierz akcję wyślij wiadomość e-mail na podstawie używanej usługi poczty e-mail.Search for "send email" and select a send email action based on the email service you use.

  14. Dodaj tekst w polach Do, Temat i Treść wiadomości e-mail, która powiadamia o adresata o zamknięciu opcjonalnych maszyn wirtualnych.Add the To, Subject, and Body text for the email that notifies the recipient that the optional VMs have been shut down. Użyj nazwy BudgetName i zawartości dynamicznej NotificationThresholdAmount do wypełnienia pól tematu i treści.Use the BudgetName and the NotificationThresholdAmount dynamic content to populate the subject and body fields.

    Azure — Aplikacja logiki — Szczegóły wysyłanej wiadomości e-mail

  15. Kliknij przycisk Zapisz w górnej części bloku Projektant aplikacji logiki.Click Save at the top of the Logic App Designer blade.

Podsumowanie aplikacji logikiLogic App summary

Oto jak aplikacja logiki będzie wyglądać po wykonaniu wszystkich czynności.Here’s what your Logic App looks like once you’re done. W najbardziej typowych scenariuszach, w których nie jest potrzebna jakakolwiek aranżacja oparta na progach, można bezpośrednio wywołać skrypt automatyzacji z usługi Monitor i pominąć krok Aplikacja logiki.In the most basic of scenarios where you don’t need any threshold-based orchestration, you could directly call the automation script from Monitor and skip the Logic App step.

Azure — Aplikacja logiki — Kompletny widok

Po zapisaniu aplikacji logiki został wygenerowany adres URL, który będzie można wywołać.When you saved your logic app, a URL was generated that you will be able to call. Tego adresu URL będziesz potrzebować w kolejnej sekcji tego samouczka.You’ll use this URL in the next section of this tutorial.

Tworzenie grupy akcji usługi Azure MonitorCreate an Azure Monitor Action Group

Grupa akcji to kolekcja preferencji powiadomień zdefiniowanych przez użytkownika.An action group is a collection of notification preferences that you define. Po wyzwoleniu alertu określona grupa akcji może odebrać alert za pośrednictwem powiadomienia.When an alert is triggered, a specific action group can receive the alert by being notified. Alert platformy Azure aktywnie zgłasza powiadomienie na podstawie określonych warunków i zapewnia możliwość podjęcia akcji.An Azure alert proactively raises a notification based on specific conditions and provides the opportunity to take action. Alert może używać danych z wielu źródeł, m.in. metryk i dzienników.An alert can use data from multiple sources, including metrics and logs.

Grupy akcji to jedyny punkt końcowy, który zostanie zintegrowany z budżetem.Action groups are the only endpoint that you will integrate with your budget. Możesz skonfigurować powiadomienia w wielu kanałach, ale w tym scenariuszu skoncentrujesz się na aplikacji logiki utworzonej wcześniej w tym samouczku.You can set up notifications in a number of channels, but for this scenario you will focus on the Logic App you created earlier in this tutorial.

Tworzenie grupy akcji w usłudze Azure MonitorCreate an action group in Azure Monitor

Podczas tworzenia grupy akcji wskażesz aplikację logiki utworzoną wcześniej w tym samouczku.When you create the action group, you will point to the Logic App that you created earlier in this tutorial.

  1. Jeśli jeszcze nie zalogowano się do witryny Azure Portal, zaloguj się i wybierz pozycję wszystkie usługi > Monitor.If you are not already signed-in to the Azure portal, sign-in and select All services > Monitor.

  2. Wybierz pozycję Alerty, a następnie wybierz pozycję Zarządzaj akcjami.Select Alerts then select Manage actions.

  3. Wybierz pozycję Dodaj grupę akcji w bloku Grupy akcji.Select Add an action group from the Action groups blade.

  4. Dodaj i zweryfikuj następujące elementy:Add and verify the following items:

    • Nazwa grupy akcjiAction group name
    • Krótka nazwaShort name
    • SubskrypcjaSubscription
    • Grupa zasobówResource group

    Azure — Aplikacja logiki — Dodaj grupę akcji

  5. W okienku Dodaj grupę akcji dodaj akcję LogicApp.Within the Add action group pane, add a LogicApp action. Nadaj akcji nazwę Budget-BudgetLA.Name the action Budget-BudgetLA. W okienku Aplikacja logiki wybierz pozycje Subskrypcja i Grupa zasobów.In the Logic App pane, select the Subscription and the Resource group. Następnie wybierz aplikację logiki utworzoną wcześniej w tym samouczku.Then, select the Logic app that you created earlier in this tutorial.

  6. Kliknij przycisk OK, aby ustawić aplikację logiki.Click OK to set the Logic App. Następnie wybierz przycisk OK w okienku Dodaj grupę akcji, aby utworzyć grupę akcji.Then, select OK in the Add action group pane to create the action group.

Wszystkie składniki pomocnicze potrzebne do efektywnego organizowania budżetu są gotowe.You’re done with all the supporting components needed to effectively orchestrate your budget. Teraz wystarczy utworzyć budżet i skonfigurować go tak, aby korzystał z utworzonej grupy akcji.Now all you need to do is create the budget and configure it to use the action group you created.

Tworzenie budżetu platformy AzureCreate the Azure Budget

Budżet można utworzyć w witrynie Azure Portal przy użyciu funkcji budżetu w usłudze Cost Management.You can create a budget in the Azure portal using the Budget feature in Cost Management. Można też utworzyć budżet przy użyciu interfejsów API REST, poleceń cmdlet programu Powershell lub interfejsu wiersza polecenia.Or, you can create a budget using REST APIs, Powershell cmdlets, or use the CLI. Poniższa procedura używa interfejsu API REST.The following procedure uses the REST API. Przed wywołaniem interfejsu API REST będzie potrzebny token autoryzacji.Before calling the REST API, you will need an authorization token. Aby utworzyć token autoryzacji, możesz użyć projektu ARMClient.To create an authorization token, you can use the ARMClient project. Projekt ARMClient umożliwia samodzielne uwierzytelnianie w usłudze Azure Resource Manager i pobieranie tokenu na potrzeby wywoływania interfejsów API.The ARMClient allows you to authenticate yourself to the Azure Resource Manager and get a token to call the APIs.

Tworzenie tokenu uwierzytelnianiaCreate an authentication token

  1. Przejdź do projektu ARMClient w witrynie GitHub.Navigate to the ARMClient project on GitHub.

  2. Sklonuj repozytorium, aby uzyskać kopię lokalną.Clone the repo to get a local copy.

  3. Otwórz projekt w programie Visual Studio i skompiluj go.Open the project in Visual Studio and build it.

  4. Gdy kompilacja zakończy się pomyślnie, plik wykonywalny powinien znajdować się w folderze \bin\debug.Once the build is successful, the executable should be in the \bin\debug folder.

  5. Uruchom projekt ARMClient.Run the ARMClient. Otwórz wiersz polecenia i przejdź do folderu \bin\debug w katalogu głównym projektu.Open a command prompt and navigate to the \bin\debug folder from the project root.

  6. Aby zalogować i uwierzytelnić się, wprowadź następujące polecenie w wierszu polecenia:To login and authenticate, enter the following command at the command prompt:
    ARMClient login prod

  7. Skopiuj identyfikator GUID subskrypcji z danych wyjściowych.Copy the subscription guid from the output.

  8. Aby skopiować token autoryzacji do schowka, wprowadź następujące polecenie w wierszu polecenia, ale pamiętaj, aby użyć skopiowanego identyfikatora subskrypcji z powyższego kroku:To copy an authorization token to your clipboard, enter the following command at the command prompt, but sure to use the copied subscription ID from the step above:
    ARMClient token <subscription GUID from previous step>

    Po ukończeniu powyższego kroku zobaczysz następujący komunikat:Once you have completed the step above, you will see the following:
    Token został pomyślnie skopiowany do schowka.Token copied to clipboard successfully.

  9. Zapisz token, który ma być używany na potrzeby kroków w następnej sekcji tego samouczka.Save the token to be used for steps in the next section of this tutorial.

Tworzenie budżetuCreate the Budget

Następnie skonfigurujesz rozwiązanie Postman w celu tworzenia budżetu, wywołując interfejsy API REST użycia platformy Azure.Next, you will configure Postman to create a budget by calling the Azure Consumption REST APIs. Postman to środowisko deweloperskie interfejsu API.Postman is an API Development environment. Pliki środowiska i kolekcji zostaną zaimportowane do rozwiązania Postman.You will import environment and collection files into Postman. Kolekcja zawiera zgrupowane definicje żądań HTTP, które wywołują interfejsy API REST użycia platformy Azure.The collection contains grouped definitions of HTTP requests that call Azure Consumption REST APIs. Plik środowiska zawiera zmienne, które są używane przez kolekcję.The environment file contains variables that are used by the collection.

  1. Pobierz i otwórz klienta REST rozwiązania Postman w celu wykonania interfejsów API REST.Download and open the Postman REST client to execute the REST APIs.

  2. W środowisku Postman utwórz nowe żądanie.In Postman, create a new request.

    Postman — Tworzenie nowego żądania

  3. Zapisz nowe żądanie jako kolekcję, tak aby nie zawierało żadnych danych.Save the new request as a collection, so that the new request has nothing on it.

    Postman — Zapisywanie nowego żądania

  4. Zmień żądanie z Get na akcję Put.Change the request from a Get to a Put action.

  5. Zmodyfikuj następujący adres URL, zastępując element {subscriptionId} identyfikatorem subskrypcji użytym w poprzedniej sekcji tego samouczka.Modify the following URL by replacing {subscriptionId} with the Subscription ID that you used in the previous section of this tutorial. Ponadto zmodyfikuj adres URL, tak aby zawierał wartość „SampleBudget” jako wartość elementu {budgetName}: https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Consumption/budgets/{budgetName}?api-version=2018-03-31Also, modify the URL to include "SampleBudget" as the value for {budgetName}: https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Consumption/budgets/{budgetName}?api-version=2018-03-31

  6. Wybierz kartę Headers (Nagłówki) w narzędziu Postman.Select the Headers tab within Postman.

  7. Dodaj nowy klucz o nazwie „Authorization” (Autoryzacja).Add a new Key named "Authorization".

  8. Ustaw wartość na token, który został utworzony przy użyciu projektu ArmClient na końcu ostatniej sekcji.Set the Value to the token that was created using the ArmClient at the end of the last section.

  9. Wybierz kartę Body (Treść) w narzędziu Postman.Select Body tab within Postman.

  10. Wybierz opcję przycisku raw.Select the raw button option.

  11. W polu tekstowym wklej poniższą przykładową definicję budżetu. Musisz zastąpić parametry subscriptionid, budgetname i actiongroupname identyfikatorem subskrypcji, unikatową nazwą budżetu i nazwą grupy akcji, które zostały utworzone zarówno w adresie URL, jak i w treści żądania:In the textbox, paste in the below sample budget definition, however you must replace the subscriptionid, budgetname, and actiongroupname parameters with your subscription ID, a unique name for your budget, and the action group name you created in both the URL and the request body:

        {
            "properties": {
                "category": "Cost",
                "amount": 100.00,
                "timeGrain": "Monthly",
                "timePeriod": {
                "startDate": "2018-06-01T00:00:00Z",
                "endDate": "2018-10-31T00:00:00Z"
                },
                "filters": {
                },
            "notifications": {
                "Actual_GreaterThan_80_Percent": {
                    "enabled": true,
                    "operator": "GreaterThan",
                    "threshold": 80,
                    "contactEmails": [
                    ],
                    "contactRoles": [
                    ],
                    "contactGroups": [
                    "/subscriptions/{subscriptionid}/resourceGroups/{resourcegroupname}/providers/microsoft.insights/actionGroups/{actiongroupname}
                    ]
                },
            "Actual_EqualTo_100_Percent": {
                    "operator": "EqualTo",
                    "threshold": 100,
                    "contactGroups": [
                "/subscriptions/{subscriptionid}/resourceGroups/{resourcegroupname}/providers/microsoft.insights/actionGroups/{actiongroupname}"
                    ]
                }
            }
        }
    
  12. Naciśnij przycisk Send (Wyślij), aby wysłać żądanie.Press Send to send the request.

Masz teraz wszystkie elementy potrzebne do wywołania interfejsu API budżetów.You now have all the pieces you need to call the budgets API. Dokumentacja interfejsu API budżetów zawiera dodatkowe szczegóły dotyczące konkretnych żądań, w tym:The budgets API reference has additional details on the specific requests, including the following: - budgetName — można obsługiwać wiele budżetów.budgetName - Multiple budgets are supported. Nazwy budżetów muszą być unikatowe.Budget names must be unique. - category — musi mieć wartość Cost (Koszt) lub Usage (Użycie).category - Must be either Cost or Usage. Interfejs API obsługuje zarówno budżety kosztów, jak i użycia.The API supports both cost and usage budgets. - timeGrain — budżet miesięczny, kwartalny lub roczny.timeGrain - A monthly, quarterly, or yearly budget. Kwota jest resetowana na końcu okresu.The amount resets at the end of the period. - filters — filtry umożliwiają zawężenie budżetu do określonego zestawu zasobów w ramach wybranego zakresu.filters - Filters allow you to narrow the budget to a specific set of resources within the selected scope. Filtr może być na przykład kolekcją grup zasobów dla budżetu na poziomie subskrypcji.For example, a filter could be a collection of resource groups for a subscription level budget. - notifications — określa szczegóły i progi powiadomień.notifications – Determines the notification details and thresholds. Można skonfigurować wiele progów i podać adres e-mail lub grupę akcji, aby otrzymać powiadomienie.You can set up multiple thresholds and provide an email address or an action group to receive a notification.

PodsumowanieSummary

Po wykonaniu czynności z tego samouczka wiesz:By following this tutorial, you learned:

  • Jak utworzyć element runbook usługi Azure Automation w celu zatrzymywania maszyn wirtualnych.How to create an Azure Automation Runbook to stop VMs.
  • Jak utworzyć aplikację logiki platformy Azure, która ma być wyzwalana na podstawie wartości progu budżetu, i wywoływać element runbook z właściwymi parametrami.How to create an Azure Logic App that is triggered based on the budget threshold values and call the related runbook with the right parameters.
  • Jak utworzyć grupę akcji usługi Azure Monitor, która zostanie skonfigurowana do wyzwalania aplikacji logiki platformy Azure po osiągnięciu progu budżetu.How to create an Azure Monitor Action Group that will was configured to trigger the Azure Logic App when the budget threshold is met.
  • Jak utworzyć budżet platformy Azure z żądanymi progami i połączyć go z grupą akcji.How to create the Azure budget with the desired thresholds and wire it to the action group.

Masz teraz w pełni funkcjonalny budżet dla subskrypcji, który spowoduje wyłączenie maszyn wirtualnych po osiągnięciu skonfigurowanych progów budżetu.You now have a fully functional budget for your subscription that will shut down your VMs when you reach your configured budget thresholds.

Następne krokiNext steps