Azure Monitor で自動スケール操作を使用して電子メールと webhook アラート通知を送信するUse autoscale actions to send email and webhook alert notifications in Azure Monitor

この記事では、Azure で自動スケール操作に基づいて特定の Web URL を呼び出すことや電子メールを送信することができるようにトリガーを設定する方法について説明します。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.

WebhooksWebhooks

Webhook を使用すると、後処理やカスタム通知のために、Azure アラート通知を他のシステムにルーティングすることができます。Webhooks allow you to route the Azure alert notifications to other systems for post-processing or custom notifications. たとえば、受信 Web 要求を処理して SMS を送信する、バグをログに記録する、チャットやメッセージング サービスを使用してチームに通知するなどのサービスにアラートをルーティングすることができます。Webhook URI は有効な HTTP または HTTPS エンドポイントである必要があります。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

電子メールは、任意の有効な電子メール アドレスに送信できます。Email can be sent to any valid email address. このルールが実行されているサブスクリプションの管理者と共同管理者にも通知されます。Administrators and co-administrators of the subscription where the rule is running will also be notified.

Cloud Services と App ServicesCloud Services and App Services

Azure portal から Cloud Services とサーバー ファーム (App Services) をオプトインできます。You can opt-in from the Azure portal for Cloud Services and Server Farms (App Services).

  • [スケールの基準] メトリックを選択します。Choose the scale by metric.

[スケールの基準]

仮想マシン スケール セットVirtual Machine scale sets

Resource Manager で作成された比較的新しい仮想マシン (仮想マシン スケール セット) の場合、REST API、Resource Manager テンプレート、PowerShell、CLI を使用してこれを構成できます。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. ポータルのインターフェイスはまだ使用できません。A portal interface is not yet available. REST API または Resource Manager テンプレートを使用する場合は、次のオプションを使用して autoscalesettings に通知要素を追加してください。When using the REST API or Resource Manager template, include the notifications element in your autoscalesettings 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"
            }
          }
        ]
      }
    ]
フィールドField 必須Mandatory? 説明Description
operationoperation はいyes 値は "Scale" にする必要があります。value must be "Scale"
sendToSubscriptionAdministratorsendToSubscriptionAdministrator はいyes 値は "true" または "false" にする必要があります。value must be "true" or "false"
sendToSubscriptionCoAdministratorssendToSubscriptionCoAdministrators はいyes 値は "true" または "false" にする必要があります。value must be "true" or "false"
customEmailscustomEmails はいyes 値として null [] または電子メールの文字列配列を指定できます。value can be null [] or string array of emails
webhookswebhooks はいyes 値として null または有効な URI を指定できます。value can be null or valid Uri
serviceUriserviceUri はいyes 有効な https URI を指定します。a valid https Uri
propertiesproperties はいyes 値は空 {} にするか、キーと値のペアを指定できます。value must be empty {} or can contain key-value pairs

Webhook での認証Authentication in webhooks

webhook はトークンベースの認証を利用して認証できます。クエリ パラメーターとしてトークン ID を使用し、webhook URI を保存します。The webhook can authenticate using token-based authentication, where you save the webhook URI with a token ID as a query parameter. https://mysamplealert/webcallback?tokenid=sometokenid&someparameter=somevalue などですFor example, https://mysamplealert/webcallback?tokenid=sometokenid&someparameter=somevalue

自動スケール通知の Webhook ペイロード スキーマAutoscale notification webhook payload schema

自動スケール通知が生成されると、次のメタデータが Webhook ペイロードに含まれます。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"
        }
}
フィールドField 必須Mandatory? 説明Description
statusstatus はいyes 自動スケール操作が生成されたことを示す状態。The status that indicates that an autoscale action was generated
operationoperation はいyes インスタンスの増加の場合は "Scale Out"、インスタンスの減少の場合は "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 自動スケール操作のコンテキスト。The autoscale action context
timestamptimestamp はいyes 自動スケール操作がトリガーされたときのタイム スタンプ。Time stamp when the autoscale action was triggered
idid はいYes 自動スケール設定の Resource Manager IDResource Manager ID of the autoscale setting
namename はいYes 自動スケール設定の名前。The name of the autoscale setting
detailsdetails はいYes 自動スケール サービスが実行した操作とインスタンス数の変更の説明。Explanation of the action that the autoscale service took and the change in the instance count
subscriptionIdsubscriptionId はいYes スケールされるターゲット リソースのサブスクリプション ID。Subscription ID of the target resource that is being scaled
resourceGroupNameresourceGroupName はいYes スケールされるターゲット リソースのリソース グループ名。Resource Group name of the target resource that is being scaled
resourceNameresourceName はいYes スケールされるターゲット リソースの名前。Name of the target resource that is being scaled
resourceTyperesourceType はいYes "microsoft.classiccompute/domainnames/slots/roles" (クラウド サービス ロール)、"microsoft.compute/virtualmachinescalesets" (仮想マシン スケール セット)、"Microsoft.Web/serverfarms" (Web アプリ) の 3 つの値がサポートされています。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 スケールされるターゲット リソースの Resource Manager ID。Resource Manager ID of the target resource that is being scaled
portalLinkportalLink はいYes ターゲット リソースの概要ページへの Azure ポータルのリンク。Azure portal link to the summary page of the target resource
oldCapacityoldCapacity はいYes 自動スケールによってスケール操作が実行された時点の (以前の) インスタンス数。The current (old) instance count when Autoscale took a scale action
newCapacitynewCapacity はいYes 自動スケールによってリソースがスケールされた後の新しいインスタンス数。The new instance count that Autoscale scaled the resource to
propertiesproperties いいえNo 省略可能。Optional. <Key, Value> ペアのセット (例: Dictionary <String, String>)。Set of <Key, Value> pairs (for example, Dictionary <String, String>). properties フィールドは省略可能です。The properties field is optional. カスタム ユーザー インターフェイスまたはロジック アプリ ベースのワークフローでは、ペイロードを使用して渡すことのできるキーと値を入力できます。In a custom user interface or Logic app based workflow, you can enter keys and values that can be passed using the payload. Webhook URI 自体を (クエリ パラメーターとして) 使用して、カスタム プロパティを送信 Webhook 呼び出しに戻すこともできます。An alternate way to pass custom properties back to the outgoing webhook call is to use the webhook URI itself (as query parameters)