チュートリアル: Azure Automation を Event Grid および Microsoft Teams と統合する
このチュートリアルでは、以下の内容を学習します。
- Event Grid のサンプル Runbook をインポートする。
- オプションの Microsoft Teams webhook を作成する。
- Runbook に対する webhook を作成する。
- Event Grid のサブスクリプションを作成する。
- Runbook をトリガーする VM を作成する。
Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
前提条件
重要
PowerShell からこの Azure 機能を使用するには、AzureRM
モジュールをインストールする必要があります。 これはもう新しい機能が追加されることのない古いモジュールであり、Windows PowerShell 5.1 でのみ使用可能です。
同じバージョンの PowerShell でインストールした場合、Az
と AzureRM
のモジュールは同時に使用 "できません"。
両方のバージョンが必要な場合:
- PowerShell 5.1 セッションで Az モジュールをアンインストールします。
- PowerShell 5.1 セッションで AzureRM モジュールをインストールします。
- PowerShell Core 6.x 以降をダウンロードしてインストールします。
- PowerShell Core セッションで Az モジュールをインストールします。
このチュートリアルを行うには、Azure Event Grid のサブスクリプションからトリガーされる Runbook を保持するために Azure Automation アカウントが必要です。
-
AzureRM.Tags
モジュールは Automation アカウントに読み込む必要があります。モジュールを Azure Automation にインポートする方法については、Azure Automation にモジュールをインポートする方法に関するページを参照してください。
Event Grid のサンプル Runbook をインポートする
お使いの Automation アカウントを選び、[Runbook] ページを選びます。
[ギャラリーを参照] ボタンを選びます。
Event Grid を検索し、[Integrating Azure Automation with Event grid]\(Azure Automation と Event Grid の統合\) を選びます。
[インポート] を選び、名前を「Watch-VMWrite」にします。
インポートされた後、[編集] を選んで Runbook ソースを表示します。
スクリプトの 74 行目を更新して
Tags
の代わりにTag
を使用してください。Update-AzureRmVM -ResourceGroupName $VMResourceGroup -VM $VM -Tag $Tag | Write-Verbose
[発行] ボタンを選びます。
オプションの Microsoft Teams webhook を作成する
Microsoft Teams で、チャネル名の隣の [その他のオプション] を選び、[コネクタ] を選びます。
コネクタの一覧をスクロールして [Incoming Webhook]\(受信 webhook\) に移動し、[追加] を選びます。
名前に「AzureAutomationIntegration」と入力し、[作成] を選びます。
Webhook URL をクリップボードにコピーして保存します。 webhook の URL は、Microsoft Teams への情報の送信に使います。
[完了] を選んで webhook を保存します。
Runbook に対する webhook を作成する
Watch-VMWrite Runbook を開きます。
[Webhook] を選び、[Webhook の追加] ボタンを選びます。
名前に「WatchVMEventGrid」と入力します。 URL をクリップボードにコピーして保存します。
[パラメータと実行設定を構成する] を選び、[CHANNELURL] に Microsoft Teams の webhook の URL を入力します。 [WEBHOOKDATA] は空白のままにします。
[作成] を選んで Automation Runbook の Webhook を作成します。
Event Grid のサブスクリプションを作成する
[Automation アカウント] 概要ページで、[イベント グリッド] を選びます。
[+ イベント サブスクリプション] をクリックします。
次の情報を指定して、サブスクリプションを構成します。
[トピックの種類] で [Azure サブスクリプション] を選びます。
[すべてのイベントの種類を購読します] チェック ボックスをオフにします。
名前に「AzureAutomation」と入力します。
[定義済みのイベントの種類] ボックスの一覧で、[Resource Write Success]\(リソース書き込み成功\) を除く、すべてのオプションのチェック ボックスをオフにします。
Note
Azure Resource Manager は現在、作成と更新を区別していないため、 このチュートリアルを Azure サブスクリプションのすべての Microsoft.Resources.ResourceWriteSuccess イベントに対して実装すると大量の呼び出しが発生する可能性があります。
[エンドポイントの種類] で [Webhook] を選択します。
[エンドポイントの選択] をクリックします。 表示された [webhook の選択] ページで、Watch-VMWrite Runbook 用に作成した Webhook の URL を貼り付けます。
[フィルター] に、新しく作成された VM を検索するサブスクリプションとリソース グループを入力します。 結果は次のようになります。
/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.Compute/virtualMachines
[作成] を選び、Event Grid サブスクリプションを保存します。
Runbook をトリガーする VM を作成する
Event Grid サブスクリプションのプレフィックス フィルターで指定したリソース グループに新しい VM を作成します。
Watch-VMWrite Runbook が呼び出されて、新しいタグが VM に追加されます。
新しいメッセージが Microsoft Teams のチャネルに送信されます。
次のステップ
このチュートリアルでは、Event Grid と Automation の間の統合を設定しました。 以下の方法を学習しました。
- Event Grid のサンプル Runbook をインポートする。
- オプションの Microsoft Teams webhook を作成する。
- Runbook に対する webhook を作成する。
- Event Grid のサブスクリプションを作成する。
- Runbook をトリガーする VM を作成する。