Usare le azioni di scalabilità automatica per inviare notifiche di avviso di webhook e posta elettronica in Monitoraggio di AzureUse autoscale actions to send email and webhook alert notifications in Azure Monitor

Questo articolo illustra come configurare i trigger per poter chiamare URL Web specifici o inviare messaggi di posta elettronica in base alle azioni di scalabilità automatica in Azure.This article shows you how set up triggers so that you can call specific web URLs or send emails based on autoscale actions in Azure.

WebhookWebhooks

I webhook consentono di instradare le notifiche di avviso di Azure ad altri sistemi per la post-elaborazione o le notifiche personalizzate.Webhooks allow you to route the Azure alert notifications to other systems for post-processing or custom notifications. È possibile, ad esempio, eseguire il routing degli avvisi a servizi che possono gestire una richiesta Web in ingresso per inviare SMS, registrare bug, inviare notifiche a un team usando servizi di messaggistica o chat e così via. L'URI del webhook deve essere un endpoint HTTP o HTTPS valido.For example, routing the alert to services that can handle an incoming web request to send SMS, log bugs, notify a team using chat or messaging services, etc. The webhook URI must be a valid HTTP or HTTPS endpoint.

EmailEmail

È possibile inviare un messaggio di posta elettronica a qualsiasi indirizzo di posta elettronica valido.Email can be sent to any valid email address. Verrà inviata una notifica anche agli amministratori e ai coamministratori della sottoscrizione in cui viene eseguita la regola.Administrators and co-administrators of the subscription where the rule is running will also be notified.

Servizi cloud e app WebCloud Services and Web Apps

È possibile acconsentire esplicitamente dal portale di Azure ai servizi cloud e alle server farm (app Web).You can opt-in from the Azure portal for Cloud Services and Server Farms (Web Apps).

  • Scegliere la metrica Ridimensiona di .Choose the scale by metric.

Ridimensiona di

Set di scalabilità di macchine virtualiVirtual Machine scale sets

Per le macchine virtuali più recenti create con Resource Manager (set di scalabilità di macchine virtuali), è possibile configurare questa opzione tramite l'API REST, i modelli di Resource Manager, PowerShell e l'interfaccia della riga di comando.For newer Virtual Machines created with Resource Manager (Virtual Machine scale sets), you can configure this using REST API, Resource Manager templates, PowerShell, and CLI. Un'interfaccia del portale non è ancora disponibile.A portal interface is not yet available. Quando si usa l'API REST o il modello di Resource Manager, includere l'elemento Notifiche con le opzioni seguenti.When using the REST API or Resource Manager template, include the notifications element with the following options.

"notifications": [
      {
        "operation": "Scale",
        "email": {
          "sendToSubscriptionAdministrator": false,
          "sendToSubscriptionCoAdministrators": false,
          "customEmails": [
              "user1@mycompany.com",
              "user2@mycompany.com"
              ]
        },
        "webhooks": [
          {
            "serviceUri": "https://foo.webhook.example.com?token=abcd1234",
            "properties": {
              "optional_key1": "optional_value1",
              "optional_key2": "optional_value2"
            }
          }
        ]
      }
    ]
CampoField Obbligatorio?Mandatory? DescrizioneDescription
operationoperation yes Il valore deve essere "Scale"value must be "Scale"
sendToSubscriptionAdministratorsendToSubscriptionAdministrator yes Il valore deve essere "true" o "false"value must be "true" or "false"
sendToSubscriptionCoAdministratorssendToSubscriptionCoAdministrators yes Il valore deve essere "true" o "false"value must be "true" or "false"
customEmailscustomEmails yes Il valore può essere null [] o la matrice di stringhe di messaggi di posta elettronicavalue can be null [] or string array of emails
Webhookwebhooks yes Il valore può essere null o un URI validovalue can be null or valid Uri
serviceUriserviceUri yes Un URI HTTPS validoa valid https Uri
propertiesproperties yes Il valore deve essere vuoto {} o può contenere coppie chiave-valorevalue must be empty {} or can contain key-value pairs

Autenticazione nei webhookAuthentication in webhooks

È possibile autenticare il webhook usando l'autenticazione basata su token, che prevede il salvataggio dell'URI del webhook con un ID token come parametro di query.The webhook can authenticate using token-based authentication, where you save the webhook URI with a token ID as a query parameter. Ad esempio, https://mysamplealert/webcallback?tokenid=sometokenid&someparameter=somevalueFor example, https://mysamplealert/webcallback?tokenid=sometokenid&someparameter=somevalue

Schema di payload del webhook di notifica di scalabilità automaticaAutoscale notification webhook payload schema

Quando viene generata la notifica di scalabilità automatica, nel payload del webhook vengono inclusi i metadati seguenti:When the autoscale notification is generated, the following metadata is included in the webhook payload:

{
        "version": "1.0",
        "status": "Activated",
        "operation": "Scale In",
        "context": {
                "timestamp": "2016-03-11T07:31:04.5834118Z",
                "id": "/subscriptions/s1/resourceGroups/rg1/providers/microsoft.insights/autoscalesettings/myautoscaleSetting",
                "name": "myautoscaleSetting",
                "details": "Autoscale successfully started scale operation for resource 'MyCSRole' from capacity '3' to capacity '2'",
                "subscriptionId": "s1",
                "resourceGroupName": "rg1",
                "resourceName": "MyCSRole",
                "resourceType": "microsoft.classiccompute/domainnames/slots/roles",
                "resourceId": "/subscriptions/s1/resourceGroups/rg1/providers/microsoft.classicCompute/domainNames/myCloudService/slots/Production/roles/MyCSRole",
                "portalLink": "https://portal.azure.com/#resource/subscriptions/s1/resourceGroups/rg1/providers/microsoft.classicCompute/domainNames/myCloudService",
                "oldCapacity": "3",
                "newCapacity": "2"
        },
        "properties": {
                "key1": "value1",
                "key2": "value2"
        }
}
CampoField Obbligatorio?Mandatory? DescrizioneDescription
statusstatus yes Stato che indica che è stata generata un'azione di scalabilità automaticaThe status that indicates that an autoscale action was generated
operationoperation yes Per un aumento delle istanze, sarà "Scale Out", mentre per una riduzione delle istanze, sarà "Scale In"For an increase of instances, it will be "Scale Out" and for a decrease in instances, it will be "Scale In"
contextcontext yes Contesto dell'azione di scalabilità automaticaThe autoscale action context
timestamptimestamp yes Timestamp in cui è stata attivata l'azione di scalabilità automaticaTime stamp when the autoscale action was triggered
idid Yes ID di Resource Manager dell'impostazione di scalabilità automaticaResource Manager ID of the autoscale setting
namename Yes Nome dell'impostazione di scalabilità automaticaThe name of the autoscale setting
informazioni dettagliatedetails Yes Spiegazione dell'azione eseguita dal servizio di scalabilità automatica e della modifica al conteggio delle istanzeExplanation of the action that the autoscale service took and the change in the instance count
subscriptionIdsubscriptionId Yes ID sottoscrizione della risorsa di destinazione da ridimensionareSubscription ID of the target resource that is being scaled
resourceGroupNameresourceGroupName Yes Nome del gruppo di risorse della risorsa di destinazione da ridimensionareResource Group name of the target resource that is being scaled
resourceNameresourceName Yes Nome della risorsa di destinazione da ridimensionareName of the target resource that is being scaled
resourceTyperesourceType Yes I tre valori supportati: "microsoft.classiccompute/domainnames/slots/roles" (ruoli dei servizi cloud), "microsoft.compute/virtualmachinescalesets" (set di scalabilità di macchine virtuali) e "Microsoft.Web/serverfarms" (app Web)The three supported values: "microsoft.classiccompute/domainnames/slots/roles" - Cloud Service roles, "microsoft.compute/virtualmachinescalesets" - Virtual Machine Scale Sets, and "Microsoft.Web/serverfarms" - Web App
resourceIdresourceId Yes ID di Resource Manager della risorsa di destinazione da ridimensionareResource Manager ID of the target resource that is being scaled
portalLinkportalLink Yes Collegamento del portale di Azure alla pagina di riepilogo della risorsa di destinazioneAzure portal link to the summary page of the target resource
oldCapacityoldCapacity Yes Conteggio delle istanze corrente (precedente) quando la scalabilità automatica ha eseguito un'azione di scalabilitàThe current (old) instance count when Autoscale took a scale action
newCapacitynewCapacity Yes Nuovo conteggio delle istanze in base al quale la scalabilità automatica ha ridimensionato la risorsaThe new instance count that Autoscale scaled the resource to
propertiesProperties NoNo Facoltativo.Optional. Set di coppie <chiave, valore> (ad esempio Dizionario <Stringa, Stringa>).Set of <Key, Value> pairs (for example, Dictionary <String, String>). Il campo properties è facoltativo.The properties field is optional. In un flusso di lavoro basato su un'interfaccia utente personalizzata o un'app per la logica, è possibile immettere chiavi e valori che possono essere passati usando il payload.In a custom user interface or Logic app based workflow, you can enter keys and values that can be passed using the payload. Un metodo alternativo per passare le proprietà personalizzate alla chiamata al webhook in uscita è di usare l'URI del webhook stesso (sotto forma di parametri di query)An alternate way to pass custom properties back to the outgoing webhook call is to use the webhook URI itself (as query parameters)