Sdílet prostřednictvím


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

Rozpočty ve službě Cost Management pomáhají plánovat a řídit odpovědnost v organizaci. 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 smlouva Enterprise
    • Fakturační účet
    • Oddělení
    • Registrační účet
  • Jednotlivé smlouvy
    • Fakturační účet
  • rozsahy Smlouva se zákazníkem Microsoftu
    • Fakturační účet
    • Fakturační profil
    • Oddíl faktury
    • Zákazník
  • Obory AWS
    • Externí účet
    • Externí předplatné

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.

Pro rozpočty se podporují následující oprávnění nebo obory Azure pro předplatná podle uživatelů a skupin. 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 čtenář služby Cost Management: může zobrazovat rozpočty, ke kterým má oprávnění.

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

Kontrola souboru Bicep

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

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 definovaný 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í měsíc 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. V časovém intervalu by mělo být vybráno datum posledního zahájení.
    • endDate: Datum ukončení> nahraďte <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

Kontrola souboru Bicep

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

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 definovaný 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í měsíc 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. V časovém intervalu by mělo být vybráno datum posledního zahájení.
    • endDate: Datum ukončení> nahraďte <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 filtr 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ů

Kontrola souboru Bicep

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

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 definovaný 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í měsíc 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. V časovém intervalu by mělo být vybráno datum posledního zahájení.
    • endDate: Datum ukončení> nahraďte <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 předat ID prostředku skupiny akcí, které můžete získat pomocí příkazu 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 filtr 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

Vyčiště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 rychlém startu jste vytvořili rozpočet a nasadili ho pomocí Bicep. Další informace o službě Cost Management a fakturaci a Bicep najdete v následujících článcích.