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

未接続の Azure マネージドディスクを見つける

このチュートリアルでは、未接続の Azure マネージドディスクを検出してレポートをメール送信する、読み取り専用フローの作成手順を説明します。その過程で、Azure nodeFilter ノードや Notification ノードと組み合わせる方法を学びます。

目的とゴール

  • ゴール: サブスクリプション内の Azure マネージドディスクを一覧表示し、そのうち properties.diskStateUnattached のディスクだけを残し、その詳細をメール送信するフローを作成します。このフローはディスクを変更または削除することは一切ありません。

  • 目的: このチュートリアルでは次の内容を学びます。

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

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

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

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

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

Azure では、未接続のマネージドディスクは 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: マネージドディスクを一覧表示する

  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 に置き換えてください。結果が空の場合に通知をスキップする設定は維持し、不要なレポート送信を避けてください。

関連情報