Azure リソースの管理を支援するために、サポートされている特定のリソースまたはリソース グループに対して自動化されたタスクを作成できます。 これらのタスクは、リソースの種類に基づいて、数と可用性が異なります。
Azure ストレージ アカウントの場合は、そのストレージ アカウントの月額料金を送信する自動化タスクを設定できます。
Azure 仮想マシンの場合は、事前に定義したスケジュールでその仮想マシンをオンまたはオフにする自動化タスクを作成できます。 具体的には、毎日、毎週、または毎月、特定の回数、仮想マシンを自動的に起動または停止するタスクを作成できます。 タスクの [構成] タブで、[間隔] 値に回数を設定し、[頻度] 値に [日]、[週]、または [月] を設定します。 自動化タスクは、タスクを削除または無効にするまで機能し続けます。
特定のオートメーション タスク テンプレートからオートメーション タスクを作成できます。 次の表に、現在サポートされているリソースの種類と使用可能なタスク テンプレートを示します。
リソースの種類 | 自動化タスク テンプレート |
---|---|
すべての Azure リソース | リソースの月額料金を送信 |
Azure の仮想マシン | 追加として: - 仮想マシンを電源オフ - 仮想マシンを起動 - 仮想マシンの割り当て解除 |
Azure ストレージ アカウント | 追加として: - 古い BLOB の削除 |
Azure Cosmos DB | さらに、 - クエリ結果を電子メールで送信 |
この記事では、次のタスクを完了する方法について説明します。
- 特定の Azure リソースの自動化タスクを作成します。
- タスクの履歴を確認します。これには、実行状態、入力、出力、およびその他の履歴情報が含まれます。
- タスクを更新したり、ワークフロー デザイナーでタスクの基になるワークフローをカスタマイズしたりできるように、タスクを編集します。
自動化タスクと Azure Automation の違い
自動化タスクは、Azure Automation よりも基本的で軽量です。 現時点では、自動化タスクを作成できるのは Azure リソース レベルのみです。 背後から見ると、オートメーション タスクは、実際にはワークフローを実行するロジック アプリ リソースです。
ロジック アプリ ワークフローは、 マルチテナント Azure Logic Apps サービスを利用します。 自動化タスクを作成したら、ワークフロー デザイナーでタスクを開いて、基になるワークフローを表示および編集できます。 タスクの実行が少なくとも 1 つ完了した後であれば、実行の状態、履歴、入力、および出力を確認できます。
これに対し、Azure Automation は、Azure および Azure 以外の環境にわたって一貫性のある管理をサポートする、クラウドベースのオートメーションおよび構成のサービスです。 このサービスは、Runbook を使用してプロセスをオーケストレーションするためのプロセスのオートメーション、変更追跡とインベントリを含む構成管理、更新管理、共有機能、および異種環境機能で構成されています。 Automation は、ワークロードとリソースのデプロイ、運用、使用停止を完全に制御します。
価格
自動化タスクを作成しても、料金は自動的に開始されません。 その下で、自動化タスクは、マルチテナント Azure Logic Apps でホストされているロジック アプリ リソース内のワークフローを利用します。 そのため、従量課金モデルが自動化タスクにも適用されます。 測定と課金は、ロジック アプリ ワークフローのトリガーとアクションの実行に基づいています。
ワークフローが正常に実行されたかどうか、またはワークフローがインスタンス化されているかどうかに関係なく、実行が記録され、課金されます。 たとえば、自動化タスクが、エンドポイントへの発信呼び出しを定期的に行うポーリング トリガーを使用するとします。 この送信要求は、実行として課金されます。 要求によってトリガーが起動またはスキップされる可能性があり、ワークフロー インスタンスが作成されるかどうかに影響します。
トリガーとアクションは 従量課金プランの料金に従います。これは、これらの操作が 組み込み であるか 管理 されているか (Standard または Enterprise) であるかによって異なります。 トリガーとアクションは、従量課金プランのデータレートを使用するストレージ トランザクションも行います。
Note
毎月のボーナスとして、従量課金プランには数千の組み込み実行が無料で含まれています。 詳細については、「 従量課金プランの料金」を参照してください。
前提条件
- Azure アカウントとサブスクリプション。 サブスクリプションをお持ちでない場合には、無料の Azure アカウントにサインアップしてください。
- 管理する Azure リソース。 この記事では、例として Azure ストレージ アカウントを使用します。
- Office 365 アカウント (この例に従って Office 365 Outlook を使用して電子メールを送信する場合)。
自動化タスクの作成
Azure portal で、管理するリソースを検索します。
リソース サイドバー メニューの [ Automation] で、[タスク] を選択 します。
[ タスク ] ページのツール バーで、[ タスクの追加] を選択します。
[ タスクの追加 ] ページの [ テンプレートの選択] で、作成するタスクの [選択] を選択します。 次のページが表示されない場合は、[次へ: 認証] を選びます。
次の使用例は、[リソース タスクの 毎月のコストを送信する ] テンプレートを選択します。
[ 認証] の [ 接続 ] セクションで、タスクに表示されるすべての接続の 作成 を選択します。 タスク内の接続の種類は異なります。
メッセージが表示されたら、Azure アカウントの資格情報でサインインします。
接続が正常に認証されると、次の例のようになります。
すべての接続を認証したら、[ 次へ: 構成] を選択します。
[構成] で、タスクの名前と、タスクに必要なその他の情報を指定します。 完了したら、[確認および作成] を選択します。
Note
作成後にタスク名を変更することはできません。 タスクに
SendMonthlyCost
名前を付け、後で基になるワークフローを編集して毎週実行する場合、タスクの名前をSendWeeklyCost
に変更することはできません。 基になるワークフローを編集する場合は、引き続き適用される名前を検討してください。基になるワークフローに加えた変更は、作成したタスクにのみ適用され、タスク テンプレートには適用されません。
電子メール通知を送信するタスクには、電子メール アドレスが必要です。
自動的にライブで実行されている作成したタスクが、[タスク] 一覧に表示されるようになりました。
ヒント
タスクがすぐに表示されない場合は、タスク一覧を最新の状態に更新するか、少し待ってから更新してください。 ツール バーの [更新] を選択します。
選択したタスクが実行されると、次の例のような電子メールが届きます。
タスク履歴の確認
タスクの実行履歴とその状態、入力、出力、およびその他の情報を表示するには、次の手順を実行します。
Azure portal で、確認するタスク履歴があるリソースを見つけます。
リソース サイドバー メニューの [ Automation] で、[タスク] を選択 します。
[タスク] 一覧で、確認するタスクを見つけます。 このタスクの [実行] 列で、[表示] を選択します。
[ 実行履歴 ] ウィンドウには、タスクの実行と、タスクの状態、開始時刻、識別子、実行時間が表示されます。
実行には次のような状態があります。
Status 説明 取り消し済み タスクは実行中に取り消されました。 Failed タスクには少なくとも 1 つの失敗したアクションがありますが、失敗を処理するための後続のアクションが存在しませんでした。 実行中 タスクは現在実行中です。 Succeeded アクションはすべて成功しています。 アクションが失敗した場合でもタスクは正常に完了しますが、失敗を処理するための後続のアクションが存在していました。 待機中 実行はまだ開始されていません。タスクの以前のインスタンスがまだ実行中であるため、一時停止しています。 詳細については、「ワークフロー実行履歴の確認」を参照してください。
実行の各ステップの状態などの情報を表示するには、その実行を選択します。
[ロジック アプリの実行] ウィンドウが開き、基になる実行されたワークフローが表示されます。
- ワークフローは、常にトリガーで開始されます。 このタスクでは、ワークフローは繰り返しトリガーで開始されます。
- 各ステップには、状態と実行継続時間が表示されます。 継続時間が 0 秒のステップは、実行が 1 秒未満であったものです。
各ステップの入力と出力を確認するには、ステップを選択すると、入力と出力ペインが開きます。
Azure リソースの自動化タスクのコンテキストとは別に、アプリ、データ、サービス、システムを統合できるように、独自の自動化されたワークフローを構築する方法については、「 クイック スタート: Azure portal で従量課金ロジック アプリ ワークフローを作成する」を参照してください。
タスクを編集する
タスクを変更するには、次のオプションがあります。
- 接続情報や構成情報などのタスクのプロパティ (メール アドレスなど) を変更できるように、タスクをインラインで編集します。
- ワークフロー デザイナーで、タスクの基になるワークフローを編集します。
タスクをインラインで編集する
Azure portal で、更新するタスクが含まれているリソースを見つけます。
リソース ナビゲーション メニューの [Automation] セクションで、[タスク] を選びます。
[タスク] 一覧で、更新するタスクを見つけます。 タスクの省略記号 (...) メニューを開き、[インラインで編集] を選択します。
既定では、[認証] タブが表示され、既存の接続が表示されます。
新しい認証資格情報を追加するか、接続に使用する既存の認証資格情報を選択するには、接続の省略記号 (...) メニューを開き、[新しい接続の追加] または使用可能な場合は別の認証資格情報を選択します。
その他のタスクのプロパティを更新するには [次へ: 構成] を選びます。
この例のタスクでは、編集できる唯一のプロパティはメール アドレスです。
終了したら、[保存] を選択します。
タスクの基になるワークフローの編集
自動化タスクの基になるワークフローを変更すると、変更内容は、タスクを作成するテンプレートではなく、作成したタスク インスタンスにのみ影響を与えます。 変更を行って保存した後、元のタスクに指定した名前でタスクが正確に記述されない場合があります。 別の名前でタスクを再作成できます。
ヒント
ベスト プラクティスとして、基になるワークフローを複製し、コピーしたバージョンを編集します。 そうすることで、元のオートメーション タスクの実行が続いている間に、コピーに対する変更を行ってテストできます。 中断や既存の機能の中断を危険にさらすことはありません。
変更が完了し、新しいバージョンが正常に実行されることを確認したら、元の自動化タスクを無効にするか削除できます。 次に、自動化タスクに複製されたバージョンを使用します。 次の手順には、ワークフローを複製する方法に関する情報が含まれています。
Azure portal で、更新するタスクが含まれているリソースを見つけます。
リソース サイドバー メニューの [ Automation] で、[タスク] を選択 します。
[タスク] 一覧で、更新するタスクを見つけます。 タスクの省略記号 (...) メニューを開き、[Open in Logic Apps]\(Logic Apps で開く\) を選択します。
タスクの基になるワークフローが、Azure Logic Apps のデザイナーで開きます。
これで、ワークフローのプロパティを編集できるようになりました。 ベスト プラクティスとして、手順に従ってワークフローを複製します。 元のワークフローが引き続き実行されている間は、コピーに変更を加えることができます。
ワークフローを複製し、コピーされたバージョンを編集するには、次の手順を実行します。
Azure portal の検索ボックスで、 ロジック アプリを見つけて選択し、ロジック アプリ リソースを選択します。
リソースサイドバーメニューで、[ 概要] を選択します。
概要 ツールバーで 複製 を選択します。
[ ロジック アプリの作成 ] ウィンドウの [ ロジック アプリ名] に、コピーしたロジック アプリのリソースとワークフローの新しい名前を入力します。
ロジック アプリの状態を除き、他のプロパティを編集することはできません。
[ ロジック アプリの状態] で、[無効] を選択 します。 変更を加えた場合、複製されたワークフローは実行されません。 変更をテストする準備ができたら、ワークフローを有効にできます。
Azure での複製されたワークフローのプロビジョニングが完了したら、デザイナーでそのワークフローを見つけて開きます。
トリガーまたはアクションのプロパティを表示するには、デザイナーでそのトリガーまたはアクションを選択します。
たとえば、繰り返しトリガーを毎月ではなく毎週実行するように変更できます。
繰り返しトリガーの詳細については、「繰り返しトリガーを使用して定期的なタスクとワークフローを作成、スケジュール、実行する」を参照してください。
変更を保存するには、デザイナーのツール バーで、[保存] を選択します。
更新されたワークフローをテストして実行するには、デザイナーのツール バーで [ 実行>実行] を選択します。
タスクが実行を続行しないようにワークフローを無効にするには、「Azure portal でロジック アプリを管理する」を参照してください。
ワークフローからオートメーション タスク テンプレートを作成する
独自のオートメーション タスク テンプレートを作成するには、HTTP ベースのトリガーまたは HTTP ベースの Webhook トリガーではなく、定期的な、またはイベントベースのトリガーから始まる従量課金ロジック アプリ ワークフローを使います。 このタスクには、次のものが必要です。
GitHub アカウント。
Automation タスク テンプレート GitHub リポジトリのフォーク バージョン。
フォークとフォークの作成の詳細については、次の GitHub ドキュメントを参照してください。
フォークしたリポジトリの作業ブランチに、自動化タスクのテンプレートを追加する場所。
ブランチの詳細と作成方法については、次のドキュメントを参照してください。
好みの Web デバッグ ツール。 この例では Fiddler 4 を使っていますが、Fiddler Everywhere に使用できる無料試用版を試すことができます。
テンプレートを作成し、Azure でそのテンプレートを使用できるようにするには、次の概要の手順を実行します。
- オートメーション タスク テンプレートにワークフローをエクスポートします。
- フォークしたリポジトリの作業ブランチにテンプレートをアップロードします。
- Fiddler などの Web デバッグ ツールを使用してテンプレートをテストします。
- 作業ブランチのプルリクエスト(PR)を、Automation タスク テンプレート GitHub リポジトリの既定のブランチに対して作成します。
Azure Logic Apps チームが PR を確認し、既定のブランチにマージすることを承認すると、テンプレートは公開され、すべての Azure ユーザーが使用できるようになります。
ワークフローをオートメーション タスク テンプレートにエクスポートする
開始する前に、ワークフローが HTTP ベースのトリガーまたは HTTP ベースの Webhook トリガーではなく、定期的なトリガーまたはイベント ベースのトリガーで開始されていることを確認します。
Azure portal で、エクスポートしたいワークフローを含む Consumption Logic App リソースを開きます。
リソースサイドバーメニューで、[ 概要] を選択します。
[概要] ツール バーの [エクスポート] >[Automation タスクにエクスポート] を選択します。
開いた [Export to Automation Task]\(オートメーション タスクにエクスポートする\) ペインに、次の情報を入力します。
プロパティ 必須 値 説明 テンプレート名 はい < template-name> オートメーション タスク テンプレートのフレンドリ表示名。
重要: 古い仮想マシンの一覧表示など、簡潔でわかりやすい名前を使うようにします。テンプレートの説明 はい < template-description> テンプレートのタスクまたは目的の説明 サポートされているリソースの種類 いいえ 空または <supported-Azure-resource-type-list> テンプレートを使用できるようにするファーストクラス Azure リソースの種類。 現在、サブリソースの種類はサポートされていません。 すべてのファーストクラス Azure リソースの種類を含めるには、このプロパティを空のままにします。 複数のリソースの種類を指定するには、各名前をコンマで区切り、次の構文を使います。
Microsoft.<service-provider>/<entity>
たとえば、Azure リソース グループにテンプレートを使用できるようにするには、Microsoft.Resources/resourceGroups を指定します。 詳細については、「Azure サービスのリソース プロバイダー」を参照してください。サポートされていないリソースの種類 いいえ 空または <unsupported-Azure-resource-type-list> 存在する場合、特にテンプレートを使用できるようにしない Azure リソースの種類。 複数のリソースの種類を指定するには、各名前をコンマで区切り、次の構文を使います。
Microsoft.<service-provider>/<entity>
たとえば、Azure リソース グループにテンプレートを使用できないようにするには、Microsoft.Resources/resourceGroups を指定します。 詳細については、「Azure サービスのリソース プロバイダー」を参照してください。パラメーターを構成する いいえ 場合により異なる 複数の環境にまたがるパラメーター定義がワークフローに含まれている場合、それらのパラメーターはこのセクションに表示され、さらに構成することができます。 各パラメーター値をリソースから提供するか、タスク作成者から提供するかを選択できます。
- [From Resource]\(リソースから\) を選んだ場合、そのリソースから使う [Source Parameter]\(ソース パラメーター\) のプロパティ値を選びます。
-- リソース名
-- リソースの種類
-- リソース ID
-- サブスクリプション ID
-- リソース グループ
-- リソースの場所。
- [ユーザー指定] を選んだ場合、タスク作成者がパラメーター値を指定する方法を決定する [テンプレート] の形式を選びます。
-- 既定値: パラメーター値は、間隔、頻度、タイム ゾーン以外のものです。
---- パラメーターの表示名、既定値、説明を指定します。
---- 値がタイムスタンプ (hh:mm:ss) の場合は、[形式] プロパティに [時刻形式] を設定します。
---- このパラメーターを必須とマークするには、[省略可能] を [必須] に変更します。
-- 間隔: パラメーター値は、1、12 などの間隔です。
-- Frequency: パラメーター値は、 時間、 日、月などの頻度 です。
-- タイムゾーン: パラメーター値は、 (UTC-08:00) 太平洋標準時 (米国およびカナダ) などのタイム ゾーンです。次の例は、サンプルのオートメーション タスク テンプレートのプロパティを示しています。
この例では、タスクの基になるワークフローに次のパラメーター定義が含まれており、これらのパラメーター値がタスク作成者によって提供されることを指定します。
完了したら、[テンプレートのダウンロード] を選び、.json というファイル名の拡張子を使ってテンプレートを保存します。 一貫性のあるテンプレート名にするには、小文字、単語間のハイフン、次の構文のみを使います。
<action-verb>-<Azure-resource>
たとえば、前のテンプレート名の例に基づいて、テンプレート ファイルに
power-off-virtual-machine.json
名前を付けます。
GitHub にテンプレートをアップロードする
GitHub に移動し、GitHub アカウントを使ってサインインします。
自動化タスク テンプレートの GitHub リポジトリに移動すると、リポジトリ内の既定のブランチに移動します。
ブランチ リストから作業ブランチに切り替えます。
ファイル一覧の上にある [ファイルの追加]>[ファイルのアップロード] を選びます。
ワークフロー定義ファイルをページ上の指定された領域にドラッグするか、[choose your files]\(ファイルの選択\) を選びます。
テンプレートを追加した後、同じフォルダーで manifest.json ファイルを開き、JSON ファイルのエントリを追加します。
テンプレートのテスト
お気に入りの Web デバッグ ツールを使って、作業ディレクトリにアップロードしたテンプレートをテストすることができます。 この例では、Fiddler を使って Web 要求を変更するスクリプトを続けます。 別のツールを使う場合は、そのツールに相当する手順とスクリプトを使います。
Fiddler スクリプトで
onBeforeRequest()
関数を見つけ、たとえば次のコードをその関数に追加します。static function OnBeforeRequest(oSession: Session) { if (oSession.url == "raw.githubusercontent.com/azure/automation-task-template/master/templates/manifest.json") { oSession.url = "raw.githubusercontent.com/<GitHub-username>/automation-task-template/<working-branch>/templates/manifest.json"; } if (oSession.url == "raw.githubusercontent.com/azure/automation-task-template/master/templates/<template-name>") { oSession.url = "raw.githubusercontent.com/<GitHub-username>/automation-task-template/<working-branch>/templates/<template-name>"; } {...} }
このコードは、メインの Azure GitHub リポジトリからではなく、フォークされたリポジトリから <>.jsonファイルを取得します。
そのため、例に基づくと、ファイルのリダイレクト コードは次のバージョンのようになります。
static function OnBeforeRequest(oSession: Session) { if (oSession.url == "raw.githubusercontent.com/azure/automation-task-template/master/templates/manifest.json") { oSession.url = "raw.githubusercontent.com/sophowe/automation-task-template/upload-auto-template/templates/manifest.json"; } if (oSession.url == "raw.githubusercontent.com/azure/automation-task-template/master/templates/list-stale-virtual-machines.json") { oSession.url = "raw.githubusercontent.com/sophowe/automation-task-template/upload-auto-template/templates/list-stale-virtual-machines.json"; } {...} }
テストを実行する前に、必ずすべてのブラウザー ウィンドウを閉じ、Fiddler のブラウザー キャッシュをクリアします。
新しいブラウザー ウィンドウを開いて、Azure portal にサインインします
オートメーション タスクが見つかると思われる Azure リソースを開きます。 エクスポートしたテンプレートを使ってオートメーション タスクを作成します。 タスクを実行します。
タスクが正常に実行されたら、作業ブランチから既定のブランチへの pull request を作成して続けます。
pull request を作成する
[変更の確定] に、更新の簡潔でわかりやすいタイトルを入力します。 説明ボックスには、さらに詳しい情報を入力できます。
[このコミットのブランチを新規作成し、pull request を開始します。] を選びます。 プロンプトが表示されたら、次の例のように作業ブランチの名前を入力します。
<your-GitHub-alias>-<automation-task-name>-template
準備ができたら、[Propose changes]\(変更の提案\) を選びます。 次のページで、[Create pull request]\(pull request の作成\) を選びます。
pull request の名前と説明を指定します。 右下隅にある [Create pull request]\(pull request の作成\) を選びます。
Azure Logic Apps チームが pull request を確認するのを待ちます。
フィードバックの提供
皆様からのご意見をお待ちしております。 バグを報告したり、フィードバックを提供したり、このプレビュー機能について質問したりするには、Azure Logic Apps チームにお問い合わせください。