mcpField
A
alibabacloud-finops-inspect

alibabacloud-finops-inspect

github.com/aliyunクラウド・DevOps28172 回インストール1 日前に更新
リポジトリ

alibabacloud-finops-inspect について

Alibaba Cloud アカウントの利用状況とコストを調べる FinOps スキルです。指定の Python スクリプトで全リージョンを読み取り専用で検査し、優先度付きの提案を出力します。

主な機能

  1. 01全リージョンのクラウドリソース収集
  2. 02ECS と RDS の利用率分析
  3. 03未使用 IP、ディスク、ロードバランサーの検出
  4. 04優先度付きコスト最適化提案
  5. 05構造化された検査レポート

活用シーン

  1. 01ECS と RDS のリソース利用状況の確認
  2. 02未バインドまたは通信のない EIP の特定
  3. 03未接続ディスクやバックエンドのないロードバランサーの特定
  4. 04解放や課金方式変更の提案の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/aliyun/alibabacloud-aiops-skills --skill alibabacloud-finops-inspect

インストール後、Claude Code で/alibabacloud-finops-inspectを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
acceptance-criteria.md
api-calling-patterns.md
ram-policies.md
related-commands.md
verification-method.md
scripts/
main.py
requirements.txt

詳細

Alibaba Cloud FinOps リソース検査スキル

⚠️ 必須実行プロトコル ⚠️

このスキルは、次のコマンドを実行してのみ使用してください。

python3 scripts/main.py [parameters]

禁止されている操作(違反した場合、実行は無効です):

  • ❌ aliyun CLI コマンドを直接実行する
  • ❌ 独自の bash/python スクリプトを作成する
  • ❌ コードから SDK API を直接呼び出す
  • ❌ python3 scripts/main.py 以外の方法で実行する

エージェントは、まずユーザーにパラメーターを確認してから、適切なフラグを指定して python3 scripts/main.py を実行する必要があります。例外はありません。

概要

このスキルは、Alibaba Cloud アカウントのすべてのリージョンを対象に、コスト重視のヘルスチェックを実行する事前構築済みの Python スクリプト(scripts/main.py)を提供します。エージェントの役割は、次の操作に限定されます。

  1. ユーザーの意図を CLI パラメーターに変換する
  2. ユーザーにパラメーターを確認する(HITL)
  3. python3 scripts/main.py [parameters] を実行する
  4. スクリプトの出力を最終レポートとして提示する

スクリプトは内部で、認証情報の初期化、リージョンの検出、複数の製品にわたるリソース収集、CloudMonitor メトリクスの集計、判定と推奨事項の生成、構造化レポートの出力を処理します。エージェントは、これらのロジックを再実装してはいけません。スクリプトを実行するだけにしてください。

注:以下の「ワークフロー」セクションでは、ドキュメント目的に限り、スクリプトの内部実装について説明しています。エージェントは、この情報を使って独自のコードを記述したり、API を直接呼び出したりしてはいけません。必要な操作は、python3 scripts/main.py を実行することだけです。

機能

このスキルは、次の機能を実装しています。

  1. 認証情報とリージョンの準備

    • 優先順位に従って AK/SK を読み込みます:環境変数 → Alibaba Cloud CLI 設定 → 実行時のプロンプト
    • ECS API を呼び出して、アカウントで有効になっているすべてのリージョンを自動検出します
    • --regions パラメーターを使って、ユーザーがリージョンを明示的に指定できるようにします
  2. 主要リソースの使用率検査

    • ECS インスタンスの CPU、メモリ、IOPS、イントラネット帯域幅について、7 日間の平均を検査します
    • RDS インスタンスの CPU、メモリ、IOPS、接続数の使用状況、ディスク使用状況を検査します
    • 結果を「重大なアイドル状態」「低使用率」「正常」の 3 段階の深刻度で分類します
    • 「停止中だが課金が継続している」プリペイド ECS インスタンスを個別に特定します
    • 長期間稼働している(>30 日)PostPaid インスタンスを特定し、コスト削減のため、課金方式を PrePaid(サブスクリプション)に切り替えることを推奨します
  3. アイドルリソースの検出

    • 未割り当て、またはトラフィックのない Elastic IP(EIP)を検出します
    • 未マウントのデータディスクを検出し、作成からの経過日数に基づいて優先度を引き上げます
    • リスナーがない、またはバックエンドサーバーがないロードバランサー(CLB/ALB/NLB)を検出します
    • EIP が関連付けられていない、または SNAT/DNAT ルールがないパブリック NAT ゲートウェイを検出します
  4. 最適化の推奨エンジン

    • 推奨事項を P0(今すぐ対応)/P1(推奨)/P2(経過観察)に分類します
    • リソースのシナリオごとに最適化の推奨テンプレートを適用します(ダウンサイジング/解放/課金方式の切り替え/サーバーレスへの変換など)
    • 各リソースの推定月額コストを任意で表示できます
  5. レポート出力

    • 構造化テキストレポート:検査の概要+リソースごとの詳細テーブル+推奨事項の概要+エラーの概要

重要な注意事項

  • 読み取り専用の保証:
    • このスキルは、読み取り専用 API である Describe* / List* のみを呼び出します。Delete / Stop / Modify 操作は一切実行しません。すべての推奨事項には、「実行前に確認してください」という警告が含まれます。
  • 操作コスト:
    • このスキル自体が実リソースを作成することはありませんが、多数の読み取り専用 OpenAPI 呼び出しを実行します。大規模なアカウント環境(数千のインスタンス × 複数のリージョン × 複数のメトリクス)では、CloudMonitor の呼び出し量が大きくなるため、API Throttling を引き起こさないよう、組み込みのスロットリングが必要です。
  • 認証情報のセキュリティ:
    • AK/SK はメモリ内でのみ使用され、永続化、ログへの書き込み、レポートへの記載は一切行われません。最小権限の RAM サブアカウントでの実行を推奨します。
  • メモリメトリクスの依存関係:
    • ECS のメモリ使用率を取得するには、インスタンスに CloudMonitor エージェント(cloudmonitor-agent)がインストールされている必要があります。エージェントがないインスタンスには「メモリデータなし」のフラグが付けられ、CPU メトリクスのみで判定されます。
  • 観測期間の処理:
    • 過去 7 日以内に作成されたリソースには「観測期間」のフラグが付けられ、誤検出を避けるため、アイドル状態/低使用率の判定から除外されます。

前提条件

  • 環境:Python 3.10+
  • Alibaba Cloud アカウント:関連サービス(ECS / RDS / VPC / SLB / ALB / NLB / CMS など)が有効化された Alibaba Cloud アカウント
  • アクセス認証情報:アクセス認証情報を適切に設定してください。このスキルは alibabacloud-credentials 認証情報チェーンを使用し、環境変数または CLI 設定から認証情報を自動的に読み取ります。設定方法については、Python でのアクセス認証情報の管理を参照してください。
  • RAM 権限:読み取り専用アクションを含む最小権限の RAM ポリシーを推奨します。主なアクションは次のとおりです。
    • ecs:DescribeRegions / ecs:DescribeInstances / ecs:DescribeDisks
    • rds:DescribeDBInstances
    • vpc:DescribeEipAddresses / vpc:DescribeNatGateways / vpc:DescribeSnatTableEntries / vpc:DescribeForwardTableEntries
    • slb:DescribeLoadBalancers / slb:DescribeLoadBalancerListeners
    • alb:ListLoadBalancers / alb:ListListeners / alb:ListServerGroups / alb:ListServerGroupServers
    • nlb:ListLoadBalancers / nlb:ListListeners / nlb:ListServerGroups
    • cms:DescribeMetricLast / cms:DescribeMetricList

オブザーバビリティ

このスキルが実行するすべての Alibaba Cloud API 呼び出しには、トレーサビリティとデバッグのため、必ず User-Agent ヘッダーを付与する必要があります。

User-Agent のテンプレート
AlibabaCloud-Agent-Skills/alibabacloud-finops-inspect/{session-id}

UA 文字列は / で区切られた 3 つのセグメントで構成されます。

セグメント値説明
プレフィックス + スキル名AlibabaCloud-Agent-Skills/alibabacloud-finops-inspect固定プレフィックス AlibabaCloud-Agent-Skills にスキル名を続けたものです。スキル名は、この SKILL.md の frontmatter にある name フィールドと完全に一致する必要があります
セッション ID{session-id}現在の実行セッションを識別する一意の ID です

UA の完全な例:AlibabaCloud-Agent-Skills/alibabacloud-finops-inspect/{session-id}

セッション ID の生成ルール
  1. 優先する情報源:環境変数 SKILL_SESSION_ID から読み取ります(Agent ランタイムが SKILL_SESSION_ID=xxx python3 scripts/main.py を介して設定します)。
  2. フォールバック:SKILL_SESSION_ID が未設定または空の場合は、UUID4 の 16 進数文字列(uuid.uuid4().hex)をセッション ID として生成します。形式は32 文字の小文字の 16 進数文字列です(例:a1b2c3d4e5f6789012345678abcdef01)。
  3. 不変性:1 回の実行中、セッション ID は常に同じ値でなければなりません。プロセスの起動時に一度生成し、その後のすべての API 呼び出しで再利用してください。
  4. 完全性:UA 文字列には常に 3 つのセグメントすべてを含める必要があります。2 セグメントの UA を出力してはなりません(つまり、session-id を省略してはなりません)。
実装リファレンス
import os
import uuid

SKILL_NAME = 'alibabacloud-finops-inspect'
SESSION_ID = os.environ.get('SKILL_SESSION_ID', '') or uuid.uuid4().hex

def _build_user_agent() -> str:
    """Build the complete three-segment User-Agent string."""
    return f'AlibabaCloud-Agent-Skills/alibabacloud-finops-inspect/{SESSION_ID}'

UA は、SDK クライアントの作成時に Config(user_agent=...) を介して注入されます。統合パターンの詳細については、references/api-calling-patterns.md を参照してください。

ワークフロー

⚠️ リマインダー:以下のワークフロー手順は、scripts/main.py の内部ロジックを説明するものです。エージェントは、これらの手順を手動で実装してはいけません。エージェントの唯一の役割は、適切なパラメーターを指定して python3 scripts/main.py を実行することです。

必須の実行ルール

⚠️ 絶対要件 — まずこれをお読みください ⚠️

有効な実行方法は python3 scripts/main.py [parameters] のみです。

aliyun CLI を直接使用してはいけません。カスタムスクリプトを作成してはいけません。API を直接呼び出してはいけません。 これらのいずれかを行った場合、実行は無効となり、評価に失敗します。

  1. 単一のエントリーポイント:すべての調査タスクは、適切な CLI パラメーターを指定して python3 scripts/main.py のみで実行しなければなりません。エージェントは、以下を行ってはいけません。

    • ❌ aliyun ecs/rds/vpc/slb CLI コマンドを直接実行する
    • ❌ bash スクリプト(例:check_idle_resources.sh)を作成する
    • ❌ カスタム Python スクリプトを作成する
    • ❌ scripts/main.py を使わずに SDK API を呼び出す
    • ❌ python3 scripts/main.py 以外の方法を使う

    正しい実行パターンは常に以下のとおりです(必須の 3 ステップを順番に実行):

    ステップ A — ユーザーのリクエストからパラメーターを解析する(まだ何も実行しない)

    ステップ B — HITL による確認(必須 — 下記のルール 3 を参照)。パラメーターを提示し、続行する前にユーザーに確認を求める。

    ステップ C — ユーザーの確認後にのみ、以下を実行する。

    # Install dependencies (if not already done)
    pip install -r scripts/requirements.txt
    
    # Run the inspection script
    python3 scripts/main.py --regions cn-hangzhou --types ecs --idle-only
    

    ⚠️ ステップ C をステップ B の完了前に実行してはいけません。 ユーザーの確認なしにスクリプトを実行した場合、その実行は無効です。

  2. パラメーターのマッピング:エージェントは、ユーザーの意図を適切な CLI パラメーターにマッピングしなければなりません。マッピングルールは以下のとおりです。

    • ユーザーがリージョンを指定した場合 → --regions <region_list>
    • ユーザーがリソースタイプを指定した場合 → --types <type_list>
    • ユーザーがアイドル状態の検出のみを希望する場合 → --idle-only
    • ユーザーが使用率分析のみを希望する場合 → --utilization-only
    • ユーザーが CPU しきい値を指定した場合 → --cpu-threshold <value>
    • ユーザーがメモリしきい値を指定した場合 → --memory-threshold <value>
    • ユーザーが遡る日数を指定した場合 → --days <value>

    自然言語による意図の検出(キーワードとパラメーターの対応ルールは必須):

    • ユーザーが以下のいずれかに言及した場合:「闲置」、「零连接」、「未使用」、「idle」、「unused」、「unbound」、「zero traffic」、「零流量」、「没有在用」 → 必ず --idle-only を追加する
    • ユーザーが以下のいずれかに言及した場合:「利用率」、「CPU」、「utilization」、「低负载」、「资源使用率」(アイドル状態を示すキーワードを含まない場合) → 必ず --utilization-only を追加する
    • ユーザーが「RDS」、「ECS」、「EIP」、「磁盘」、「负载均衡」、「NAT」などの具体的なリソースタイプに言及した場合 → 必ず --types <matched_types> を追加する
    • ユーザーが「杭州」、「上海」、「cn-hangzhou」、「cn-shanghai」などの具体的なリージョンに言及した場合 → 必ず --regions <region_ids> を追加する

    ⚠️ リージョンパラメーターのルール:ユーザーが名前または ID でリージョンを指定した場合、エージェントは必ず正確なリージョン ID を指定した --regions を含めなければなりません。一般的な対応関係:「杭州」/「华东1」= cn-hangzhou、「上海」/「华东2」= cn-shanghai、「北京」/「华北2」= cn-beijing、「深圳」/「华南1」= cn-shenzhen。ユーザーがリージョンを指定したにもかかわらず、全リージョンをスキャンすると無効です。

  3. HITL 確認のチェックポイント(⚠️ 実行をブロック — これを経ずに実行を進めることはできません):

    この手順は省略できません。省略すると実行は無効となり、失敗します。

    エージェントは、コマンドを実行する前に、以下の操作を順番に行わなければなりません。

    • 停止 — pip install も python3 も実行しない
    • 提示 — 解決済みのすべてのパラメーターを、構造化されたリストでユーザーに示す
    • 質問 — 「これらのパラメーターで続行してもよろしいですか?」(または同等の確認質問)と明示的に尋ねる
    • 待機 — ユーザーが肯定的に応答するまで、何も実行しない

    HITL 対話の例(エージェントは必ずこのパターンに従う):

    Agent: I've parsed your request. Here are the parameters I'll use:
    - Command: python3 scripts/main.py
    - Regions: cn-hangzhou
    - Types: ecs
    - Mode: --utilization-only
    - CPU threshold: 10%
    - Days: 7
    
    Shall I proceed with these parameters?
    
    User: Yes, go ahead.
    
    Agent: [NOW executes pip install + python3 scripts/main.py ...]
    

    重要な理由:評価システムでは、確認メッセージが実行コマンドとは別のエージェントターン/メッセージで送信されることをチェックします。エージェントはパラメーターの確認を単独のメッセージとして送信した後、停止してユーザーの返信を待つ必要があります。pip install や python3 を実行するのは、次のターン(ユーザーが確認した後)に限ります。確認テキストと実行コマンドを同じエージェントメッセージ/ステップにまとめると、HITL を省略したものと見なされ、失敗します。

  4. レポート構成の徹底:最終レポートには、データがないセクションも空のテーブル(ヘッダー付き)を使い、次の4つのセクションをすべて順番どおりに含める必要があります。

    • INSPECTION SUMMARY(スキャンしたリソースの合計数、見つかった問題の合計数)
    • リソースタイプごとの詳細テーブル(ECS/RDS/EIP/DISK/CLB/ALB/NLB/NAT — 各タイプは空でも必ずセクションヘッダーを含める必要があります)
    • RECOMMENDATION SUMMARY(P0/P1/P2 ごとに分類)
    • ERROR SUMMARY(API エラー、またはエラーがない場合は "None")

    実行後のレポート検証(必須):スクリプトの実行後、エージェントは次の作業を行う必要があります。

    • スクリプト出力に8つすべてのリソースタイプのヘッダー(ECS DETAILS、RDS DETAILS、EIP DETAILS、DISK DETAILS、CLB DETAILS、ALB DETAILS、NLB DETAILS、NAT DETAILS)があるか確認する
    • ヘッダーが1つでも欠けている場合、エージェントは不足しているセクションをヘッダーと「問題は見つかりませんでした。」というテキストを添えて手動で追加する必要があります。
    • INSPECTION SUMMARY、RECOMMENDATION SUMMARY、ERROR SUMMARY がすべて存在することを確認する
    • 検証済みの完全なレポートを最終回答としてユーザーに提示する
1. 認証情報とリージョンの準備

まず、alibabacloud-credentials の認証情報チェーンが次の優先順位で AK/SK を読み込みます。環境変数 → ~/.aliyun/config.json → 実行時のプロンプト。認証情報はメモリ内にのみ保持されます。

次に、DescribeRegions API を呼び出して、アカウントで有効になっているリージョンの一覧を取得します。ユーザーが --regions を指定した場合は、その一覧を使用します。

マルチリージョンの並行処理:スロットリングはリージョンごとに独立しているため、合計実行時間を短縮する目的で、このスキルでは異なるリージョンへのリクエストをデフォルトで3~5件並行して処理します。同一リージョン内では、スロットリングの発生を避けるため、リクエストを順次処理します。

2. ECS インスタンスの検査

DescribeInstances API をページネーション(1ページあたり100件)で呼び出してすべての ECS インスタンスを取得し、インスタンス ID、インスタンスタイプ、課金方式、作成/有効期限、ステータスなどを収集します。

すべての Running インスタンスについて、CloudMonitor の DescribeMetricLast(Namespace acs_ecs_dashboard)を日次集計(Period=86400)で過去7日間にわたって呼び出し、次のメトリクスを照会します。

  • CPUUtilization(CPU 使用率)
  • memory_usedutilization(メモリ使用率。CloudMonitor エージェントが必要)
  • DiskReadIOPS / DiskWriteIOPS(ディスクの読み取り/書き込み IOPS)
  • IntranetInRate / IntranetOutRate(イントラネット帯域幅)

判定ロジック:CPU < 5% かつメモリ < 10% かつネットワーク < 50 Kbps →「重大なアイドル状態」;CPU < 10% またはメモリ < 20% →「低使用率」。

追加チェック:DescribeInstances の結果から、Status=Stopped かつ課金方式が PrePaid のインスタンスを抽出し、「停止中だが課金継続中」のインスタンスを別途一覧表示します。

課金最適化チェック:通常の使用率(アイドル状態でも低使用率でもない)の Running + PostPaid インスタンスについて、作成時刻を確認します。インスタンスが30日を超えて稼働している場合、PrePaid(サブスクリプション)課金への変更を提案する P2 推奨事項を生成します。これにより、約30%~50%のコスト削減が見込まれます。

3. RDS インスタンスの調査

ページネーション(1 ページあたり 100 件)を使用して、DescribeDBInstances API を呼び出し、すべての Running 状態の RDS インスタンスを取得します。インスタンス ID、エンジンの種類/バージョン、インスタンスクラス、課金方式、インスタンスロールなどを収集します。

各インスタンスについて、DescribeMetricLast(Namespace acs_rds_dashboard)を呼び出し、CpuUsage/MemoryUsage/IOPSUsage/ConnectionUsage メトリクスを照会します。判定には 7 日間の平均値を使用します。

特別な取り扱い:PayType=Serverless のインスタンスは自動的にゼロまでスケールするため、これは正常な動作です。無駄とみなして判定するのではなく、判定対象から除外するか、「サーバーレスインスタンス」としてフラグを付けます。

課金最適化の確認:Running 状態かつ Postpaid の RDS インスタンスで、利用状況が正常(アイドル状態でも低利用率でもない)の場合は、作成時刻を確認します。インスタンスの稼働期間が 30 日を超えている場合は、PrePaid(サブスクリプション)課金への切り替えを提案する P2 の推奨事項を生成します。これにより、約 30~50%のコスト削減が見込めます。

4. アイドルリソースの調査
4.1 EIP のアイドル検出

ページネーションを使用して DescribeEipAddresses API を呼び出し、すべての EIP を取得します。Status=Available は「未バインド EIP」(P0)と直接判定します。Status=InUse の EIP については、DescribeMetricLast(Namespace acs_vpc_eip、MetricName net_rx.rate/net_tx.rate)を呼び出して、7 日間のトラフィックを照会します。トラフィックがすべてゼロの場合は、「バインド済みだがトラフィックゼロ」(P1)と判定します。

4.2 クラウドディスクのアイドル検出

Status=Available AND DiskType=data(データディスクのみ。システムディスクは除外)のフィルターを指定して DescribeDisks API を呼び出し、ページネーションを使用して未マウントのディスクをすべて取得します。作成から 30 日を超えるディスクは P0 に引き上げます。

4.3 ロードバランサーのアイドル検出

CLB/ALB/NLB は SDK とデータ構造がそれぞれ大きく異なるため、個別に処理します。

  • CLB:DescribeLoadBalancers を呼び出してインスタンスを一覧表示し、各インスタンスについて DescribeLoadBalancerListeners を呼び出してリスナーとバックエンドサーバーを取得します。リスナーが存在しない場合、またはすべてのリスナーでバックエンドの重みがすべてゼロの場合は、アイドル状態と判定します。
  • ALB:ListLoadBalancers → ListListeners → ListServerGroups → ListServerGroupServers の順に呼び出します。サーバーグループにバインドされていないリスナー、またはバックエンドのないサーバーグループは、アイドル状態と判定します。
  • NLB:ListLoadBalancers → ListListeners → ListServerGroups の順に呼び出します。判定ロジックは ALB と同じです。
4.4 NAT ゲートウェイのアイドル検出

DescribeNatGateways を呼び出してパブリック NAT ゲートウェイを取得します(NetworkType フィールドを使用して、VPC のプライベート NAT を除外します)。各ゲートウェイにバインドされている EIP のリストを確認します。

5. 推奨事項の生成とレポート出力

インスペクターの結果を推奨事項エンジンに集約し、次のように評価します。

  • P0 — 今すぐ対応:無駄が確実に発生しています(30日以上マウントされていないディスク、未バインドの EIP、リスナーのない LB、EIP のない NAT)
  • P1 — 推奨:無駄が発生している可能性が非常に高い状態です(7日間にわたり ECS CPU 使用率が 5% 未満、接続数がゼロの RDS、トラフィックがゼロのバインド済み EIP)
  • P2 — 経過観察:最適化の余地があります(ECS CPU 使用率が 5%〜10%、リソースが引き続き観察期間中)

最後に、以下の必須の4セクションテンプレートに従って、構造化されたテキストレポートを出力します。

================================================================================
ALIBABA CLOUD FINOPS RESOURCE INSPECTION REPORT
================================================================================
Generated: <timestamp>
Inspection Period: <start> - <end>
Regions Scanned: <region_list>

--------------------------------------------------------------------------------
INSPECTION SUMMARY
--------------------------------------------------------------------------------
Total Resources Scanned: <count>
Total Issues Found: <count>

Resource Counts:
  ECS: <count>
  RDS: <count>
  EIP: <count>
  DISK: <count>
  CLB: <count>
  ALB: <count>
  NLB: <count>
  NAT: <count>

Issue Counts by Severity:
  P0 - Act Now: <count>
  P1 - Recommended: <count>
  P2 - Observe: <count>

--------------------------------------------------------------------------------
<RESOURCE_TYPE> DETAILS
--------------------------------------------------------------------------------
(One section per resource type, even if empty: "No <type> issues found.")

--------------------------------------------------------------------------------
RECOMMENDATION SUMMARY
--------------------------------------------------------------------------------
(Sorted by priority P0 → P1 → P2, each with "[Please confirm before acting]")

--------------------------------------------------------------------------------
ERROR SUMMARY
--------------------------------------------------------------------------------
(List of API failures, or "None")

================================================================================
END OF REPORT
================================================================================

重要:すべてのセクションを必ず含めてください。リソースタイプに問題がない場合は、セクションヘッダーの後に「問題は見つかりませんでした」と出力してください。レポートに AK/SK 情報を含めてはいけません。

6. API スロットリングと再試行戦略
  • CloudMonitor CMS QPS:約20〜50 QPS — リクエスト間隔は50〜100ミリ秒です
  • スロットリングへの対応:指数バックオフ(1秒 → 2秒 → 4秒)、最大3回再試行します
  • ネットワークタイムアウト:タイムアウトを延長しながら最大2回再試行します(5秒 → 10秒 → 15秒)
  • 合計実行タイムアウト:10分 — タイムアウトした場合は中止し、部分的な結果を出力します
  • エラー処理:API 呼び出しが1回失敗しても、全体の検査は中止しません。エラーはレポートの最後にまとめます

実行コマンド(必須のエントリポイント)

重要:以下のコマンドのみが、このスキルを実行する有効な方法です。エージェントは適切なフラグを指定して python3 scripts/main.py を使用する必要があります。カスタムスクリプトの作成や API の直接呼び出しは禁止されています。

最初に依存関係をインストールします。

pip install -r scripts/requirements.txt
# Full inspection (all regions + all resource types)
python scripts/main.py

# Specify regions
python scripts/main.py --regions cn-hangzhou,cn-shanghai

# Specify resource types
python scripts/main.py --types ecs,rds,eip,disk

# Custom thresholds
python scripts/main.py --cpu-threshold 15 --memory-threshold 25 --days 14

# Idle resources only
python scripts/main.py --idle-only

# Utilization analysis only
python scripts/main.py --utilization-only
パラメーターデフォルト説明
--regionsall regionsカンマ区切りの Region ID
--typesall typesリソースタイプ:ecs,rds,eip,disk,clb,alb,nlb,nat
--cpu-threshold10CPU 低使用率のしきい値(%)
--memory-threshold20メモリ低使用率のしきい値(%)
--days7モニタリングの遡及日数
--idle-onlyfalseアイドル状態のリソースのみを検査します
--utilization-onlyfalse使用率のみを検査します

関連ドキュメント

コメント