mcpField
A
alibabacloud-dts-task-query

alibabacloud-dts-task-query

github.com/aliyunデータ・データベース281174 回インストール1 日前に更新
リポジトリ

alibabacloud-dts-task-query について

Alibaba Cloud CLI を使って Alibaba Cloud DTS の移行、同期、サブスクリプションタスクの状態を照会するエージェントスキルです。リージョンやジョブ名で絞り込み、中国語で種類別の詳細を出力します。

主な機能

  1. 01移行、同期、サブスクリプションタスクの照会
  2. 02リージョン、インスタンス、ジョブ名での絞り込み
  3. 03複数リージョンへの並列クエリ
  4. 04失敗時の再試行とレスポンス検証
  5. 05種類別の分類と作成日時順の整列

活用シーン

  1. 01複数リージョンのDTSタスク状態の集約
  2. 02特定のインスタンスや名前に該当するタスクの検索
  3. 03移行、同期、サブスクリプションタスクの詳細確認

インストール

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

$npx skills add https://github.com/aliyun/alibabacloud-aiops-skills --skill alibabacloud-dts-task-query

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

同梱ファイル

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

references/
ram-policies.md
scripts/
query_dts_tasks.py
verify_compliance.sh

詳細

⚠️ 重要:出力の完全性に関する要件

このスキルを使用する場合、スクリプトの結果を省略や要約を一切せず、完全な形で出力する必要があります。スクリプトはすべてのタスク行を完全な形で出力します。モデルの応答でも同じように出力してください。「...」のプレースホルダーを使ったり、タスク数を要約したりしないでください。表示されているすべての行をそのまま出力してください。

DTS タスクステータスの照会

Alibaba Cloud CLI を使用して DTS のタスクステータスを照会します。結果は中国語で出力されます。

前提条件

重要:AI-Mode とプラグインのセットアップが必要です

このスキルを使用する前に、AI-Mode を設定し、プラグインを更新する必要があります。

# Enable AI-Mode for plugin-based API calls
aliyun configure ai-mode enable

# Set user agent for proper plugin compatibility
aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-dts-task-query"

# Update all plugins to latest version
aliyun plugin update --all

# Verify DTS plugin is installed
aliyun plugin list

# To disable AI-Mode later (if needed)
aliyun configure ai-mode disable

注:このスキルではプラグインモードのコマンド(aliyun dts describe-dts-jobs)を使用します。これらのコマンドを正しく動作させるには、AI-Mode を有効にする必要があります。

必要な RAM 権限

必要な RAM ポリシーの詳細については、references/ram-policies.md を参照してください。

サポート対象のリージョン

リージョンが指定されていない場合、パブリッククラウドの 27 のリージョンすべてを自動的に照会します。

使用方法

python scripts/query_dts_tasks.py [--region <id>] [--instance-id <id>] [--job-name <name>] [--workers <N>]

⚠️ 必須 — モデル応答のルール:

  • 常にデータを完全に出力すること:タスク行を一つも省略せず、すべて表示してください
  • 絶対に途中で切り詰めないこと:「...」のプレースホルダーや、「最初の N 件を表示」といった表記、要約は使わないでください
  • 常にすべてのタスクを列挙すること:移行/同期/サブスクライブの各グループに含まれるすべてのタスクを、1 行ずつ表示してください
  • スクリプトは 100% 出力します:スクリプトは完全な出力を保証します。応答も 100% 一致させる必要があります
  • 忘れないでください:スクリプトが 23 件のタスクを出力した場合、23 行すべてを出力してください。例外はありません。

パフォーマンスの調整:

  • --workers:同時に実行する API 呼び出しの数(デフォルト:8)。推奨値:
    • 8:デフォルト。安定したパフォーマンス(全体のスキャンに約 10 秒)
    • 12-16:帯域幅の大きいネットワークで最適(全体のスキャンに約 6~8 秒)
    • >16:API のレート制限、またはローカルリソースの制約に達する可能性があります

信頼性機能(v12):

  • API の再試行ロジック:API 呼び出しが失敗した場合、指数バックオフを使用して最大 3 回再試行し、結果の一貫性を確保します
    • 解決する問題:一時的な API 障害やタイムアウトによる件数のばらつきを解消します
    • 影響:スクリプトは常に同じタスク数を返すようになります(例:32~34 件ではなく、常に 34 件)
    • v12.1:タイムアウトを 10 秒に延長し、信頼性を高めるために指数バックオフ(0.2 秒、0.4 秒)を追加しました
  • スレッドセーフな収集:並列データ収集時の競合状態を防ぐため、Lock を使用します
  • 厳密なレスポンス検証:有効な「DtsJobList」フィールドを含むレスポンスのみを受け付けます
  • 詳細なエラーログ:デバッグを容易にするため、タイムアウトエラーとその他の例外を区別します
  • 検証済み:50 回以上連続で実行し、すべて同一の結果が返ることを確認済みです

実行ルール(必須)

  1. 全件ポーリング: 特定の地域が指定されていない限り、27 のすべての地域と 3 種類のジョブタイプ(MIGRATION、SYNC、SUBSCRIBE)を反復処理する必要があります。
  2. 地域の注入: クエリフェーズで、スクリプトは各タスクオブジェクトに _QueryRegion フィールドを注入する必要があります。
  3. 海外地域のエンドポイント: 海外地域の場合、スクリプトはクエリタスクに --endpoint パラメーターを正常に追加する必要があります。
  4. PayType によるフィルタリング: 一時ファイルを読み込んだ後、PayType が PrePaid または PostPaid のタスクのみを厳密に含めるようフィルタリングする必要があります。
  5. 中国語での出力: 出力(概要とテーブルのヘッダーを含む)はすべて中国語にする必要があります。JobType はマッピングする必要があります(例: migration → 迁移)。
  6. グループ化した出力: タスクはタイプ別(迁移/同步/订阅)にグループ化し、各グループ内で CreateTime の降順(新しい順)に並べます。
  7. 並列実行: スクリプトは並列クエリに ThreadPoolExecutor を使用する必要があります(v11 以降)。デフォルトのワーカー数は 8 で、--workers で設定できます。
  8. API の再試行: 信頼性を確保するため、スクリプトは失敗した API 呼び出しを最大 3 回再試行します(v12 以降)。
  9. スレッドセーフ: スクリプトはデータ収集時の競合状態を防ぐため、スレッドセーフな処理に Lock を使用します(v12 以降)。
  10. パラメーターの厳密性: ユーザー入力で指定された正確な地域 ID とフィルターキーワードを使用する必要があります。ユーザー入力が曖昧に見えても、地域を置き換えてはなりません(例: cn-shanghai)。
  11. フィルターの適用: --job-name が指定されている場合、省略せずにスクリプトへ渡す必要があります。

出力形式

1. 統計概要
  • タスク総数: [Count]
  • 地域別分布: [地域と件数の一覧]
  • ステータス別分布: [ステータスと件数の一覧]
  • タイプ別分布: [ジョブタイプと件数の一覧]
2. タスク詳細

⚠️ 重大な注意 — 出力の完全性:

  • スクリプトは完全な出力を保証します: スクリプトは切り捨てずに、常にすべてのタスクを出力します
  • 必ずすべての行を表示すること: 例外なく、すべてのタスクを1行ずつ列挙する必要があります
  • プレースホルダーは使用しないこと: 「...」などの切り捨てを示す記号を使わず、実際のデータですべてのタスクを表示します
  • 完全な出力例の構造(実際の出力には、切り捨てなしで実データの全行が含まれます):
#### 迁移任务
共 [N] 个
| 地域 | 状态 | DTS任务名称 | 过期时间 | DTS任务ID | 创建时间 | DTS实例ID |
|------|------|-------------|----------|-----------|----------|-----------|
| [Region1] | [Status1] | [Name1] | [ExpireTime1] | [JobID1] | [CreateTime1] | [InstanceID1] |
| [Region2] | [Status2] | [Name2] | [ExpireTime2] | [JobID2] | [CreateTime2] | [InstanceID2] |
| [Region3] | [Status3] | [Name3] | [ExpireTime3] | [JobID3] | [CreateTime3] | [InstanceID3] |

スクリプトは、すべてのタスクについて実データを含む全行を出力します。切り捨てはありません。

移行タスク

合計 [N] 件

地域ステータスDTS タスク名有効期限DTS タスク ID作成日時DTS インスタンス ID
[Region][Status][Name][ExpireTime][JobID][CreateTime][InstanceID]
同期タスク

合計 [N] 件

地域ステータスDTS タスク名有効期限DTS タスク ID作成日時DTS インスタンス ID
[Region][Status][Name][ExpireTime][JobID][CreateTime][InstanceID]
サブスクリプションタスク

合計 [N] 件

地域ステータスDTS タスク名有効期限DTS タスク ID作成日時DTS インスタンス ID
[Region][Status][Name][ExpireTime][JobID][CreateTime][InstanceID]

フィールドの定義:

  • 地域: タスクが存在する地域(中国語表記。例: 华东1(杭州))。
  • ステータス: タスクのステータス(例: Synchronizing、Completed)。
  • タスクタイプ: 中国語にマッピングされます(迁移、同步、订阅)。
  • 有効期限: PrePaid インスタンスの場合のみ表示されます。
  • DTS タスク ID: 一意のタスク識別子(DtsJobId)。
  • DTS インスタンス ID: DTS インスタンスの識別子(DtsInstanceID/DtsInstanceId)。
  • 作成日時: タスクの作成タイムスタンプ(CreateTime)。

ワークフロー

  1. パラメーターを解析します。
  2. セキュリティと検証:
    • リージョンの検証:--region パラメーターは、SUPPORTED_REGIONS のホワイトリストに照らして検証する必要があります。無効なリージョンの場合は、エラーを出して直ちに終了します。
    • ワーカー数の検証:--workers パラメーターは、[1, 32] の範囲内である必要があります。この範囲外の値の場合は、エラーを出して直ちに終了します。
    • API の検証:予備的に describe-dts-jobs を呼び出します。403 または 400 が返された場合は、直ちに停止して RAM の権限に関する問題を報告します。
    • サービスの適用:DTS タスクのクエリでは、DTS 以外のサービス(SchedulerX、ECS、FC など)の呼び出しを厳格に禁止し、すべての呼び出しを DTS API エンドポイントのみに制限します。
  3. パフォーマンス:--workers(デフォルトは 8)を指定して ThreadPoolExecutor を作成します。
  4. リージョンとタイプの組み合わせごとに API を並列でクエリし、_QueryRegion を注入します。海外リージョンには --endpoint も追加します。
  5. 信頼性(フォールバックロジック):特定の対象で describe-dts-jobs が連続して 3 回失敗した場合、他の DTS インターフェイスやその対象のリージョンを試さず、処理を直ちに終了します。
  6. パフォーマンス:1 ページ目が空の場合は、ページネーションをスキップします(早期終了の最適化)。
  7. パフォーマンス:API 呼び出しを最小限に抑えるため、PageSize=200 を使用します(v10 と比較して 50% 削減)。
  8. パフォーマンス:信頼性を高めるため、API 呼び出しごとのタイムアウトを 10s に延長します(v12.1 — 速度と信頼性のバランスを考慮)。
  9. 信頼性:タイムアウトへの対応を改善するため、失敗した API 呼び出しを最大 3 回、指数バックオフ(0.2s、0.4s)で再試行します(v12 以降)。
  10. 信頼性:スレッドセーフなデータ収集のために Lock を使用します(v12)。
  11. 信頼性:API 応答を検証し、有効な「DtsJobList」フィールドを含むもののみを受け入れます(v12)。
  12. 生の JSON を /tmp/dts_raw_*.json に保存します。
  13. 一時ファイルを読み込み、PayType(PrePaid/PostPaid)で絞り込んだ後、ユーザー指定のフィルターを適用します。
  14. タスクをタイプ(Migration/Sync/Subscribe)ごとにグループ化し、各グループを CreateTime の降順(新しい順)に並べ替えます。
  15. タスクの完全な一覧を含む中国語のレポートをフォーマットして出力します(省略なし)。
  16. 一時ファイルを削除します。

出力の完全性保証:

  • ✅ スクリプトはタスクを 100% 出力します:スクリプトは省略せず、常にすべてのタスクを出力します。
  • ✅ すぐに使える形式:出力は、モデルが直接応答に使用できる Markdown テーブル形式です。
  • ✅ 省略ゼロ:いかなる場合も、タスクを非表示にしたり、要約したり、省略したりしません。
  • ✅ すべての行を必ず表示:このスキルを使用する際は、すべてのタスク行を一つ残らず、そのまま出力する必要があります。
  • ✅ 省略禁止:省略、要約、「...」による置き換えは決して行わないでください。
  • ✅ 完全性を維持:スクリプトの出力は完全です。応答も完全でなければなりません。
  • ✅ すべてのタスクを表示:スクリプトはすべてのタスクを出力します。モデルの応答にもすべてのタスクを表示する必要があります。
  • ✅ 例外なし:スクリプトの出力 = 完全なデータ。応答 = 完全なデータ。常に徹底してください。

重要:スクリプトの出力は完全であることが保証されています。省略、要約、欠落は一切せず、その 100% を応答に反映する必要があります。表示されているすべてのタスク行を、そのまま出力してください。

コメント