Azure Monitor で自動スケール操作を使用して電子メールと webhook アラート通知を送信する
この記事では、Azure で自動スケール操作に基づいて特定の Web URL を呼び出すことや電子メールを送信することができるように通知を設定する方法について説明します。
Webhooks
Webhook を使用すると、特定のイベントまたはトリガーが発生したときに、特定の URL エンドポイント (コールバック URL) に HTTP 要求を送信できます。 Webhook を使用すると、さまざまなシステムやアプリケーション間で情報を自動的に交換できるようにすることで、プロセスを自動化および合理化できます。 Webhook を使用して、自動スケーリング イベントが発生したときに実行するカスタム コード、通知、またはその他のアクションをトリガーします。
電子メール
自動スケーリング イベントが発生したときに、任意の有効なメール アドレスに電子メールを送信することができます。
Note
2024 年 4 月 3 日から、Azure 自動スケール通知の新しい共同管理者を追加することはできなくなります。 Azure クラシックの管理者は 2024 年 8 月 31 日に廃止され、2024 年 8 月 31 日より後は、管理者と共同管理者を使用して Azure 自動スケール通知を送信することができなくなります。 詳細については、「共同管理者の廃止の準備」を参照してください
通知を構成する
通知を構成するには、Azure portal、CLI、PowerShell、または Resource Manager テンプレートを使用します。
Azure portal を使用して通知を設定します。
[自動スケール設定] ページの [通知] タブを選択して、通知を構成します。
通知を送信するメール アドレスの一覧を入力します。
Webhook URI を入力すると、Web サービスに通知が送信されます。 Webhook 要求にカスタム ヘッダーを追加することもできます。 たとえば、ヘッダーやクエリ パラメーターに認証トークンを追加したり、要求のソースを識別するカスタム ヘッダーを追加したりすることができます。
Webhook での認証
webhook はトークンベースの認証を利用して認証できます。クエリ パラメーターとしてトークン ID を使用し、webhook URI を保存します。 たとえば、「 https://mysamplealert/webcallback?tokenid=123-abc456-7890&myparameter2=value123
」のように入力します。
自動スケール通知の Webhook ペイロード スキーマ
自動スケール通知が生成されると、次のメタデータが Webhook ペイロードに含まれます。
{
"version": "1.0",
"status": "Activated",
"operation": "Scale Out",
"context": {
"timestamp": "2023-06-22T07:01:47.8926726Z",
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg-001/providers/microsoft.insights/autoscalesettings/AutoscaleSettings-002",
"name": "AutoscaleSettings-002",
"details": "Autoscale successfully started scale operation for resource 'ScaleableAppServicePlan' from capacity '1' to capacity '2'",
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"resourceGroupName": "rg-001",
"resourceName": "ScaleableAppServicePlan",
"resourceType": "microsoft.web/serverfarms",
"resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg-001/providers/Microsoft.Web/serverfarms/ScaleableAppServicePlan",
"portalLink": "https://portal.azure.com/#resource/subscriptions/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0/resourceGroups/rg-001/providers/Microsoft.Web/serverfarms/ScaleableAppServicePlan",
"resourceRegion": "West Central US",
"oldCapacity": "1",
"newCapacity": "2"
},
"properties": {
"key1": "value1",
"key2": "value2"
}
}
フィールド | Mandatory | 説明 |
---|---|---|
status | はい | 自動スケール操作が生成されたことを示す状態。 |
operation | はい | インスタンスの増加の場合は "Scale Out"、インスタンスの減少の場合は "Scale In" です。 |
context | はい | 自動スケール操作のコンテキスト。 |
timestamp | はい | 自動スケール操作がトリガーされたときのタイム スタンプ。 |
id | はい | 自動スケール設定の Resource Manager ID。 |
name | はい | 自動スケール設定の名前。 |
details | はい | 自動スケール サービスが実行した操作とインスタンス数の変更の説明。 |
subscriptionId | はい | スケールされるターゲット リソースのサブスクリプション ID。 |
resourceGroupName | はい | スケールされるターゲット リソースのリソース グループ名。 |
resourceName | はい | スケールされるターゲット リソースの名前。 |
resourceType | はい | "microsoft.classiccompute/domainnames/slots/roles" (Azure Cloud Services ロール)、"microsoft.compute/virtualmachinescalesets" (Azure 仮想マシン スケール セット)、"Microsoft.Web/serverfarms" (Azure Monitor の Web アプリ機能) の 3 つの値がサポートされています。 |
resourceId | はい | スケールされるターゲット リソースの Resource Manager ID。 |
portalLink | はい | ターゲット リソースの概要ページへの Azure portal のリンク。 |
oldCapacity | はい | 自動スケールによってスケール操作が実行された時点の (以前の) インスタンス数。 |
newCapacity | はい | 自動スケールによってリソースがスケールされた後の新しいインスタンス数。 |
properties | いいえ | 省略可能。 <Key, Value> ペアのセット (例: Dictionary <String, String>)。 properties フィールドは省略可能です。 カスタム ユーザー インターフェイスまたはロジック アプリ ベースのワークフローでは、ペイロードを使用して渡すことのできるキーと値を入力できます。 Webhook URI 自体を (クエリ パラメーターとして) 使用して、カスタム プロパティを送信 Webhook 呼び出しに戻すこともできます。 |