Stream Analyticsジョブの自動起動/停止

1.はじめに

本記事では、Stream Analyticsジョブを自動起動/停止する方法をご紹介します。Stream Analyticsジョブは従量課金のため、利用しない夜間帯などにStream Analyticsジョブを停止することでAzureコストを削減することが可能となります。

(参考)Azure Stream Analyticsについて

 

2.Automationアカウント設定

Stream Analyticsジョブの自動起動/停止にはAutomationアカウントを使用します。Automationアカウントの作成方法はここでは触れませんが、以下を参考に作成を実施します。
(参考)Automationアカウント作成

 

Stream Analyticsの共同作成者権限を付与する

AutomationアカウントからStream Analyticsジョブの起動/停止を実行するため、共同作成者の権限を付与する必要があります。
①Stream Analytics ジョブの「アクセス制御 (IAM)」をクリックする。
②「+追加」→「ロールの割り当て」の順にクリックする。
③ロール:特権管理者ロール→共同作成者
 メンバーの割り当て先:マネージドID
 メンバー:Automationアカウント
 を選択し、レビューと割り当てをクリックする。

 

Runbookを作成する

自動起動用/停止用のRunbookを作成します。

  名前 種類 バージョン
自動起動用 Start_StreamAnalytics Powershell 7.2
自動停止用 Stop_StreamAnalytics Powershell 7.2

 

 

PowerShell Runbook の編集

作成した起動用/停止用RunbookのPowershellに下表を参考に設定し、保存→公開の順にクリックする。
今回の例では
・サブスクリプション
・リソースグループ
・StreamAnalyticジョブ名
を変数としています。

  Powershellスクリプト
自動起動用
Param(
    [string]$subscriptionId,
    [string]$resourceGroupName,
    [string]$asaJobName
)

# Ensures you do not inherit an AzContext in your runbook
Disable-AzContextAutosave -Scope Process | Out-Null

# Connect using a Managed Service Identity
try {
        $AzureContext = (Connect-AzAccount -Identity).context
    }
catch{
        Write-Output “There is no system-assigned user identity. Aborting.”;
        exit
    }

try
{
    # job start
    Start-AzStreamAnalyticsJob -ResourceGroupName $resourceGroupName -Name $asaJobName
}
catch
{
    throw $_.Exception.Message
}
自動停止用
Param(
    [string]$subscriptionId,
    [string]$resourceGroupName,
    [string]$asaJobName
)

# Ensures you do not inherit an AzContext in your runbook
Disable-AzContextAutosave -Scope Process | Out-Null

# Connect using a Managed Service Identity
try {
        $AzureContext = (Connect-AzAccount -Identity).context
    }
catch{
        Write-Output “There is no system-assigned user identity. Aborting.”;
        exit
    }

try
{
    # job stop
    Stop-AzStreamAnalyticsJob -ResourceGroupName $resourceGroupName -Name $asaJobName
}
catch
{
    throw $_.Exception.Message
}
 

 

Runbookにスケジュールをリンクさせる

自動起動/停止用のRunbookにスケジュールをリンクさせ定期的に実行するようにします。
スケジュールの作成とリンク方法については以下を参照してください。
(参考)Azure Automation のスケジュール管理

 

3.エラーの監視

2で設定したAutomationアカウントによる自動起動/停止でエラーが発生した際、アラート通知されるように設定しておきます。

 

Automationアカウントの診断設定

エラーの監視のため、Automationアカウントで診断設定を有効にします。
①Automationアカウントの「診断設定」をクリックする。
②「+診断設定の追加」クリックする。
③診断設定の名前:[診断設定名]
 ログ:JobStreamsを選択
 宛先:Log Analyticsワークスペースを選択
  を選択し、保存をクリックする。

 

アラート用検索クエリ

自動起動/停止時にエラーが発生した際のアラートルールに適用できる検索クエリの例は以下となります。

■検索クエリ
AzureDiagnostics
| where Category == “JobStreams”
| where StreamType_s == “Error”
| project TimeGenerated, Resource, StreamType_s, ResultDescription

 

上記の検索クエリーをもとにアラートルールを作成します。
アラートルールの作成手順については以下を参照してください。
(参考)Azure Monitorのアラートルール作成

いいね (←参考になった場合はハートマークを押して評価お願いします)
読み込み中...

注意事項・免責事項

※技術情報につきましては投稿日時点の情報となります。投稿日以降に仕様等が変更されていることがありますのでご了承ください。

※公式な技術情報の紹介の他、当社による検証結果および経験に基づく独自の見解が含まれている場合がございます。

※これらの技術情報によって被ったいかなる損害についても、当社は一切責任を負わないものといたします。十分な確認・検証の上、ご活用お願いたします。

※当サイトはマイクロソフト社によるサポートページではございません。パーソルプロセス&テクノロジー株式会社が運営しているサイトのため、マイクロソフト社によるサポートを希望される方は適切な問い合わせ先にご確認ください。
 【重要】マイクロソフト社のサポートをお求めの方は、問い合わせ窓口をご確認ください