Sdílet prostřednictvím


Rychlý start: Vytvoření rozpočtu pomocí Bicep

Rozpočty ve službě Správa nákladů vám pomohou plánovat a řídit odpovědnost v rámci organizace. Pomocí rozpočtů můžete zodpovídat za služby Azure, které využíváte nebo k jejichž odběru jste po určitou dobu přihlášení. Pomáhají vám informovat ostatní o svých útratách, aby mohli aktivně spravovat náklady a sledovat, jak výdaje v průběhu času probíhají. Při překročení vámi vytvořených prahových hodnot rozpočtu se aktivují oznámení. Žádný z vašich prostředků není ovlivněný a vaše spotřeba není zastavena. Rozpočty můžete použít k porovnání a sledování výdajů při analýze nákladů. V tomto rychlém startu se dozvíte, jak vytvořit rozpočet s názvem MyBudget pomocí Bicep.

Bicep je jazyk specifický pro doménu (DSL), který k nasazování prostředků Azure používá deklarativní syntaxi. Poskytuje stručnou syntaxi, spolehlivou bezpečnost typů a podporu pro opakované použití kódu. Bicep nabízí nejlepší prostředí pro vytváření obsahu pro řešení infrastruktury jako kódu v Azure.

Požadavky

Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.

Pokud máte nové předplatné, nemůžete rovnou vytvořit rozpočet ani využívat další funkce služby Cost Management. Může trvat až 48 hodin, než budete moct využívat všechny funkce služby Cost Management.

Rozpočty se podporují pro následující typy rozsahů a účtů Azure:

  • Rozsahy řízení přístupu na základě role v Azure (Azure RBAC)
    • Skupiny pro správu
    • Předplatné
  • Rozsahy smlouvy „Enterprise Agreement“
    • Fakturační účet
    • Oddělení
    • Registrační účet
  • Jednotlivé smlouvy
    • Fakturační účet
  • Rozsahy smlouvy společnosti Microsoft se zákazníkem
    • Fakturační účet
    • Fakturační profil
    • Oddíl faktury
    • Zákazník

Pokud chcete zobrazit rozpočty, potřebujete přinejmenším oprávnění ke čtení k vašemu účtu Azure.

Pokud máte předplatná Azure EA, musíte mít oprávnění ke čtení, abyste si mohli rozpočty zobrazit. Chcete-li rozpočty vytvářet a spravovat, musíte mít oprávnění přispěvatele.

Podle uživatelů a skupin se pro rozpočty na předplatná podporují následující oprávnění nebo scopy Azure. Další informace o oborech najdete v tématu Principy oborů a práce s nimi.

  • Vlastník: Smí v předplatném vytvářet, upravovat a odstraňovat rozpočty.
  • Přispěvatel a přispěvatel služby Cost Management: Smí vytvářet, upravovat a odstraňovat vlastní rozpočty. Může měnit částky rozpočtu pro rozpočty, které vytvářejí jiní uživatelé.
  • Čtenář a uživatel služby Cost Management: může zobrazit rozpočty, k nimž má přístup.

Další informace o přiřazování oprávnění k datům služby Cost Management najdete v tématu Přiřazení přístupu k datům služby Cost Management.

Žádný filtr

Prohlédnout si soubor Bicep

Soubor Bicep použitý v tomto rychlém startu pochází ze šablony Azure Quickstart.

targetScope = 'subscription'

@description('Name of the Budget. It should be unique within a resource group.')
param budgetName string = 'MyBudget'

@description('The total amount of cost or usage to track with the budget')
param amount int = 1000

@description('The time covered by a budget. Tracking of the amount will be reset based on the time grain.')
@allowed([
  'Monthly'
  'Quarterly'
  'Annually'
])
param timeGrain string = 'Monthly'

@description('The start date must be first of the month in YYYY-MM-DD format. Future start date should not be more than three months. Past start date should be selected within the timegrain preiod.')
param startDate string

@description('The end date for the budget in YYYY-MM-DD format. If not provided, we default this to 10 years from the start date.')
param endDate string

@description('Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0.01 and 1000.')
param firstThreshold int = 90

@description('Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0.01 and 1000.')
param secondThreshold int = 110

@description('The list of email addresses to send the budget notification to when the threshold is exceeded.')
param contactEmails array

resource budget 'Microsoft.Consumption/budgets@2023-11-01' = {
  name: budgetName
  properties: {
    timePeriod: {
      startDate: startDate
      endDate: endDate
    }
    timeGrain: timeGrain
    amount: amount
    category: 'Cost'
    notifications: {
      NotificationForExceededBudget1: {
        enabled: true
        operator: 'GreaterThan'
        threshold: firstThreshold
        contactEmails: contactEmails
      }
      NotificationForExceededBudget2: {
        enabled: true
        operator: 'GreaterThan'
        threshold: secondThreshold
        contactEmails: contactEmails
      }
    }
  }
}

output name string = budget.name
output resourceId string = budget.id

Jeden prostředek Azure je definován v souboru Bicep.

Nasazení souboru Bicep

  1. Uložte soubor Bicep jako main.bicep do místního počítače.

  2. Nasaďte soubor Bicep pomocí Azure CLI nebo Azure PowerShellu.

    myContactEmails ='("user1@contoso.com", "user2@contoso.com")'
    
    az deployment sub create --name demoSubDeployment --location centralus --template-file main.bicep --parameters startDate=<start-date> endDate=<end-date> contactEmails=$myContactEmails
    

    Musíte zadat následující parametry:

    • startDate: Nahraďte< počáteční datum> počátečním datem. Musí to být první den měsíce ve formátu RRRR-MM-DD. Budoucí počáteční datum by nemělo být v budoucnu delší než tři měsíce. Datum minulé zahájení by mělo být vybráno v časovém období.
    • endDate: Datum ukončení<>koncovým datem ve formátu RRRR-MM-DD. Pokud není zadaný, výchozí hodnota je deset let od data zahájení.
    • contactEmails: Nejprve vytvořte proměnnou, která obsahuje vaše e-maily, a pak ji předejte. Nahraďte ukázkové e-maily e-mailovými adresami, které po překročení prahové hodnoty odešlou oznámení o rozpočtu.

    Poznámka:

    Po dokončení nasazení by se měla zobrazit zpráva, že nasazení bylo úspěšné.

Jeden filtr

Prohlédnout si soubor Bicep

Soubor Bicep použitý v tomto rychlém startu pochází ze šablony Azure Quickstart.

targetScope = 'subscription'

@description('Name of the Budget. It should be unique within a resource group.')
param budgetName string = 'MyBudget'

@description('The total amount of cost or usage to track with the budget')
param amount int = 1000

@description('The time covered by a budget. Tracking of the amount will be reset based on the time grain.')
@allowed([
  'Monthly'
  'Quarterly'
  'Annually'
])
param timeGrain string = 'Monthly'

@description('The start date must be first of the month in YYYY-MM-DD format. Future start date should not be more than three months. Past start date should be selected within the timegrain preiod.')
param startDate string

@description('The end date for the budget in YYYY-MM-DD format. If not provided, we default this to 10 years from the start date.')
param endDate string

@description('Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0.01 and 1000.')
param firstThreshold int = 90

@description('Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0.01 and 1000.')
param secondThreshold int = 110

@description('The list of email addresses to send the budget notification to when the threshold is exceeded.')
param contactEmails array

@description('The set of values for the resource group filter.')
param resourceGroupFilterValues array

resource budget 'Microsoft.Consumption/budgets@2021-10-01' = {
  name: budgetName
  properties: {
    timePeriod: {
      startDate: startDate
      endDate: endDate
    }
    timeGrain: timeGrain
    amount: amount
    category: 'Cost'
    notifications: {
      NotificationForExceededBudget1: {
        enabled: true
        operator: 'GreaterThan'
        threshold: firstThreshold
        contactEmails: contactEmails
      }
      NotificationForExceededBudget2: {
        enabled: true
        operator: 'GreaterThan'
        threshold: secondThreshold
        contactEmails: contactEmails
      }
    }
    filter: {
      dimensions: {
        name: 'ResourceGroupName'
        operator: 'In'
        values: resourceGroupFilterValues
      }
    }
  }
}

Jeden prostředek Azure je definován v souboru Bicep.

Nasazení souboru Bicep

  1. Uložte soubor Bicep jako main.bicep do místního počítače.

  2. Nasaďte soubor Bicep pomocí Azure CLI nebo Azure PowerShellu.

    myContactEmails ='("user1@contoso.com", "user2@contoso.com")'
    myRgFilterValues ='("resource-group-01", "resource-group-02")'
    
    az deployment sub create --name demoSubDeployment --location centralus --template-file main.bicep --parameters startDate=<start-date> endDate=<end-date> contactEmails=$myContactEmails resourceGroupFilterValues=$myRgFilterValues
    

    Musíte zadat následující parametry:

    • startDate: Nahraďte< počáteční datum> počátečním datem. Musí to být první den měsíce ve formátu RRRR-MM-DD. Budoucí počáteční datum by nemělo být v budoucnu delší než tři měsíce. Datum minulé zahájení by mělo být vybráno v časovém období.
    • endDate: Datum ukončení<>koncovým datem ve formátu RRRR-MM-DD. Pokud není zadaný, výchozí hodnota je deset let od data zahájení.
    • contactEmails: Nejprve vytvořte proměnnou, která obsahuje vaše e-maily, a pak ji předejte. Nahraďte ukázkové e-maily e-mailovými adresami, které po překročení prahové hodnoty odešlou oznámení o rozpočtu.
    • resourceGroupFilterValues Nejprve vytvořte proměnnou, která obsahuje hodnoty filtru skupiny prostředků a pak předejte danou proměnnou. Nahraďte ukázkové hodnoty filtru sadou hodnot pro filtrování vaší skupiny prostředků.

    Poznámka:

    Po dokončení nasazení by se měla zobrazit zpráva, že nasazení bylo úspěšné.

Dva nebo více filtrů

Prohlédnout si soubor Bicep

Soubor Bicep použitý v tomto rychlém startu pochází ze šablony Azure Quickstart.

targetScope = 'subscription'

@description('Name of the Budget. It should be unique within a resource group.')
param budgetName string = 'MyBudget'

@description('The total amount of cost or usage to track with the budget')
param amount int = 1000

@description('The time covered by a budget. Tracking of the amount will be reset based on the time grain.')
@allowed([
  'Monthly'
  'Quarterly'
  'Annually'
])
param timeGrain string = 'Monthly'

@description('The start date must be first of the month in YYYY-MM-DD format. Future start date should not be more than three months. Past start date should be selected within the timegrain preiod.')
param startDate string

@description('The end date for the budget in YYYY-MM-DD format. If not provided, we default this to 10 years from the start date.')
param endDate string

@description('Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0.01 and 1000.')
param firstThreshold int = 90

@description('Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0.01 and 1000.')
param secondThreshold int = 110

@description('The list of contact roles to send the budget notification to when the threshold is exceeded.')
param contactRoles array = [
  'Owner'
  'Contributor'
  'Reader'
]

@description('The list of email addresses to send the budget notification to when the threshold is exceeded.')
param contactEmails array

@description('The list of action groups to send the budget notification to when the threshold is exceeded. It accepts array of strings.')
param contactGroups array

@description('The set of values for the resource group filter.')
param resourceGroupFilterValues array

@description('The set of values for the meter category filter.')
param meterCategoryFilterValues array

resource budget 'Microsoft.Consumption/budgets@2021-10-01' = {
  name: budgetName
  properties: {
    timePeriod: {
      startDate: startDate
      endDate: endDate
    }
    timeGrain: timeGrain
    amount: amount
    category: 'Cost'
    notifications: {
      NotificationForExceededBudget1: {
        enabled: true
        operator: 'GreaterThan'
        threshold: firstThreshold
        contactEmails: contactEmails
        contactRoles: contactRoles
        contactGroups: contactGroups
      }
      NotificationForExceededBudget2: {
        enabled: true
        operator: 'GreaterThan'
        threshold: secondThreshold
        contactEmails: contactEmails
        contactRoles: contactRoles
        contactGroups: contactGroups
        thresholdType: 'Forecasted'
      }
    }
    filter: {
      and: [
        {
          dimensions: {
            name: 'ResourceGroupName'
            operator: 'In'
            values: resourceGroupFilterValues
          }
        }
        {
          dimensions: {
            name: 'MeterCategory'
            operator: 'In'
            values: meterCategoryFilterValues
          }
        }
      ]
    }
  }
}

Jeden prostředek Azure je definován v souboru Bicep.

Nasazení souboru Bicep

  1. Uložte soubor Bicep jako main.bicep do místního počítače.

  2. Nasaďte soubor Bicep pomocí Azure CLI nebo Azure PowerShellu.

    myContactEmails ='("user1@contoso.com", "user2@contoso.com")'
    myContactGroups ='("/subscriptions/{sub-id}/resourceGroups/{rg-name}/providers/microsoft.insights/actionGroups/groupone", "/subscriptions/{sub-id}/resourceGroups/{rg-name}/providers/microsoft.insights/actionGroups/grouptwo")'
    myRgFilterValues ='("resource-group-01", "resource-group-02")'
    myMeterCategoryFilterValues ='("meter-category-01", "meter-category-02")'
    
    az deployment sub create --name demoSubDeployment --location centralus --template-file main.bicep --parameters startDate=<start-date> endDate=<end-date> contactEmails=$myContactEmails contactGroups=$myContactGroups resourceGroupFilterValues=$myRgFilterValues meterCategoryFilterValues=$myMeterCategoryFilterValues
    

    Musíte zadat následující parametry:

    • startDate: Nahraďte< počáteční datum> počátečním datem. Musí to být první den měsíce ve formátu RRRR-MM-DD. Budoucí počáteční datum by nemělo být v budoucnu delší než tři měsíce. Datum minulé zahájení by mělo být vybráno v časovém období.
    • endDate: Datum ukončení<>koncovým datem ve formátu RRRR-MM-DD. Pokud není zadaný, výchozí hodnota je deset let od data zahájení.
    • contactEmails: Nejprve vytvořte proměnnou, která obsahuje vaše e-maily, a pak ji předejte. Nahraďte ukázkové e-maily e-mailovými adresami, které po překročení prahové hodnoty odešlou oznámení o rozpočtu.
    • contactGroups: Nejprve vytvořte proměnnou, která obsahuje vaše skupiny kontaktů, a pak předejte danou proměnnou. Nahraďte ukázkové skupiny kontaktů seznamem skupin akcí, do které se má odeslat oznámení o rozpočtu při překročení prahové hodnoty. Musíte zadat ID prostředku skupiny akcí, které získáte příkazem az monitor action-group show nebo Get-AzActionGroup.
    • resourceGroupFilterValues: Nejprve vytvořte proměnnou, která obsahuje hodnoty filtru skupiny prostředků, a pak předejte danou proměnnou. Nahraďte ukázkové hodnoty filtru sadou hodnot pro filtrování vaší skupiny prostředků.
    • meterCategoryFilterValues: Nejprve vytvořte proměnnou, která obsahuje hodnoty filtru kategorií měřiče, a pak předejte danou proměnnou. Nahraďte ukázkové hodnoty filtru v závorkách sadou hodnot pro filtr kategorií měřiče.

    Poznámka:

    Po dokončení nasazení by se měla zobrazit zpráva, že nasazení bylo úspěšné.

Kontrola nasazených prostředků

Pomocí webu Azure Portal, Azure CLI nebo Azure PowerShellu můžete zobrazit seznam nasazených prostředků ve skupině prostředků.

az consumption budget list

Uvolnění prostředků

Pokud už rozpočet nepotřebujete, odstraňte ho pomocí webu Azure Portal, Azure CLI nebo Azure PowerShellu:

az consumption budget delete --budget-name MyBudget

Další kroky

V tomto stručném úvodu jste vytvořili rozpočet a nasadili ho pomocí Bicep. Další informace o Bicep, Cost Management a fakturaci najdete v následujících článcích.