次の方法で共有


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

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 を使用して電子メールを送信する場合)。

自動化タスクの作成

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

  2. リソース サイドバー メニューの [ Automation] で、[タスク] を選択 します

    [タスク] が強調表示されている Azure portal とストレージ アカウントのリソース メニューを示すスクリーンショット。

  3. [ タスク ] ページのツール バーで、[ タスクの追加] を選択します。

    [タスクの追加] オプションが表示された [タスク] ページを示すスクリーンショット。

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

    次の使用例は、[リソース タスクの 毎月のコストを送信する ] テンプレートを選択します。

    このスクリーンショットは、[リソースの毎月のコストを送信] テンプレートが強調表示された [タスクの追加] 作業ウィンドウと、選択可能なオプションを示しています。

  5. [ 認証] の [ 接続 ] セクションで、タスクに表示されるすべての接続の 作成 を選択します。 タスク内の接続の種類は異なります。

    Azure Resource Manager 接続の [作成] オプションを示すスクリーンショット。

  6. メッセージが表示されたら、Azure アカウントの資格情報でサインインします。

    [サインイン] を選択できる [接続] ウィンドウを示すスクリーンショット。

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

    [接続済み] 状態の接続を示すスクリーンショット。

  7. すべての接続を認証したら、[ 次へ: 構成] を選択します。

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

    Note

    作成後にタスク名を変更することはできません。 タスクに SendMonthlyCost名前を付け、後で基になるワークフローを編集して毎週実行する場合、タスクの名前を SendWeeklyCostに変更することはできません。 基になるワークフローを編集する場合は、引き続き適用される名前を検討してください。

    基になるワークフローに加えた変更は、作成したタスクにのみ適用され、タスク テンプレートには適用されません。

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

    タスクを構成するために必要な情報を示すスクリーンショット。

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

    新しいタスクを含む自動化タスクの一覧を示すスクリーンショット。

    ヒント

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

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

    タスクによって送信された電子メール通知を示すスクリーンショット。

タスク履歴の確認

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

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

  2. リソース サイドバー メニューの [ Automation] で、[タスク] を選択 します

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

    [表示] オプションが強調表示された状態で作成したタスクを示すスクリーンショット。

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

    タスクの実行、状態、およびその他の情報を示すスクリーンショット。

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

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

    詳細については、「ワークフロー実行履歴の確認」を参照してください。

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

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

    • ワークフローは、常にトリガーで開始されます。 このタスクでは、ワークフローは繰り返しトリガーで開始されます。
    • 各ステップには、状態と実行継続時間が表示されます。 継続時間が 0 秒のステップは、実行が 1 秒未満であったものです。

    スクリーンショットは、実行、状態、実行期間の各ステップを示しています。

  5. 各ステップの入力と出力を確認するには、ステップを選択すると、入力と出力ペインが開きます。

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

タスクを編集する

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

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

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

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

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

    [省略記号] メニューが開き、オプション [インラインで編集] が選択されているタスクを示すスクリーンショット。

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

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

    既存の接続と選択した省略記号メニューを含む [認証] タブを示すスクリーンショット。

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

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

    メール アドレスを編集できる [構成] タブを示すスクリーンショット。

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

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

自動化タスクの基になるワークフローを変更すると、変更内容は、タスクを作成するテンプレートではなく、作成したタスク インスタンスにのみ影響を与えます。 変更を行って保存した後、元のタスクに指定した名前でタスクが正確に記述されない場合があります。 別の名前でタスクを再作成できます。

ヒント

ベスト プラクティスとして、基になるワークフローを複製し、コピーしたバージョンを編集します。 そうすることで、元のオートメーション タスクの実行が続いている間に、コピーに対する変更を行ってテストできます。 中断や既存の機能の中断を危険にさらすことはありません。

変更が完了し、新しいバージョンが正常に実行されることを確認したら、元の自動化タスクを無効にするか削除できます。 次に、自動化タスクに複製されたバージョンを使用します。 次の手順には、ワークフローを複製する方法に関する情報が含まれています。

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

  2. リソース サイドバー メニューの [ Automation] で、[タスク] を選択 します

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

    開いている省略記号メニューと、選択したオプションの [Logic Apps で開く] を示すスクリーンショット。

    タスクの基になるワークフローが、Azure Logic Apps のデザイナーで開きます。

    基になるワークフローを含むワークフロー デザイナー画面を示すスクリーンショット。

    これで、ワークフローのプロパティを編集できるようになりました。 ベスト プラクティスとして、手順に従ってワークフローを複製します。 元のワークフローが引き続き実行されている間は、コピーに変更を加えることができます。

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

    1. Azure portal の検索ボックスで、 ロジック アプリを見つけて選択し、ロジック アプリ リソースを選択します。

    2. リソースサイドバーメニューで、[ 概要] を選択します。

    3. 概要 ツールバーで 複製 を選択します。

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

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

    5. [ ロジック アプリの状態] で、[無効] を選択 します。 変更を加えた場合、複製されたワークフローは実行されません。 変更をテストする準備ができたら、ワークフローを有効にできます。

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

  5. トリガーまたはアクションのプロパティを表示するには、デザイナーでそのトリガーまたはアクションを選択します。

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

    スクリーンショットでは、[繰り返し] トリガーが表示されており、その情報ウィンドウと [頻度] リストが開いていて、利用可能な頻度オプションが見えるようになっています。

    繰り返しトリガーの詳細については、「繰り返しトリガーを使用して定期的なタスクとワークフローを作成、スケジュール、実行する」を参照してください。

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

    デザイナーのツール バーと強調表示された [保存] アイコンを示すスクリーンショット。

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

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

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

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

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

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

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

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

開始する前に、ワークフローが HTTP ベースのトリガーまたは HTTP ベースの Webhook トリガーではなく、定期的なトリガーまたはイベント ベースのトリガーで開始されていることを確認します。

  1. Azure portal で、エクスポートしたいワークフローを含む Consumption Logic App リソースを開きます。

  2. リソースサイドバーメニューで、[ 概要] を選択します。

  3. [概要] ツール バーの [エクスポート] >[Automation タスクにエクスポート] を選択します。

    [エクスポート] メニューが開き、[Automation タスクにエクスポート] が強調表示されている [概要] ツール バーを示すスクリーンショット。

  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 サービスのリソース プロバイダー」を参照してください。
    パラメーターを構成する いいえ 場合により異なる 複数の環境にまたがるパラメーター定義がワークフローに含まれている場合、それらのパラメーターはこのセクションに表示され、さらに構成することができます。 各パラメーター値をリソースから提供するか、タスク作成者から提供するかを選択できます。

    - [From Resource]\(リソースから\) を選んだ場合、そのリソースから使う [Source Parameter]\(ソース パラメーター\) のプロパティ値を選びます。

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

    - [ユーザー指定] を選んだ場合、タスク作成者がパラメーター値を指定する方法を決定する [テンプレート] の形式を選びます。

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

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

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

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

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

    -- Frequency: パラメーター値は、 時間、月などの頻度 です

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

    次の例は、サンプルのオートメーション タスク テンプレートのプロパティを示しています。

    Automation タスク テンプレートのプロパティの例を含む [Automation にエクスポート] 作業ウィンドウを示すスクリーンショット。

    この例では、タスクの基になるワークフローに次のパラメーター定義が含まれており、これらのパラメーター値がタスク作成者によって提供されることを指定します。

  5. 完了したら、[テンプレートのダウンロード] を選び、.json というファイル名の拡張子を使ってテンプレートを保存します。 一貫性のあるテンプレート名にするには、小文字、単語間のハイフン、次の構文のみを使います。

    <action-verb>-<Azure-resource>

    たとえば、前のテンプレート名の例に基づいて、テンプレート ファイルに power-off-virtual-machine.json名前を付けます。

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

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

  2. 自動化タスク テンプレートの GitHub リポジトリに移動すると、リポジトリ内の既定のブランチに移動します。

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

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

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

  6. テンプレートを追加した後、同じフォルダーで manifest.json ファイルを開き、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 リポジトリからではなく、フォークされたリポジトリから <>.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 チームにお問い合わせください。