CAFfe Zeit

Alles rund um das Microsoft Cloud Adoption Framework.
de en

Bicep Modul für einen Anomalie Alert

2023-05-05 Niels Ophey

In unserem CAF Landing Zone Starter Kit fehlte bis dato die Implementierung des Anomalie Alerts auf der Subscription. Dies ist fast fertig gestellt. Vorab hier eine mögliche Implementierung des Anomaly Alerts als Bicep Modul.

Anomalie Alert Bicep

targetScope = 'subscription'

@description('Name of the Anomaly Alert')
param aaName string = 'myAnomalyAlert'

@description('Display Name of the Anomaly Alert')
param aaDisplayName string = 'Anomaly Alert'

@description('Subject of the Anomaly Alert email notification')
param aaNotificationSubject string = 'Anomaly Alert detected for your Subscription'

@description('Email address to send the Anomaly Alert notification to')
param aaNotificationTo string 

@description('Message of the Anomaly Alert email notification')
param aaNotificationMessage string = 'The Anomaly Alert has been triggered for your Subscription ${subscription().subscriptionId}. Please check the Cost Management Dashboard for more details.'

@description('Start date of the Anomaly Alert (default: now)')
param aaStartDate string = utcNow('u')

@description('End date of the Anomaly Alert (default: 1 year from now)')
param aaEndDate string = dateTimeAdd(utcNow('u'), 'P1Y')

// The kind of the Anomaly Alert must be 'InsightAlert'
var aaKind = 'InsightAlert'

resource myAnomalyAlert 'Microsoft.CostManagement/scheduledActions@2022-10-01' = {
  name: aaName
  kind: aaKind
  properties: {
    displayName: aaDisplayName
    scope: '/subscriptions/${subscription().subscriptionId}'
    notification: {
      subject: aaNotificationSubject
      to: [
        aaNotificationTo
      ]
      message: aaNotificationMessage
    }
    status: 'Enabled'
    viewId:  resourceId('Microsoft.CostManagement/views/','ms:DailyAnomalyByResourceGroup')
    schedule: {
      endDate: aaEndDate
      frequency: 'Daily'
      startDate: aaStartDate
    }
  }
}

Deployment des Moduls

Das Modul kann über die Azure CLI angewendet werden. Wichtig ist nur, vorher zu prüfen das man in der richtigen Subscription ist. Dann ist das Anwenden recht einfach:

az deployment sub create --name aaDeplyoment01 --location westeurope --template-file .\main.bicep

Das Deployment fragt dann die eMail Adresse ab und setzt den Anomalie Alert.

Microsoft Learn - Anomaly Alert

Microsoft Learn - Microsoft.CostManagement/scheduledActions API