alibabacloud-openclaw-ecs-dingtalk について
aliyun CLIを使ってAlibaba Cloud ECSにOpenClawをデプロイし、Bailian LLMを設定してDingTalkのグループボットに接続するスキルです。DingTalkのグループ内でAIチャットを利用するための導入作業に向いています。
主な機能
- 01ECSインスタンスの作成と起動
- 02Bailian API Keyの取得または作成
- 03Cloud Assistant経由のOpenClaw導入
- 04DingTalkコネクターとゲートウェイの設定
- 05デプロイ確認とリソース削除手順の提示
活用シーン
- 01Alibaba CloudへのOpenClawデプロイ
- 02OpenClawとDingTalkグループの接続
- 03グループ応答用Bailianモデルの設定
- 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.mddingtalk-setup-guide.mdram-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 ID | dingxxxxxx |
dingtalk_client_secret | はい | DingTalk アプリの Client Secret | xxxxxxxxxxxxx |
ユーザーが 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 でのテスト
ユーザーに次の手順を案内します。
- DingTalk アプリ設定ガイドに従って、アプリの作成、権限の設定、公開、およびグループへのボットの追加が完了していることを確認します
- ボットを追加した DingTalk グループでボットに @ メンションし、メッセージを送信します(例:「こんにちは。自己紹介してください」)
- ボットの返信を待ちます
受け入れ基準:ボットが 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/ |