alibabacloud-finops-inspect について
Alibaba Cloud アカウントの利用状況とコストを調べる FinOps スキルです。指定の Python スクリプトで全リージョンを読み取り専用で検査し、優先度付きの提案を出力します。
主な機能
- 01全リージョンのクラウドリソース収集
- 02ECS と RDS の利用率分析
- 03未使用 IP、ディスク、ロードバランサーの検出
- 04優先度付きコスト最適化提案
- 05構造化された検査レポート
活用シーン
- 01ECS と RDS のリソース利用状況の確認
- 02未バインドまたは通信のない EIP の特定
- 03未接続ディスクやバックエンドのないロードバランサーの特定
- 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.mdapi-calling-patterns.mdram-policies.mdrelated-commands.mdverification-method.mdscripts/main.pyrequirements.txt詳細
Alibaba Cloud FinOps リソース検査スキル
⚠️ 必須実行プロトコル ⚠️
このスキルは、次のコマンドを実行してのみ使用してください。
python3 scripts/main.py [parameters]禁止されている操作(違反した場合、実行は無効です):
- ❌
aliyunCLI コマンドを直接実行する- ❌ 独自の bash/python スクリプトを作成する
- ❌ コードから SDK API を直接呼び出す
- ❌
python3 scripts/main.py以外の方法で実行するエージェントは、まずユーザーにパラメーターを確認してから、適切なフラグを指定して
python3 scripts/main.pyを実行する必要があります。例外はありません。
概要
このスキルは、Alibaba Cloud アカウントのすべてのリージョンを対象に、コスト重視のヘルスチェックを実行する事前構築済みの Python スクリプト(scripts/main.py)を提供します。エージェントの役割は、次の操作に限定されます。
- ユーザーの意図を CLI パラメーターに変換する
- ユーザーにパラメーターを確認する(HITL)
python3 scripts/main.py [parameters]を実行する- スクリプトの出力を最終レポートとして提示する
スクリプトは内部で、認証情報の初期化、リージョンの検出、複数の製品にわたるリソース収集、CloudMonitor メトリクスの集計、判定と推奨事項の生成、構造化レポートの出力を処理します。エージェントは、これらのロジックを再実装してはいけません。スクリプトを実行するだけにしてください。
注:以下の「ワークフロー」セクションでは、ドキュメント目的に限り、スクリプトの内部実装について説明しています。エージェントは、この情報を使って独自のコードを記述したり、API を直接呼び出したりしてはいけません。必要な操作は、
python3 scripts/main.pyを実行することだけです。
機能
このスキルは、次の機能を実装しています。
-
認証情報とリージョンの準備
- 優先順位に従って AK/SK を読み込みます:環境変数 → Alibaba Cloud CLI 設定 → 実行時のプロンプト
- ECS API を呼び出して、アカウントで有効になっているすべてのリージョンを自動検出します
--regionsパラメーターを使って、ユーザーがリージョンを明示的に指定できるようにします
-
主要リソースの使用率検査
- ECS インスタンスの CPU、メモリ、IOPS、イントラネット帯域幅について、7 日間の平均を検査します
- RDS インスタンスの CPU、メモリ、IOPS、接続数の使用状況、ディスク使用状況を検査します
- 結果を「重大なアイドル状態」「低使用率」「正常」の 3 段階の深刻度で分類します
- 「停止中だが課金が継続している」プリペイド ECS インスタンスを個別に特定します
- 長期間稼働している(>30 日)PostPaid インスタンスを特定し、コスト削減のため、課金方式を PrePaid(サブスクリプション)に切り替えることを推奨します
-
アイドルリソースの検出
- 未割り当て、またはトラフィックのない Elastic IP(EIP)を検出します
- 未マウントのデータディスクを検出し、作成からの経過日数に基づいて優先度を引き上げます
- リスナーがない、またはバックエンドサーバーがないロードバランサー(CLB/ALB/NLB)を検出します
- EIP が関連付けられていない、または SNAT/DNAT ルールがないパブリック NAT ゲートウェイを検出します
-
最適化の推奨エンジン
- 推奨事項を P0(今すぐ対応)/P1(推奨)/P2(経過観察)に分類します
- リソースのシナリオごとに最適化の推奨テンプレートを適用します(ダウンサイジング/解放/課金方式の切り替え/サーバーレスへの変換など)
- 各リソースの推定月額コストを任意で表示できます
-
レポート出力
- 構造化テキストレポート:検査の概要+リソースごとの詳細テーブル+推奨事項の概要+エラーの概要
重要な注意事項
- 読み取り専用の保証:
- このスキルは、読み取り専用 API である
Describe*/List*のみを呼び出します。Delete / Stop / Modify 操作は一切実行しません。すべての推奨事項には、「実行前に確認してください」という警告が含まれます。
- このスキルは、読み取り専用 API である
- 操作コスト:
- このスキル自体が実リソースを作成することはありませんが、多数の読み取り専用 OpenAPI 呼び出しを実行します。大規模なアカウント環境(数千のインスタンス × 複数のリージョン × 複数のメトリクス)では、CloudMonitor の呼び出し量が大きくなるため、API Throttling を引き起こさないよう、組み込みのスロットリングが必要です。
- 認証情報のセキュリティ:
- AK/SK はメモリ内でのみ使用され、永続化、ログへの書き込み、レポートへの記載は一切行われません。最小権限の RAM サブアカウントでの実行を推奨します。
- メモリメトリクスの依存関係:
- ECS のメモリ使用率を取得するには、インスタンスに CloudMonitor エージェント(
cloudmonitor-agent)がインストールされている必要があります。エージェントがないインスタンスには「メモリデータなし」のフラグが付けられ、CPU メトリクスのみで判定されます。
- ECS のメモリ使用率を取得するには、インスタンスに CloudMonitor エージェント(
- 観測期間の処理:
- 過去 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:DescribeDisksrds:DescribeDBInstancesvpc:DescribeEipAddresses/vpc:DescribeNatGateways/vpc:DescribeSnatTableEntries/vpc:DescribeForwardTableEntriesslb:DescribeLoadBalancers/slb:DescribeLoadBalancerListenersalb:ListLoadBalancers/alb:ListListeners/alb:ListServerGroups/alb:ListServerGroupServersnlb:ListLoadBalancers/nlb:ListListeners/nlb:ListServerGroupscms: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 の生成ルール
- 優先する情報源:環境変数
SKILL_SESSION_IDから読み取ります(Agent ランタイムがSKILL_SESSION_ID=xxx python3 scripts/main.pyを介して設定します)。 - フォールバック:
SKILL_SESSION_IDが未設定または空の場合は、UUID4 の 16 進数文字列(uuid.uuid4().hex)をセッション ID として生成します。形式は32 文字の小文字の 16 進数文字列です(例:a1b2c3d4e5f6789012345678abcdef01)。 - 不変性:1 回の実行中、セッション ID は常に同じ値でなければなりません。プロセスの起動時に一度生成し、その後のすべての API 呼び出しで再利用してください。
- 完全性: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]のみです。
aliyunCLI を直接使用してはいけません。カスタムスクリプトを作成してはいけません。API を直接呼び出してはいけません。 これらのいずれかを行った場合、実行は無効となり、評価に失敗します。
-
単一のエントリーポイント:すべての調査タスクは、適切な CLI パラメーターを指定して
python3 scripts/main.pyのみで実行しなければなりません。エージェントは、以下を行ってはいけません。- ❌
aliyun ecs/rds/vpc/slbCLI コマンドを直接実行する - ❌ 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 の完了前に実行してはいけません。 ユーザーの確認なしにスクリプトを実行した場合、その実行は無効です。
- ❌
-
パラメーターのマッピング:エージェントは、ユーザーの意図を適切な 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。ユーザーがリージョンを指定したにもかかわらず、全リージョンをスキャンすると無効です。 - ユーザーがリージョンを指定した場合 →
-
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つのセクションをすべて順番どおりに含める必要があります。
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 のリストを確認します。
- EIP がバインドされていない → 「完全にアイドル」(P0)
- EIP がバインドされているが、DescribeSnatTableEntries と DescribeForwardTableEntries の両方がエントリを 0 件返す → 「設定不足」(P0)
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
| パラメーター | デフォルト | 説明 |
|---|---|---|
--regions | all regions | カンマ区切りの Region ID |
--types | all types | リソースタイプ:ecs,rds,eip,disk,clb,alb,nlb,nat |
--cpu-threshold | 10 | CPU 低使用率のしきい値(%) |
--memory-threshold | 20 | メモリ低使用率のしきい値(%) |
--days | 7 | モニタリングの遡及日数 |
--idle-only | false | アイドル状態のリソースのみを検査します |
--utilization-only | false | 使用率のみを検査します |