このトピックでは、主流の AI Agent プラットフォームで Alibaba Cloud Flink Agent スキルを使用して、自然言語で Realtime Compute for Apache Flink のインスタンスとワークスペースを管理する方法について説明します。
スキルの概要
Realtime Compute for Apache Flink は、Alibaba Cloud Skill Hub で 3 つの Agent スキルを提供します。これらのスキルは、インスタンスのライフサイクル管理、ワークスペースの操作、Flink の専門知識という、高頻度で利用される 3 つのシナリオカテゴリをカバーしています。統合後、Claude Code、OpenClaw、Qoder、Cursor、Gemini CLI など、Agent Skills プロトコルをサポートするクライアントで、自然言語を使用して Flink リソースの作成、クエリ、デプロイ、操作、トラブルシューティングを行うことができます。手動での OpenAPI 呼び出しやコンソール操作は不要です。
|
スキル名 |
シナリオ |
コア機能 |
|
インスタンスと名前空間のライフサイクル管理 |
利用可能なリージョンとゾーンのクエリ、インスタンスの作成、インスタンスステータスのクエリ、名前空間の作成とクエリ、リソースタグのクエリ |
|
|
日常的なワークスペース操作 |
SQL ドラフトの作成と検証、ジョブのデプロイと開始/停止、セッションクラスターのライフサイクル全体の管理、ジョブの診断、データテーブルのクエリ、メンバーと変数の管理 |
|
|
Flink の専門知識 |
製品パラメーターとバージョンのクエリ、課金情報のクエリ、Flink SQL (DDL、データベース全体の同期のための CDAS、リスクコントロールシナリオ) の生成、チェックポイントとセーブポイントの復元ガイダンス、ジョブのトラブルシューティング |
3つすべての Skills は、公式の Alibaba Cloud Python SDK を使用して Flink OpenAPI を直接呼び出します。デフォルトでは、認証情報はデフォルトの認証情報プロバイダーチェーン経由で読み込まれます。認証情報は、コマンドライン引数として渡されることはありません。
前提条件
Node.js と Python のインストール
スキルは npx skills CLI を介してインストールされ、Node.js 18 以降が必要です。内部スクリプトは Python で実装されており、Python 3.6 以降が必要です。
node --version # 18 以上が必要
python3 --version # 3.6 以上が必要
インストールされていない場合は、お使いのオペレーティングシステムに合ったインストール方法を選択してください。
# macOS
brew install node python@3.9
# Ubuntu/Debian
sudo apt-get install nodejs npm python3 python3-pip
# CentOS/RHEL
sudo yum install nodejs python3 python3-pip
Alibaba Cloud 認証情報の設定
スキルは、デフォルトの認証情報プロバイダーチェーンを介して Alibaba Cloud の AccessKey 認証情報を取得します。環境変数を使用して認証情報を設定することを推奨します。これにより、コマンドラインやスクリプトに認証情報をハードコーディングすることを回避できます。
export ALIBABA_CLOUD_ACCESS_KEY_ID="your-access-key-id"
export ALIBABA_CLOUD_ACCESS_KEY_SECRET="your-access-key-secret"
export ALIBABA_CLOUD_REGION_ID="cn-beijing"
本番環境では、RAM ロールまたは STS 一時的認証情報を使用して、長期的な AccessKey の漏洩を防ぐことを推奨します。
RAM 権限の準備
スキルが使用する RAM ユーザーには、必要最小限の権限を付与してください。Alibaba Cloud アカウントの AccessKey を直接使用しないでください。
alibabacloud-flink-instance-manage に必要な権限
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"stream:CreateVvpInstance",
"stream:DescribeVvpInstances",
"stream:CreateVvpNamespace",
"stream:DescribeVvpNamespaces",
"stream:QueryTagVvpResources"
],
"Resource": [
"acs:stream:*:*:vvpinstance/*",
"acs:stream:*:*:vvpinstance/*/vvpnamespace/*"
]
}
]
}
alibabacloud-flink-workspace-ops に必要な権限
ジョブのデプロイ、セッションクラスターの管理、SQL 検証などのワークスペースレベルの操作では、コンソールのメンバー管理を通じて、対応するワークスペースの開発者または管理者ロールを RAM ユーザーに付与する必要があります。ロールの権限の詳細については、「ワークスペースメンバーの管理」をご参照ください。
Claude Code でのスキルのインストールと使用
このトピックでは、Claude Code を例として説明します。他の Agent プラットフォームのサポートについては、Alibaba Cloud Skills ポータルの対応するスキルページのインストールガイドをご参照ください。
スキルのインストール
# 現在のプロジェクトにインストール (プロジェクトレベルでの共有に推奨)
npx skills add aliyun/alibabacloud-aiops-skills --skill alibabacloud-flink-instance-manage --agent claude-code -y --full-depth
npx skills add aliyun/alibabacloud-aiops-skills --skill alibabacloud-flink-workspace-ops --agent claude-code -y --full-depth
npx skills add aliyun/alibabacloud-aiops-skills --skill alibabacloud-flink-knowledge --agent claude-code -y --full-depth
# またはグローバルにインストール (-g を追加するとすべてのプロジェクトに適用)
npx skills add aliyun/alibabacloud-aiops-skills --skill alibabacloud-flink-instance-manage --agent claude-code -y --full-depth -g
プロジェクトレベルのインストールパス: <project>/.claude/skills/。 グローバルインストールパス: ~/.claude/skills/。
リポジトリのクローン作成時にネットワークの問題で npx skills add がタイムアウトした場合は、リポジトリを手動でクローンし、ローカルパスからインストールできます。
git clone https://github.com/aliyun/alibabacloud-aiops-skills.git ~/.agents/alibabacloud-aiops-skills
npx skills add ~/.agents/alibabacloud-aiops-skills/skills/analyticscomputing/sc/alibabacloud-flink-instance-manage --agent claude-code -y
npx skills add ~/.agents/alibabacloud-aiops-skills/skills/analyticscomputing/sc/alibabacloud-flink-workspace-ops --agent claude-code -y
npx skills add ~/.agents/alibabacloud-aiops-skills/skills/analyticscomputing/sc/alibabacloud-flink-knowledge --agent claude-code -y
スキルの Python 依存関係のインストール
cd .claude/skills/alibabacloud-flink-instance-manage
pip3 install -r assets/requirements.txt
cd ../alibabacloud-flink-workspace-ops
pip3 install -r assets/requirements.txt
alibabacloud-flink-knowledge は、追加の Python 依存関係を必要としません。このスキルは、組み込みのナレッジベースで実行されます。
macOS で pip が PEP 668 エラーを報告する場合は、仮想環境を使用するか、--break-system-packages パラメーターを追加してください。
インストールの検証
Claude Code を再起動し、利用可能なスキルリストを表示して、3 つの Flink スキルすべてが認識されていることを確認してください。
/skills
出力には、alibabacloud-flink-instance-manage、alibabacloud-flink-workspace-ops、およびalibabacloud-flink-knowledgeが含まれているはずです。
使用例
会話で直接、自然言語で意図を記述してください。Claude Code は、対応するスキルを自動的に照合し、操作を実行します。
インスタンス管理 (alibabacloud-flink-instance-manage)
# 中国 (北京) リージョン内のすべての Flink インスタンスをクエリする
Query my Flink instances in cn-beijing
# Flink インスタンスを作成する
Create a Flink instance named demo-vvp in cn-beijing
# 利用可能なゾーンをクエリする
Which zones are available in cn-hangzhou?
ワークスペース操作 (alibabacloud-flink-workspace-ops)
# SQL ドラフトを作成する
Create a SQL draft named hello-flink in workspace my-workspace with the content SELECT 1
# ジョブをデプロイして開始する
Deploy the draft I just created and start the job
# ジョブを診断する
Diagnose the recently failed job in workspace my-workspace
# セッションクラスターを管理する
Create a Session Cluster named dev-cluster in workspace my-workspace
ナレッジクエリ (alibabacloud-flink-knowledge)
# 製品パラメーターをクエリする
What engine versions does Realtime Compute for Apache Flink support?
# Flink SQL を生成する
Generate a CDAS SQL statement for full-database sync from MySQL CDC to Paimon
# チェックポイントの復元ガイダンス
How do I restore a job from a savepoint after an upgrade? What should I be aware of?
# トラブルシューティング
What could cause a checkpoint timeout? How do I troubleshoot it?
作成、デプロイ、開始、停止、削除など、リソースを変更する操作の場合、スキルは安全確認パラメーター --confirm を自動的に追加します。削除などの不可逆的な操作の場合、スキルが操作を実行する前に、自然言語で削除の意図を明示的に表現する必要があります。
よくある質問
Q1:インストール後にスキルが有効にならない
スキルディレクトリ (.claude/skills/alibabacloud-flink-instance-manage/SKILL.md) が作成されていること、およびクライアントが再起動されてスキルが読み込まれていることを確認してください。
Q2:コマンド実行時の ModuleNotFoundError
Python の依存関係がインストールされていません。スキルディレクトリに移動し、pip3 install -r assets/requirements.txt を実行してください。
Q3:コマンド実行時の NoPermission または Forbidden エラー
前提条件に記載されている最小限の権限ポリシーが RAM ユーザーに付与されているか、また、デフォルトの認証情報プロバイダーチェーンがその RAM ユーザーの正しい AccessKey を読み込んでいるかを確認してください。
Q4:作成後にインスタンスのステータスが RUNNING に変わらない
スキルはデフォルトで 30 秒間隔でポーリングし、最大待機時間は 10 分です。タイムアウトを超えた場合は、コンソールでインスタンスのステータスを手動で確認してください。リソースが不足している場合は、コンソールでリソースを拡張してから再試行してください。
Q5:スキル経由で Flink JAR ジョブを送信できますか?
いいえ。現在、スキルはワークスペース内の SQL ジョブのライフサイクル全体のみをカバーしています。JAR ジョブの送信とデプロイは、コンソールまたは OpenAPI を使用して行う必要があります。
Q6:Knowledge スキルによって返されるパラメーター情報は、常に正確で最新ですか?
Knowledge スキルは、可能な限りオンラインドキュメントから最新のパラメーター情報を取得します。ドキュメントの取得に失敗した場合、スキルは安全に関する通知を返し、コンソールでの確認を促します。課金やエンジンバージョンなどの重要なパラメーターについては、実際のコンソールの表示が優先されます。
Q7:Knowledge スキルはどのような種類の Flink SQL を生成できますか?
このスキルは、DDL ステートメント、データベース全体の CDC 同期ステートメント (CDAS 構文)、およびリスクコントロール監視 SQL の生成をサポートしています。生成された SQL には、実際の値に置き換える必要がある接続情報を示す -- TODO: 注釈が含まれています。