メインコンテンツへスキップ

接続されていない Azure managed disk を見つける

このチュートリアルでは、接続されていない Azure managed disk を検出し、レポートをメール送信する読み取り専用フローの構築手順を説明します。その過程で、Azure ノードFilterNotification ノードの組み合わせ方を学びます。

目的と到達目標

  • 目的(Goal): サブスクリプション内の Azure managed disk を一覧表示し、properties.diskStateUnattached のディスクのみを残して、その詳細をメール送信するフローを作成します。フローはディスクを変更または削除することはありません。

  • 到達目標(Objectives): このテュートリアルでは次のことを学びます。

    • CloudFlow から Azure の Disks_List アクションを実行する。

    • ネストされたフィールドで Azure リソースのリストをフィルターする。

    • 結果をメールのテーブルとして整形し、ディスクが一致しない場合は通知をスキップする。

    • ノードをテストし、完了した実行を検証する。

Azure ディスク状態を理解する

Azure は、接続されていない managed disk を diskStateUnattached に設定された状態として報告します。Reserved 状態のディスクは、停止および割り当て解除された仮想マシンに引き続き接続されているため、このフローでは意図的に除外します。状態の完全な一覧は、Azure REST API リファレンスの Disk State を参照してください。

注意

接続されていないディスクにも、組織に必要なデータが含まれている可能性があります。このチュートリアルは候補を報告するだけです。ディスクを削除する前に、その所有者、保持要件、リソース ロック、リカバリ計画を確認し、後でデータが必要になる可能性がある場合はスナップショットを作成してください。ディスクの削除は元に戻せません。詳しくは、Find and delete unattached Azure managed and unmanaged disks を参照してください。

始める前に

  1. ご利用の DoiT アカウントに CloudFlow Editor または CloudFlow Manager 権限が付与されていることを確認してください。CloudFlow permissions を参照してください。

  2. 調査したいサブスクリプションを含む Azure テナントを接続 してください。接続に使用する権限には Microsoft.Compute/disks/read が含まれている必要があります。Azure の Reader ロールにはこの権限が含まれます。

  3. Azure CloudFlow 接続を作成 してください。接続の作成には CloudFlow Manager 権限が必要です。

  4. フローで調査したい Azure サブスクリプション ID を確認してください。

作成を開始する

  1. DoiT コンソール にサインインし、上部ナビゲーションのメガメニューから Automation and operations を選択し、CloudFlow を選択します。

  2. Create CloudFlow を選択します。

ステップ 1: トリガーを追加する

What should start your flow ブロックで Manually start を選択します。手動トリガーを使用すると、フローの構築中に結果を検証しやすくなります。検証後は、custom schedule に切り替えることができます。

ステップ 2: managed disk を一覧表示する

  1. What do you want to do ブロックで Perform an action を選択し、Azure を選び、Disks_List を検索して、一致するアクションを選択します。

  2. ノード名を listManagedDisks とします。

  3. Parameters タブで Subscription ID を入力します。このアクションはサブスクリプション全体のディスクを一覧表示するため、リソースグループは不要です。

  4. Connection タブで、そのサブスクリプションのテナント権限を使用する Azure 接続を選択します。

  5. Test タブで Test を選択します。レスポンスに value リストが含まれ、そのディスクエントリに nameidproperties.diskState が含まれていることを確認します。

  6. Save as test data を選択して、フィルターをテストする際に出力を利用できるようにします。

注意

サポートされている操作では、Azure アクションはページ分割されたレスポンスを自動的に追跡します。Test nodes を参照してください。

ステップ 3: 接続されていないディスクをフィルターする

  1. Filter ノードを追加し、名前を filterUnattachedDisks とします。

  2. Field でプラスアイコン(+)を選択し、2. listManagedDisks.value を選択します。

  3. Filter 1 で条件を properties.diskState == Unattached に設定します。

  4. ノードをテストします。すべての結果で properties.diskStateUnattached に設定されていることを確認します。

このフィルターにより、接続されているディスクと、停止および割り当て解除された仮想マシンによって予約されているディスクが除外されます。

ステップ 4: レポートをメール送信する

  1. Send a message ノードを追加し、名前を notifyUnattachedDisks とします。

  2. Notification providerEmail に設定し、受信者のアドレスを入力し、件名を Unattached Azure managed disks に設定します。

  3. Message に導入文を入力し、続いて <table> ブロック を追加します。プラスアイコン(+)を使って、3. filterUnattachedDisks から参照する各フィールドを挿入します。

    The following Azure managed disks are unattached:

    <table>
    Disk name: {3. filterUnattachedDisks.name}
    Resource ID: {3. filterUnattachedDisks.id}
    Location: {3. filterUnattachedDisks.location}
    Size (GiB): {3. filterUnattachedDisks.properties.diskSizeGB}
    </table>
  4. Don't send notification if no results を選択し、フィルターに一致するディスクがない場合は CloudFlow がメール送信をスキップするようにします。

  5. 通知をテストし、レンダリングされたテーブルを確認します。

フローを公開して実行する

Publish を選択し、続いて Run を選択します。Run history ページで各ノードを展開し、その入力と出力を確認します。

実行で接続されていないディスクが見つかると、受信者にはディスクごとに 1 行のテーブルが届きます。一致するディスクがない場合、フローはメールを送信せずに完了します。

オプション: レポートをスケジュールする

フローを検証したら、手動トリガーを custom schedule(たとえば毎週のスケジュール)に置き換えてください。不要なレポート送信を避けるため、結果が空の場合に通知をスキップする設定は維持してください。

関連情報