自動化タスクを作成して Azure リソースを管理し、コストを監視する (プレビュー)

重要

この機能はプレビュー段階にあり、「Microsoft Azure プレビューの追加使用条件」が適用されます。

Azure リソースをより簡単に管理するために、特定のリソースまたはリソース グループに対して自動化された管理タスクを作成できます。 これらのタスクは、リソースの種類に基づいて、数と可用性が異なります。 次に例を示します。

  • Azure ストレージ アカウントの場合は、そのストレージ アカウントの月額料金を送信する自動化タスクを設定できます。

  • Azure 仮想マシンの場合は、事前に定義したスケジュールでその仮想マシンをオンまたはオフにする自動化タスクを作成できます。 具体的には、毎日、毎週、または毎月、特定の回数、仮想マシンを自動的に起動または停止するタスクを作成できます。 タスクの [構成] タブで、[間隔] 値に回数を設定し、[頻度] 値に [日][週]、または [月] を設定します。 自動化タスクは、タスクを削除または無効にするまで機能し続けます。

    たとえば、仮想マシンを毎日 1 回自動的に起動するタスクを作成できます。 タスクの [構成] タブで、[間隔][1] に、[頻度][日] に設定します。

特定のオートメーション タスク テンプレートからオートメーション タスクを作成できます。 次の表は、現在サポートされているリソースの種類と、このプレビューで使用できるタスク テンプレートの一覧です。

リソースの種類 自動化タスク テンプレート
すべての 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) であるかによって異なります。 トリガーとアクションによってストレージ トランザクションも作成されまが、これは従量課金プランのデータ料金を使用します。

注意

毎月の特典として、従量課金プランには、"数千"の組み込み実行が無料で含まれています。 具体的な情報については、従量課金プランの料金に関する説明を参照してください。

前提条件

  • Azure アカウントとサブスクリプション。 サブスクリプションをお持ちでない場合には、無料の Azure アカウントにサインアップしてください。

  • 管理する Azure リソース。 この記事では、例として Azure ストレージ アカウントを使用します。

  • Office 365 アカウント (この例に従って Office 365 Outlook を使用して電子メールを送信する場合)。

自動化タスクの作成

  1. Azure portal で、管理するリソースを検索します。

  2. リソース ナビゲーション メニューの [Automation] セクションで、 [タスク (プレビュー)] を選びます。

    Screenshot that shows the Azure portal and storage account resource menu with

  3. [タスク] ペインで、 [タスクの追加] を選んで、タスク テンプレートを選択できるようにします。

    Screenshot that shows the

  4. [タスクの追加] ペインの [テンプレートの選択] を使用し、作成するレプリケーション タスクのテンプレートで [選択] を選びます。 次のページが表示されない場合は、 [次へ: 認証] を選びます。

    この例では、 [リソースの月額料金を送信] タスク テンプレートを選択することで続行します。

    Screenshot that shows the

  5. [認証][接続] セクションで、タスクに表示されるすべての接続について [作成] を選び、すべての接続の認証資格情報を指定できるようにします。 各タスクの接続の種類は、タスクによって異なります。

    この例では、このタスクに必要な接続のうちの 1 つだけを示します。

    Screenshot that shows the selected

  6. ダイアログが表示されたら、Azure アカウントの資格情報でサインインします。

    Screenshot that shows the selection,

    接続が正常に認証されると、次の例のようになります。

    Screenshot that shows successfully created connection.

  7. すべての接続を認証した後、次のページが表示されない場合は [次へ: 構成] を選びます。

  8. [構成] で、タスクの名前と、タスクに必要なその他の情報を指定します。 完了したら、 [確認および作成] を選択します。

    Note

    作成後にタスク名を変更することはできません。そのため、基になるワークフローを編集したとしても、引き続き適用できる名前を検討してください。 基になるワークフローに加えた変更は、タスク テンプレートではなく、作成したタスクにのみ適用されます。

    たとえば、タスクに SendMonthlyCost という名前を付けた後で、基になるワークフローを毎週実行するように編集した場合、タスクの名前を SendWeeklyCost に変更することはできません。

    電子メール通知を送信するタスクには、電子メール アドレスが必要です。

    Screenshot that shows the required information for the selected task.

    自動的にライブで実行されている作成したタスクが、 [タスク] 一覧に表示されるようになりました。

    Screenshot that shows the automation tasks list

    ヒント

    タスクがすぐに表示されない場合は、タスク一覧を最新の状態に更新するか、少し待ってから更新してください。 ツール バーの [更新] を選択します。

    選択したタスクが実行されると、次の例のような電子メールが届きます。

    Screenshot that shows email notification sent by task.

タスク履歴の確認

タスクの実行履歴とその状態、入力、出力、およびその他の情報を表示するには、次の手順を実行します。

  1. Azure portal で、確認するタスク履歴があるリソースを見つけます。

  2. リソースのメニューの [設定] の下にある [Automation] セクションで、 [タスク (プレビュー)] を選びます。

  3. [タスク] 一覧で、確認するタスクを見つけます。 このタスクの [実行] 列で、 [表示] を選択します。

    Screenshot that shows a task and the selected

    [実行履歴] ウィンドウには、タスクのすべての実行とその状態、開始時刻、識別子、および実行継続時間が表示されます。

    Screenshot that shows a task's runs, their statuses, and other information.

    実行には次のような状態があります。

    Status 説明
    取り消し済み タスクは実行中に取り消されました。
    Failed タスクには少なくとも 1 つの失敗したアクションがありますが、失敗を処理するための後続のアクションが存在しませんでした。
    実行中 タスクは現在実行中です。
    Succeeded アクションはすべて成功しています。 アクションが失敗した場合でもタスクは正常に完了しますが、失敗を処理するための後続のアクションが存在していました。
    待機中 実行はまだ開始されていません。タスクの以前のインスタンスがまだ実行中であるため、一時停止しています。

    詳細については、監視ビューでの実行履歴の確認に関する記事を参照してください。

  4. 実行の各ステップの状態などの情報を表示するには、その実行を選択します。

    [ロジック アプリの実行] ウィンドウが開き、基になる実行されたワークフローが表示されます。

    • ワークフローは、常にトリガーで開始されます。 このタスクでは、ワークフローは繰り返しトリガーで開始されます。

    • 各ステップには、状態と実行継続時間が表示されます。 継続時間が 0 秒のステップは、実行が 1 秒未満であったものです。

    Screenshot that shows each step in the run, status, and run duration.

  5. 各ステップの入力と出力を確認するには、ステップを選択して展開します。

    この例では、繰り返しトリガーの入力を示しています。このトリガーは、ワークフローの実行時のみを指定し、後続の処理のための出力を提供しないため、出力がありません。

    Screenshot that shows the expanded trigger and inputs.

    これに対して、 [電子メールの送信] アクションには、ワークフローの前のアクションからの入力と、出力があります。

    Screenshot that shows an expanded action, inputs, and outputs.

アプリ、データ、サービス、およびシステムを、Azure リソースの自動化タスクのコンテキストとは別に統合できるように、独自の自動化されたワークフローを構築する方法については、Azure portal を使用して従量課金ロジック アプリ ワークフローの例を作成するクイックスタートに関するページを参照してください。

タスクを編集する

タスクを変更するには、次のオプションがあります。

タスクをインラインで編集する

  1. Azure portal で、更新するタスクが含まれているリソースを見つけます。

  2. リソース ナビゲーション メニューの [Automation] セクションで、 [タスク (プレビュー)] を選びます。

  3. [タスク] 一覧で、更新するタスクを見つけます。 タスクの省略記号 ( ... ) メニューを開き、 [インラインで編集] を選択します。

    Screenshot that shows the opened ellipses menu and the selected option,

    既定では、 [認証] タブが表示され、既存の接続が表示されます。

  4. 新しい認証資格情報を追加するか、接続に使用する既存の認証資格情報を選択するには、接続の省略記号 ( ... ) メニューを開き、 [新しい接続の追加] または使用可能な場合は別の認証資格情報を選択します。

    Screenshot that shows the Authentication tab, existing connections, and the selected ellipses menu.

  5. その他のタスクのプロパティを更新するには [次へ: 構成] を選びます。

    この例のタスクでは、編集できる唯一のプロパティはメール アドレスです。

    Screenshot that shows the

  6. 終了したら、 [保存] を選択します。

タスクの基になるワークフローの編集

自動化タスクの基になるワークフローを変更すると、変更内容は、タスクを作成するテンプレートではなく、作成したタスク インスタンスにのみ影響を与えます。 変更を行って保存した後、元のタスクに指定した名前ではタスクを正確に説明できなくなる可能性があるため、別の名前でタスクを作り直す必要があるかもしれません。

ヒント

ベスト プラクティスとして、基になるワークフローを複製し、コピーしたバージョンを代わりに編集できるようにします。 こうすることで、既存の機能を中断したり壊したりするリスクを冒すことなく、元の自動化タスクが動作し続けている間にコピー上で変更を行ってテストすることができます。 変更が完了し、新しいバージョンが正常に実行されることを確認したら、元の自動化タスクを無効にするか削除し、自動化タスクで複製されたバージョンを使用することができます。 次の手順には、ワークフローを複製する方法に関する情報が含まれています。

  1. Azure portal で、更新するタスクが含まれているリソースを見つけます。

  2. リソース ナビゲーション メニューの [Automation] セクションで、 [タスク] を選択します。

  3. [タスク] 一覧で、更新するタスクを見つけます。 タスクの省略記号 ( ... ) メニューを開き、 [Open in Logic Apps](Logic Apps で開く) を選択します。

    Screenshot that shows the opened ellipses menu and the selected option,

    タスクの基になるワークフローが Azure Logic Apps サービスで開き、 [概要] ウィンドウが表示されます。ここでは、タスクで使用できるのと同じ実行履歴を表示できます。

    Screenshot that shows the task in Azure Logic Apps view with Overview pane selected.

  4. デザイナーで基になるワークフローを開くには、ロジック アプリのナビゲーション メニューで [ロジック アプリ デザイナー] を選びます。

    Screenshot that shows the

    ワークフローのトリガーとアクションのプロパティを編集したり、ワークフロー自体を定義するトリガーやアクションを編集したりできるようになりました。 ただし、ベスト プラクティスとして、ワークフローを複製する手順に従って、元のワークフローが引き続き動作して実行されている間にコピーに変更を加えることができるようにします。

  5. ワークフローを複製し、コピーされたバージョンを編集するには、次の手順を実行します。

    1. ロジック アプリ ワークフロー メニューで、 [概要] を選択します。

    2. [概要] ウィンドウのツール バーで、 [複製] を選択します。

    3. ロジック アプリの作成ウィンドウで、 [名前] の下に、コピーしたロジック アプリ ワークフローの新しい名前を入力します。

      [ロジック アプリの状態] を除き、他のプロパティを編集することはできません。

    4. [ロジック アプリの状態] で、 [無効] を選択して、変更を行っている間に複製されたワークフローが実行されないようにします。 変更をテストする準備ができたら、ワークフローを有効にできます。

    5. Azure での複製されたワークフローのプロビジョニングが完了したら、デザイナーでそのワークフローを見つけて開きます。

  6. トリガーまたはアクションのプロパティを表示するには、そのトリガーまたはアクションを展開します。

    たとえば、繰り返しトリガーを、毎月ではなく毎週実行するように変更できます。

    Screenshot that shows the expanded Recurrence trigger with the Frequency list open to show available frequency options.

    繰り返しトリガーについて詳しくは、繰り返しトリガーを使用して繰り返しタスクおよびワークフローを作成、スケジュール設定、および実行する方法に関する記事を参照してください。

  7. 変更を保存するには、デザイナーのツール バーで、 [保存] を選択します。

    Screenshot that shows the designer toolbar and the selected

  8. 更新されたワークフローをテストして実行するには、デザイナーのツール バーで [実行] を選択します。

    実行が完了すると、デザイナーにワークフローの実行の詳細が表示されます。

    Screenshot that shows the workflow's run details on the designer.

  9. タスクが実行を続行しないようにワークフローを無効にするには、「Azure portal でロジック アプリを管理する」を参照してください。

ワークフローからオートメーション タスク テンプレートを作成する

独自のオートメーション タスク テンプレートを作成するには、HTTP ベースのトリガーまたは HTTP ベースの Webhook トリガーではなく、定期的な、またはイベントベースのトリガーから始まる従量課金ロジック アプリ ワークフローを使います。 このタスクには、次の項目が必要です。

テンプレートを作成し、Azure でそのテンプレートを使用できるようにするには、次の概要の手順を実行します。

  1. オートメーション タスク テンプレートにワークフローをエクスポートします。
  2. フォークしたリポジトリの作業ブランチにテンプレートをアップロードします。
  3. Web デバッグ ツールまたは Fiddler を使って、テンプレートをテストします。
  4. Azure オートメーション タスク テンプレート GitHub リポジトリの既定のブランチに対して、作業ブランチの pull request (PR) を作成します。

Azure Logic Apps チームが PR を確認し、既定のブランチにマージすることを承認すると、テンプレートは公開され、すべての Azure ユーザーが使用できるようになります。

ワークフローをオートメーション タスク テンプレートにエクスポートする

  1. Azure portal で、エクスポートするロジック アプリ ワークフローを開きます。 ワークフローが、HTTP ベースのトリガーまたは HTTP ベースの Webhook トリガーではなく、定期的な、またはイベントベースのトリガーから始まることを確認します。

  2. ロジック アプリのリソース メニューで、[概要] を選択します。

  3. [概要] ペインのツール バーで [エクスポート]>[Export to Automation Task](オートメーション タスクにエクスポートする) を選びます。

    Screenshot showing the 'Overview' pane toolbar with 'Export' menu open and 'Export to Automation Task' selected.

  4. 開いた [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 サービスのリソース プロバイダー」を参照してください。

    パラメーターを構成する いいえ 場合により異なる 複数の環境にまたがるパラメーター定義がワークフローに含まれている場合、それらのパラメーターはこのセクションに表示され、さらに構成することができます。 各パラメーター値をリソースから提供するか、タスク作成者から提供するかを選択できます。

    - [リソースから] を選択した場合は、そのリソースから使用する [ソース パラメーター] プロパティの値を選択します。

    -- リソース名
    -- リソースの種類
    -- リソース ID
    -- サブスクリプション ID
    -- リソース グループ
    -- リソースの場所

    - [ユーザー指定] を選択した場合は、タスク作成者がパラメーター値を提供する方法を決定するテンプレート形式を選択します。

    -- 既定値: パラメーター値は、間隔、頻度、タイム ゾーン以外のものです。

    ---- パラメーターの表示名、既定値、説明を指定します。

    ---- 値がタイムスタンプ (hh:mm:ss) の場合は、[形式] プロパティに [時刻形式] を設定します。

    ---- このパラメーターを必須とマークするには、[省略可能][必須] に変更します。

    -- 間隔: パラメーター値は、112 などの間隔です。

    -- 頻度: パラメーター値は、[時間][日]、または [月] などの頻度です。

    -- タイムゾーン: パラメーター値は、(UTC-08:00) 太平洋標準時 (米国およびカナダ) などの タイムゾーンです

    次の例は、Azure リソース グループに対してのみ動作するサンプル オートメーション タスク テンプレートのプロパティを示しています。

    Screenshot showing the 'Export to Automation Task' pane with example properties for an automation task template.

    この例では、タスクの基となるワークフローは、以下のパラメーター定義を含んでおり、これらのパラメーター値を指定するのはタスク作成者であることを指定しています。

    パラメーター 説明
    emailAddress レポートの送信先メール アドレスを指定します。 このパラメーターでは、[既定値] テンプレートを使って、パラメーターの情報、期待される形式、パラメーターがオプションかどうかを指定できます。 この例のパラメーターでは、期待される形式は [なし] であり、パラメーターは [必須] です。
    numberOf 仮想マシンがアイドル状態を維持できる最大時間単位を指定します。 このパラメーターには [既定値] テンプレートを使います。
    timeUnit パラメーター値に使う時間単位を指定します。 このパラメーターには [頻度] テンプレートを使います。この場合、タスク作成者が選択できる時間単位が示されます。たとえば、[時間][日][月] などです。
  5. 完了したら、[テンプレートのダウンロード] を選び、.json というファイル名の拡張子を使ってテンプレートを保存します。 一貫性のあるテンプレート名にするには、小文字、単語間のハイフン、次の構文のみを使います。

    <action-verb>-<Azure-resource>

    たとえば、先ほどのテンプレート名の例を基にすると、list-stale-virtual-machines.json というテンプレート ファイル名を付けることができます。

GitHub にテンプレートをアップロードする

  1. GitHub に移動し、GitHub アカウントを使ってサインインします。

  2. Azure オートメーション タスク テンプレートの GitHub リポジトリに移動します。これで、リポジトリ内の既定ブランチが表示されます。

  3. ブランチ リストから作業ブランチに切り替えます。

  4. ファイル一覧の上にある [ファイルの追加]>[ファイルのアップロード] を選びます。

  5. ワークフロー定義ファイルをページ上の指定された領域にドラッグするか、[choose your files](ファイルの選択) を選びます。

  6. テンプレートを追加した後、同じフォルダー内の manifest.json ファイルを開き、<template-name>.json ファイルのエントリを追加します。

テンプレートのテスト

お気に入りの Web デバッグ ツールを使って、作業ディレクトリにアップロードしたテンプレートをテストすることができます。 この例では、Fiddler を使って Web 要求を変更するスクリプトを続けます。 別のツールを使う場合は、そのツールに相当する手順とスクリプトを使います。

  1. 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 のメイン リポジトリからではなく、フォークしたリポジトリから manifest.json<template-name>.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";
       }
    
       {...}
    }
    
  2. テストを実行する前に、必ずすべてのブラウザー ウィンドウを閉じ、Fiddler のブラウザー キャッシュをクリアします。

  3. 新しいブラウザー ウィンドウを開いて、Azure portal にサインインします

  4. オートメーション タスクが見つかると思われる Azure リソースを開きます。 エクスポートしたテンプレートを使ってオートメーション タスクを作成します。 タスクを実行します。

タスクが正常に実行されたら、作業ブランチから既定のブランチへの pull request を作成して続けます。

pull request を作成する

  1. [変更の確定] に、更新の簡潔でわかりやすいタイトルを入力します。 説明ボックスには、さらに詳しい情報を入力できます。

  2. [このコミットのブランチを新規作成し、pull request を開始します。] を選びます。 プロンプトが表示されたら、次の例のように作業ブランチの名前を入力します。

    <your-GitHub-alias>-<automation-task-name>-template

  3. 準備ができたら、[Propose changes](変更の提案) を選びます。 次のページで、[Create pull request](pull request の作成) を選びます。

  4. pull request の名前と説明を指定します。 右下隅にある [Create pull request](pull request の作成) を選びます。

  5. Azure Logic Apps チームが pull request を確認するのを待ちます。

ご意見とご感想

皆様からのご意見をお待ちしております。 バグを報告したり、フィードバックを提供したり、このプレビュー機能について質問したりするには、Azure Logic Apps チームにお問い合わせください。

次のステップ