mcpField
A
alibabacloud-openclaw-ecs-dingtalk

alibabacloud-openclaw-ecs-dingtalk

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

alibabacloud-openclaw-ecs-dingtalk について

aliyun CLIを使ってAlibaba Cloud ECSにOpenClawをデプロイし、Bailian LLMを設定してDingTalkのグループボットに接続するスキルです。DingTalkのグループ内でAIチャットを利用するための導入作業に向いています。

主な機能

  1. 01ECSインスタンスの作成と起動
  2. 02Bailian API Keyの取得または作成
  3. 03Cloud Assistant経由のOpenClaw導入
  4. 04DingTalkコネクターとゲートウェイの設定
  5. 05デプロイ確認とリソース削除手順の提示

活用シーン

  1. 01Alibaba CloudへのOpenClawデプロイ
  2. 02OpenClawとDingTalkグループの接続
  3. 03グループ応答用Bailianモデルの設定
  4. 04ゲートウェイとDingTalkボットの稼働確認

インストール

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

$npx skills add https://github.com/aliyun/alibabacloud-aiops-skills --skill alibabacloud-openclaw-ecs-dingtalk

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

同梱ファイル

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

references/
bailian-api-key-guide.md
dingtalk-setup-guide.md
ram-policies.md

詳細

DingTalk 連携で ECS に OpenClaw をデプロイする

Alibaba Cloud の ECS インスタンスに OpenClaw AI エージェントプラットフォームをワンクリックでデプロイし、Alibaba Cloud Bailian LLM を設定して、DingTalk ボット経由で DingTalk グループに接続します。これにより、ユーザーは DingTalk 上で AI と直接チャットできます。

出典:このスキルは、Alibaba Cloud の公式ドキュメントと OpenClaw オープンソースプロジェクトのドキュメントに基づいています。末尾の参考リンクをご覧ください。

バージョン:このスキルは OpenClaw の 2026 年 3 月リリースおよび @dingtalk-real-ai/dingtalk-connector プラグイン向けに作成され、2026-03-11 に検証されています。

パラメーターの収集

実行前に、必要なすべてのパラメーターを 1 つのメッセージでユーザーに提示するよう求めてください。必要なパラメーターがすべて提供され、確認できるまでは先に進まないでください。

入力の検証

コマンドインジェクションを防ぐため、使用前にユーザー入力をすべて検証してください。シェルの特殊文字(;、|、&、$、\、'、"、バッククォート、括弧、角括弧、改行)を含む入力は拒否してください。パラメーターは想定される形式に一致する必要があります。

  • region:cn-[a-z]+、ap-[a-z]+、us-[a-z]+ など
  • instance_type:ecs.[a-z0-9]+.[a-z0-9]+
  • vpc_id/vswitch_id/security_group_id:vpc-/vsw-/sg-[a-z0-9]+
  • dingtalk_client_id:ding[a-z0-9]+
  • dingtalk_client_secret:英数字 16~64 文字

Cloud Assistant の RunCommand にパラメーターを渡す場合、機密情報には base64 エンコーディングを使用してください。

ECS インスタンスのパラメーター
パラメーター必須説明例
regionはいデプロイリージョンcn-hangzhou
instance_typeいいえECS インスタンスタイプ(デフォルト:ecs.c6.large、2 vCPU、4 GB)ecs.c6.large
image_idいいえOS イメージ(デフォルト:Ubuntu 22.04)自動選択
vpc_idいいえ既存の VPC ID(指定がない場合は自動作成)vpc-xxx
vswitch_idいいえ既存の VSwitch ID(指定がない場合は自動作成)vsw-xxx
security_group_idいいえ既存のセキュリティグループ ID(指定がない場合は自動作成)sg-xxx
OpenClaw と Bailian のパラメーター

Bailian API Key(bailian_api_key)は、デプロイ中に CLI 経由で自動取得されます(ステップ 2 を参照)。コンソールでの手動操作は不要です。このスキルは aliyun modelstudio コマンド(ListWorkspaces + CreateApiKey)を使用して、API Key をプログラムで取得または作成します。

前提条件:ユーザーの Alibaba Cloud アカウントで Bailian(Model Studio)サービスが有効になっている必要があります。有効になっていない場合は、まず Bailian コンソールにアクセスして有効化するよう案内してください。

DingTalk 連携のパラメーター
パラメーター必須説明例
dingtalk_client_idはいDingTalk アプリの Client IDdingxxxxxx
dingtalk_client_secretはいDingTalk アプリの Client Secretxxxxxxxxxxxxx

ユーザーが DingTalk アプリをまだ作成していない場合は、DingTalk アプリ設定ガイドを参照して、アプリの作成、ボットの設定、権限の追加、アプリの公開、認証情報の取得を行うよう案内してください。

実行時の制約

  • 機密情報のマスキング:パスワード、キー、トークン、IP、インスタンス ID の中央部分をマスキングしてください(例:ak****3d、i-bp1****7f2z)
  • 入力の検証:シェルの特殊文字(;、|、&、$、バッククォートなど)を拒否してください。パラメーター化された API 呼び出しを使用してください
  • コマンドインジェクションの防止:Cloud Assistant RunCommand では、機密情報を base64 でエンコードしてください
  • ネットワークタイムアウト:すべての curl/wget 操作に --connect-timeout と --max-time パラメーターを含めてください
  • ステップを順番に実行し、各ステップ後に成功を確認して、現在のステップをユーザーに伝えてください
  • ステップが失敗した場合は、続行する前にユーザーの確認を求めてください
  • Cloud Assistant の RunCommand の結果は、15 秒以上の間隔で DescribeInvocations をポーリングしてください
  • 破壊的な操作:削除前にユーザーの確認を取り、リソースの状態を確認してください

ステップ 1:ECS インスタンスの作成

1.1 Alibaba Cloud アカウントの確認

aliyun sts GetCallerIdentity \
  --user-agent AlibabaCloud-Agent-Skills

1.2 ゾーンの在庫状況を確認する

対象のインスタンスタイプの在庫があるアベイラビリティゾーンを照会し、利用できないゾーンにリソースを作成しないようにします。

aliyun ecs DescribeAvailableResource \
  --RegionId ${region} \
  --DestinationResource InstanceType \
  --InstanceChargeType PostPaid \
  --InstanceType ${instance_type} \
  --user-agent AlibabaCloud-Agent-Skills

結果から StatusCategory が WithStock のゾーンを選択し、${zone_id} として記録します。

1.3 VPC と VSwitch を作成する(ユーザーから提供されていない場合)

# Create VPC
aliyun vpc CreateVpc \
  --RegionId ${region} \
  --VpcName openclaw-vpc \
  --CidrBlock 172.16.0.0/16 \
  --user-agent AlibabaCloud-Agent-Skills

# Create VSwitch (use the zone with stock found in the previous step)
aliyun vpc CreateVSwitch \
  --RegionId ${region} \
  --VpcId ${vpc_id} \
  --VSwitchName openclaw-vswitch \
  --CidrBlock 172.16.0.0/24 \
  --ZoneId ${zone_id} \
  --user-agent AlibabaCloud-Agent-Skills

1.4 セキュリティグループを作成し、ルールを設定する

# Create security group
aliyun ecs CreateSecurityGroup \
  --RegionId ${region} \
  --VpcId ${vpc_id} \
  --SecurityGroupName openclaw-sg \
  --Description "Security group for OpenClaw" \
  --user-agent AlibabaCloud-Agent-Skills

# Allow SSH (port 22)
aliyun ecs AuthorizeSecurityGroup \
  --RegionId ${region} \
  --SecurityGroupId ${security_group_id} \
  --IpProtocol tcp \
  --PortRange 22/22 \
  --SourceCidrIp 0.0.0.0/0 \
  --user-agent AlibabaCloud-Agent-Skills

# Allow HTTP (port 80) and HTTPS (port 443)
aliyun ecs AuthorizeSecurityGroup \
  --RegionId ${region} \
  --SecurityGroupId ${security_group_id} \
  --IpProtocol tcp \
  --PortRange 80/80 \
  --SourceCidrIp 0.0.0.0/0 \
  --user-agent AlibabaCloud-Agent-Skills

aliyun ecs AuthorizeSecurityGroup \
  --RegionId ${region} \
  --SecurityGroupId ${security_group_id} \
  --IpProtocol tcp \
  --PortRange 443/443 \
  --SourceCidrIp 0.0.0.0/0 \
  --user-agent AlibabaCloud-Agent-Skills

1.5 ECS インスタンスを作成する

まず、対象リージョンで最新の Ubuntu 22.04 システムイメージ ID を照会します。

aliyun ecs DescribeImages \
  --RegionId ${region} \
  --OSType linux \
  --ImageOwnerAlias system \
  --ImageName "ubuntu_22_04*" \
  --Status Available \
  --PageSize 1 \
  --user-agent AlibabaCloud-Agent-Skills

結果から最新の ImageId を取得してから、インスタンスを作成します(注:パブリックネットワークアクセスは後で EIP を使用して設定するため、InternetMaxBandwidthOut は設定しないでください)。

aliyun ecs RunInstances \
  --RegionId ${region} \
  --InstanceType ${instance_type} \
  --ImageId ${image_id} \
  --SecurityGroupId ${security_group_id} \
  --VSwitchId ${vswitch_id} \
  --SystemDisk.Category cloud_essd \
  --SystemDisk.Size 40 \
  --InstanceChargeType PostPaid \
  --InstanceName openclaw-server \
  --Amount 1 \
  --user-agent AlibabaCloud-Agent-Skills

1.6 パブリックネットワークアクセスを設定する(EIP)

Elastic IP Address を作成し、帯域幅を 100 Mbps に設定して ECS インスタンスにバインドします(OpenClaw のインストールでは、多数の npm パッケージをダウンロードする必要があります)。

# Create EIP (100 Mbps bandwidth)
aliyun vpc AllocateEipAddress \
  --RegionId ${region} \
  --Bandwidth 100 \
  --InternetChargeType PayByTraffic \
  --user-agent AlibabaCloud-Agent-Skills

# Bind EIP to ECS instance
aliyun vpc AssociateEipAddress \
  --RegionId ${region} \
  --AllocationId ${eip_allocation_id} \
  --InstanceId ${instance_id} \
  --InstanceType EcsInstance \
  --user-agent AlibabaCloud-Agent-Skills

以降の SSH 接続と Cloud Assistant コマンドの実行に使用するため、EIP アドレスを記録します。

1.7 インスタンスを起動し、実行状態になるまで待つ

# Start instance
aliyun ecs StartInstance \
  --InstanceId ${instance_id} \
  --user-agent AlibabaCloud-Agent-Skills

# Query instance status, confirm it is Running
aliyun ecs DescribeInstances \
  --RegionId ${region} \
  --InstanceIds '["${instance_id}"]' \
  --user-agent AlibabaCloud-Agent-Skills

Step 2: CLI を使用して Bailian API Key を取得する

aliyun modelstudio CLI プラグインを使用して、Bailian API Key を自動的に取得または作成することで、コンソールでの手動操作を不要にします。

2.1 Model Studio CLI プラグインをインストールする

aliyun modelstudio コマンドには、aliyun-cli-modelstudio プラグインが必要です。

aliyun plugin install --names aliyun-cli-modelstudio \
  --user-agent AlibabaCloud-Agent-Skills

2.2 ワークスペースを一覧表示する(最初に実行する必要があります)

workspace-id は CreateApiKey の必須パラメーターであるため、先に ListWorkspaces を使用して取得する必要があります。Bailian を有効化した Alibaba Cloud アカウントには、デフォルトのワークスペースがあります。

aliyun modelstudio list-workspaces \
  --user-agent AlibabaCloud-Agent-Skills

結果から WorkspaceId を ${workspace_id} として記録します。結果が空(ワークスペースがない)の場合、ユーザーはまだ Bailian サービスを有効化していません。Bailian Console で有効化するよう案内してください。

2.3 API Key を作成する

${workspace_id} を使用して、新しい API Key を作成します。

aliyun modelstudio create-api-key \
  --workspace-id ${workspace_id} \
  --description "OpenClaw deployment API Key" \
  --user-agent AlibabaCloud-Agent-Skills

応答から ApiKeyValue(sk-xxx 形式)を ${bailian_api_key} として記録します。

重要:API Key の値全体が返されるのは作成時のみです。list-api-keys は常にマスクされた値(sk-***)を返すため、使用可能なキーの取得には利用できません。完全なキーをここに必ず記録してください。キーを紛失した場合は、古いキーを削除して新しいキーを作成してください。


Step 3: Cloud Assistant を使用して基本環境をインストールする

Alibaba Cloud Cloud Assistant を使用して、手動で SSH 接続することなく、ECS インスタンス上でコマンドをリモート実行します。

待ち時間を短縮するため、Git のインストール、Node.js 22.x のインストール、npm の中国向けミラーの設定を1つのコマンドにまとめます。

aliyun ecs RunCommand \
  --RegionId ${region} \
  --Type RunShellScript \
  --CommandContent "apt-get update -y && apt-get install -y git curl wget && curl -fsSL --connect-timeout 30 --max-time 300 https://deb.nodesource.com/setup_22.x | bash - && apt-get install -y nodejs && npm config set registry https://registry.npmmirror.com && node -v && npm -v" \
  --InstanceId.1 ${instance_id} \
  --Timeout 600 \
  --user-agent AlibabaCloud-Agent-Skills

DescribeInvocations を使用してコマンドの実行結果を照会し、成功を確認します。

aliyun ecs DescribeInvocations \
  --RegionId ${region} \
  --InvokeId ${invoke_id} \
  --user-agent AlibabaCloud-Agent-Skills

出力で Node.js のバージョンが v22.x.x であることを確認します。

ポーリングのヒント:このコマンドの完了には通常2~5分かかります。DescribeInvocations を照会する際は、過度なポーリングを避けるため、15~30秒ごとにポーリングしてください。InvocationStatus が Running から Success または Failed に変わると、コマンドは完了です。


Step 4: ワンクリックで OpenClaw をインストールする

インストールスクリプトを使用して、OpenClaw のセットアップ、Bailian API の設定、DingTalk プラグインのインストールを完了します。

セキュリティ:コマンドインジェクションを防ぐため、機密性の高いパラメーターは base64 エンコーディングで渡されます。

# Encode sensitive parameters
BAILIAN_KEY_B64=$(echo -n "${bailian_api_key}" | base64)
DINGTALK_ID_B64=$(echo -n "${dingtalk_client_id}" | base64)
DINGTALK_SECRET_B64=$(echo -n "${dingtalk_client_secret}" | base64)

aliyun ecs RunCommand \
  --RegionId ${region} \
  --Type RunShellScript \
  --CommandContent "curl -fsSL --connect-timeout 30 --max-time 300 https://openclaw-install-scripts.oss-cn-hangzhou.aliyuncs.com/install.sh -o /tmp/openclaw-install.sh && BAILIAN_API_KEY=\$(echo '${BAILIAN_KEY_B64}' | base64 -d) DINGTALK_CLIENT_ID=\$(echo '${DINGTALK_ID_B64}' | base64 -d) DINGTALK_CLIENT_SECRET=\$(echo '${DINGTALK_SECRET_B64}' | base64 -d) bash /tmp/openclaw-install.sh --api-key \"\$BAILIAN_API_KEY\" --api-region '${region}' --dingtalk-client-id \"\$DINGTALK_CLIENT_ID\" --dingtalk-client-secret \"\$DINGTALK_CLIENT_SECRET\"" \
  --InstanceId.1 ${instance_id} \
  --Timeout 600 \
  --user-agent AlibabaCloud-Agent-Skills

スクリプトは OpenClaw の npm インストール、Bailian API の設定、DingTalk プラグインのインストール、ゲートウェイの起動を自動的に完了します。DescribeInvocations を照会して Gateway started を確認します(30秒ごとにポーリングし、3~8分かかります)。


Step 5: 受け入れテスト

5.1 ゲートウェイの状態を確認する

aliyun ecs RunCommand \
  --RegionId ${region} \
  --Type RunShellScript \
  --CommandContent "openclaw gateway status" \
  --InstanceId.1 ${instance_id} \
  --Timeout 60 \
  --user-agent AlibabaCloud-Agent-Skills

ゲートウェイの状態が running で、DingTalk チャネルプラグインが読み込まれていることを確認します。

5.2 DingTalk でのテスト

ユーザーに次の手順を案内します。

  1. DingTalk アプリ設定ガイドに従って、アプリの作成、権限の設定、公開、およびグループへのボットの追加が完了していることを確認します
  2. ボットを追加した DingTalk グループでボットに @ メンションし、メッセージを送信します(例:「こんにちは。自己紹介してください」)
  3. ボットの返信を待ちます

受け入れ基準:ボットが Bailian LLM によって生成された内容を DingTalk グループで正常に返信すること。これにより、デプロイの成功を確認できます。

5.3 デプロイ完了レポート

すべてのコンポーネントが正常に稼働していることを確認したら、ユーザーにデプロイの概要を提示します。

  • ECS インスタンス ID と EIP パブリック IP
  • OpenClaw のバージョンとサービスの状態
  • Bailian モデルの設定(モデル名、API エンドポイント)
  • DingTalk アプリ名とボットの状態
  • コスト情報

リソースのクリーンアップ

警告:リソースの削除は取り消せません。実行する前に、必ずユーザーに確認してください。

削除前の確認

削除する前に、ユーザーに次のように確認します。「以下のリソースは完全に削除されます:${instance_id}、${eip_allocation_id}、${security_group_id}、${vswitch_id}、${vpc_id}。この操作は取り消せません。続行するには「yes」と入力してください。」

明示的に「yes」と確認されてから続行してください。

削除の順序

依存関係の順に削除します(インスタンス → EIP → セキュリティグループ → VSwitch → VPC)。

# 1. Stop instance if running, then delete
aliyun ecs StopInstance --InstanceId ${instance_id} --user-agent AlibabaCloud-Agent-Skills
# Poll DescribeInstances until Status='Stopped'
aliyun ecs DeleteInstance --InstanceId ${instance_id} --user-agent AlibabaCloud-Agent-Skills

# 2. Release EIP (after confirming unassociated)
aliyun vpc ReleaseEipAddress --RegionId ${region} --AllocationId ${eip_allocation_id} --user-agent AlibabaCloud-Agent-Skills

# 3. Delete security group (after confirming no instances)
aliyun ecs DeleteSecurityGroup --RegionId ${region} --SecurityGroupId ${security_group_id} --user-agent AlibabaCloud-Agent-Skills

# 4. Delete VSwitch then VPC (after confirming empty)
aliyun vpc DeleteVSwitch --VSwitchId ${vswitch_id} --user-agent AlibabaCloud-Agent-Skills
aliyun vpc DeleteVpc --VpcId ${vpc_id} --user-agent AlibabaCloud-Agent-Skills

コストへの影響

  • ECS インスタンス:2 vCPU、4 GB(ecs.c6.large)の従量課金で、約 0.3~0.5 CNY/時間(実際のコンソール価格によって異なります)
  • EIP 帯域幅:100 Mbps の従量課金
  • Bailian モデルの呼び出し:新規ユーザーには無料枠があります。無料枠を超過すると、トークンの使用量に応じて課金されます

注:上記のコストは参考情報です。Alibaba Cloud コンソールに表示される実際の料金と請求額を確認してください。

よくあるトラブルシューティング

症状考えられる原因解決策
DingTalk ボットが応答しないGateway が実行されていないCloud Assistant から openclaw gateway status を実行して状態を確認します
「0 characters」と表示される空のメッセージが返信されるBailian モデルの設定が失われている~/.openclaw/openclaw.json の models.providers に alibaba-cloud が含まれているか確認します
401 エラーGateway Token の不一致gateway.auth.token が channels.dingtalk-connector.gatewayToken と一致しているか確認します
AI Card が表示されないカード権限がないDingTalk オープンプラットフォームで Card.Streaming.Write と Card.Instance.Write の権限を追加します
npm のインストールがタイムアウトするネットワークの問題npm の中国向けミラーが設定されていることを確認し、EIP の帯域幅が十分か確認します

参考リンク

リソースリンク
Bailian API Key ガイドreferences/bailian-api-key-guide.md
DingTalk アプリ設定ガイドreferences/dingtalk-setup-guide.md
Alibaba Cloud での OpenClaw のデプロイhttps://help.aliyun.com/zh/simple-application-server/use-cases/quickly-deploy-and-use-openclaw
DingTalk オープンプラットフォームの ECS デプロイhttps://open.dingtalk.com/document/dingstart/deployment-alibaba-cloud-ecs-server
OpenClaw 公式サイトhttps://openclaw.ai/
Bailian コンソールhttps://bailian.console.aliyun.com/
DingTalk オープンプラットフォームhttps://open.dingtalk.com/

コメント