cloudrun-development by tencentcloudbase/skills
npx skills add https://github.com/tencentcloudbase/skills --skill cloudrun-development当您需要以下功能时,请使用此技能进行 CloudBase Run 后端服务开发:
callContainer 内网直连请勿用于:
选择正确的模式
遵循强制性要求
PORT 环境变量(容器内实际端口)广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
Mem = 2 × CPU(例如,0.25 vCPU → 0.5 GB)正确使用工具
queryCloudRun(列表、详情、模板)manageCloudRun(初始化、下载、运行、部署、删除、创建智能体)targetPath 始终使用绝对路径force: true遵循工作流程
一份面向 AI 助手和工程协作的简明指南,提供“何时用、怎么用”的规则和工具工作流。
callContainer 内网直连| 维度 | Function 模式 | Container 模式 |
|---|---|---|
| 语言/框架 | Node.js(通过 @cloudbase/functions-framework) | 任意语言/运行时(Java/Go/PHP/.NET/Python/Node.js 等) |
| 运行时 | 函数框架加载函数(Runtime) | Docker 镜像启动进程 |
| 端口 | 固定 3000 | 应用监听 PORT(部署时由平台注入) |
| Dockerfile | 不需要 | 需要(且必须能通过本地构建) |
| 本地运行 | 支持(内置工具) | 不支持(建议使用 Docker 调试) |
| 典型场景 | WebSocket/SSE/流式响应、表单/文件、低延迟、单实例多函数共存、共享内存 | 任意系统依赖/语言、迁移现有容器化应用 |
PORT 环境变量(容器内实际端口)Mem = 2 × CPU(例如,0.25 vCPU → 0.5 GB)queryCloudRun):
list:我有哪些服务?可按名称/类型过滤detail:某个服务的当前配置、版本、访问地址templates:开箱即用的入门模板manageCloudRun):
init:创建本地项目(可选模板)download:拉取现有服务代码到本地run:本地运行(仅 Function 模式,支持普通函数和 Agent 模式)deploy:部署本地代码到 CloudRundelete:删除服务(需要明确确认)createAgent:创建 AI 智能体(基于 Function 模式 CloudRun)targetPath:本地目录(必须是绝对路径)serverConfig:部署参数(CPU/Mem/实例数/访问类型/环境变量等)runOptions:本地运行端口和临时环境变量(Function 模式),支持 runMode: 'normal' | 'agent'agentConfig:智能体配置(agentName, botTag, description, template)force: true,否则不会执行选择模式
初始化本地项目
init(Function 模式和 Container 模式均可从模板开始)Node.js 最小示例:
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --omit=dev
COPY . .
ENV NODE_ENV=production
EXPOSE 3000
CMD ["node","server.js"]
Python 最小示例:
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt ./
RUN pip install -r requirements.txt --no-cache-dir
COPY . .
ENV PORT=3000
EXPOSE 3000
CMD ["python","app.py"]
本地运行(仅 Function 模式)
run 自动使用 npm run dev/start 或入口文件配置访问
OpenAccessTypes(WEB/VPC/PRIVATE);Web 场景需配置安全域名和鉴权部署
deploy 时指定 CPU/Mem/实例数/环境变量等验证
detail 确认访问地址和配置符合预期{ "name": "queryCloudRun", "arguments": { "action": "templates" } }
{ "name": "queryCloudRun", "arguments": { "action": "detail", "detailServerName": "my-svc" } }
2. 初始化项目
{ "name": "manageCloudRun", "arguments": { "action": "init", "serverName": "my-svc", "targetPath": "/abs/ws/my-svc", "template": "helloworld" } }
3. 下载代码(可选)
{ "name": "manageCloudRun", "arguments": { "action": "download", "serverName": "my-svc", "targetPath": "/abs/ws/my-svc" } }
4. 本地运行(仅 Function 模式)
{ "name": "manageCloudRun", "arguments": { "action": "run", "serverName": "my-svc", "targetPath": "/abs/ws/my-svc", "runOptions": { "port": 3000 } } }
5. 部署
{ "name": "manageCloudRun", "arguments": { "action": "deploy", "serverName": "my-svc", "targetPath": "/abs/ws/my-svc", "serverConfig": { "OpenAccessTypes": ["WEB"], "Cpu": 0.5, "Mem": 1, "MinNum": 0, "MaxNum": 5 } } }
6. 创建 AI 智能体(可选)
{ "name": "manageCloudRun", "arguments": { "action": "createAgent", "serverName": "my-agent", "targetPath": "/abs/ws/agents", "agentConfig": { "agentName": "MyAgent", "botTag": "demo", "description": "我的智能体", "template": "blank" } } }
7. 运行智能体(可选)
{ "name": "manageCloudRun", "arguments": { "action": "run", "serverName": "my-agent", "targetPath": "/abs/ws/agents/my-agent", "runOptions": { "port": 3000, "runMode": "agent" } } }
callContainer,减少公网暴露面queryCloudRun.detail 验证配置和可访问性@cloudbase/aiagent-framework,支持 SSE 流式响应,BotId 格式为 ibot-{name}-{tag}package.json dev/start 或入口 index.js|app.js|server.js@cloudbase/aiagent-framework 依赖、BotId 格式、SSE 响应格式@cloudbase/functions-framework)+ 函数代码,让容器服务开发像写云函数一样简单@cloudbase/aiagent-framework,支持 SSE 流式响应和个性化 AI 应用manageCloudRun → run);部署使用 manageCloudRun → deploy;查询使用 queryCloudRuncurl -L "https://<your-service-domain>"
// app.js(确保已调用 wx.cloud.init())
const res = await wx.cloud.callContainer({
config: { env: "<envId>" },
path: "/",
method: "GET",
header: { "X-WX-SERVICE": "<serviceName>" }
});
import cloudbase from "@cloudbase/js-sdk";
const app = cloudbase.init({ env: "<envId>" }); // 通过提供输入 UI 将用户的手机号收集到变量 `phoneNum` 中
const auth = app.auth();
// 发送短信验证码
const verificationInfo = await auth.getVerification({
phone_number: `+86 ${phoneNum}`,
});
// 通过提供输入 UI 将用户的手机号收集到变量 `verificationCode` 中
// 登录
await auth.signInWithSms({
verificationInfo,
verificationCode,
phoneNum,
});
const res = await app.callContainer({
name: "<serviceName>", method: "POST", path: "/api",
header: { "Content-Type": "application/json" },
data: { key: "value" }
});
// Web JS SDK 初始化必须是同步的: // - 始终使用顶层 import cloudbase from "@cloudbase/js-sdk"; // - 不要使用动态导入如 import("@cloudbase/js-sdk") 或异步包装器,例如内部带有 initPromise 的 initCloudBase()
import tcb from "@cloudbase/node-sdk";
const app = tcb.init({});
const res = await app.callContainer({
name: "<serviceName>", method: "GET", path: "/health",
timeout: 5000
});
每周安装量
551
代码仓库
GitHub 星标数
39
首次出现
2026年1月22日
安全审计
安装于
opencode482
codex481
gemini-cli472
github-copilot459
kimi-cli453
amp450
Use this skill for CloudBase Run backend service development when you need:
callContainer internal direct connectionDo NOT use for:
Choose the right mode
Follow mandatory requirements
PORT environment variable (real port in container)Mem = 2 × CPU (e.g., 0.25 vCPU → 0.5 GB)Use tools correctly
queryCloudRun (list, detail, templates)manageCloudRun (init, download, run, deploy, delete, createAgent)targetPathforce: true for delete operationsFollow the workflow
A concise guide for AI assistants and engineering collaboration, providing "when to use, how to use" rules and tool workflows.
callContainer internal direct connection| Dimension | Function Mode | Container Mode |
|---|---|---|
| Language/Framework | Node.js (via @cloudbase/functions-framework) | Any language/runtime (Java/Go/PHP/.NET/Python/Node.js, etc.) |
| Runtime | Function framework loads functions (Runtime) | Docker image starts process |
| Port | Fixed 3000 | Application listens on PORT (injected by platform during deployment) |
| Dockerfile | Not required | Required (and must pass local build) |
| Local Running | Supported (built-in tools) | Not supported (recommend using Docker for debugging) |
| Typical Scenarios | WebSocket/SSE/streaming responses, forms/files, low latency, multiple functions per instance, shared memory | Arbitrary system dependencies/languages, migrating existing containerized applications |
PORT environment variable (real port in container)Mem = 2 × CPU (e.g., 0.25 vCPU → 0.5 GB)queryCloudRun):
list: What services do I have? Can filter by name/typedetail: Current configuration, version, access address of a servicetemplates: Ready-to-use starter templatesmanageCloudRun):
init: Create local project (optional template)download: Pull existing service code to localrun: Run locally (Function mode only, supports normal function and Agent mode)deploy: Deploy local code to CloudRunChoose mode
Initialize local project
init (both Function mode and Container mode can start from templates)Node.js minimal example:
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --omit=dev
COPY . .
ENV NODE_ENV=production
EXPOSE 3000
CMD ["node","server.js"]
Python minimal example:
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt ./
RUN pip install -r requirements.txt --no-cache-dir
COPY . .
ENV PORT=3000
EXPOSE 3000
CMD ["python","app.py"]
Local running (Function mode only)
npm run dev/start or entry file via { "name": "queryCloudRun", "arguments": { "action": "templates" } }
{ "name": "queryCloudRun", "arguments": { "action": "detail", "detailServerName": "my-svc" } }
2. Initialize project
{ "name": "manageCloudRun", "arguments": { "action": "init", "serverName": "my-svc", "targetPath": "/abs/ws/my-svc", "template": "helloworld" } }
3. Download code (optional)
{ "name": "manageCloudRun", "arguments": { "action": "download", "serverName": "my-svc", "targetPath": "/abs/ws/my-svc" } }
4. Local running (Function mode only)
{ "name": "manageCloudRun", "arguments": { "action": "run", "serverName": "my-svc", "targetPath": "/abs/ws/my-svc", "runOptions": { "port": 3000 } } }
5. Deploy
{ "name": "manageCloudRun", "arguments": { "action": "deploy", "serverName": "my-svc", "targetPath": "/abs/ws/my-svc", "serverConfig": { "OpenAccessTypes": ["WEB"], "Cpu": 0.5, "Mem": 1, "MinNum": 0, "MaxNum": 5 } } }
6. Create AI agent (optional)
{ "name": "manageCloudRun", "arguments": { "action": "createAgent", "serverName": "my-agent", "targetPath": "/abs/ws/agents", "agentConfig": { "agentName": "MyAgent", "botTag": "demo", "description": "My agent", "template": "blank" } } }
7. Run agent (optional)
{ "name": "manageCloudRun", "arguments": { "action": "run", "serverName": "my-agent", "targetPath": "/abs/ws/agents/my-agent", "runOptions": { "port": 3000, "runMode": "agent" } } }
callContainer, reduce public network exposurequeryCloudRun.detail to verify configuration and accessibility before and after deployment@cloudbase/aiagent-framework, supports SSE streaming responses, BotId format is ibot-{name}-{tag}package.json dev/start or entry index.js|app.js|server.js@cloudbase/aiagent-framework dependency, BotId format, SSE response format@cloudbase/functions-framework) + function code, making container service development as simple as writing cloud functions@cloudbase/aiagent-framework, supports SSE streaming responses and personalized AI applicationsmanageCloudRun → run); deploy using manageCloudRun → deploy; query using queryCloudRuncurl -L "https://<your-service-domain>"
// app.js (ensure wx.cloud.init() is called)
const res = await wx.cloud.callContainer({
config: { env: "<envId>" },
path: "/",
method: "GET",
header: { "X-WX-SERVICE": "<serviceName>" }
});
import cloudbase from "@cloudbase/js-sdk";
const app = cloudbase.init({ env: "<envId>" }); // Collect user's phone number into variable `phoneNum` by providing a input UI
const auth = app.auth();
// Send SMS code
const verificationInfo = await auth.getVerification({
phone_number: `+86 ${phoneNum}`,
});
// Collect user's phone number into variable `verificationCode` by providing a input UI
// Sign in
await auth.signInWithSms({
verificationInfo,
verificationCode,
phoneNum,
});
const res = await app.callContainer({
name: "<serviceName>", method: "POST", path: "/api",
header: { "Content-Type": "application/json" },
data: { key: "value" }
});
// Web JS SDK initialization MUST be synchronous: // - Always use top-level import cloudbase from "@cloudbase/js-sdk"; // - Do NOT use dynamic imports like import("@cloudbase/js-sdk") or async wrappers such as initCloudBase() with internal initPromise
import tcb from "@cloudbase/node-sdk";
const app = tcb.init({});
const res = await app.callContainer({
name: "<serviceName>", method: "GET", path: "/health",
timeout: 5000
});
Weekly Installs
551
Repository
GitHub Stars
39
First Seen
Jan 22, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode482
codex481
gemini-cli472
github-copilot459
kimi-cli453
amp450
React 组合模式指南:Vercel 组件架构最佳实践,提升代码可维护性
106,200 周安装
delete: Delete service (requires explicit confirmation)createAgent: Create AI agent (based on Function mode CloudRun)targetPath: Local directory (must be absolute path)serverConfig: Deployment parameters (CPU/Mem/instance count/access type/environment variables, etc.)runOptions: Local running port and temporary environment variables (Function mode), supports runMode: 'normal' | 'agent'agentConfig: Agent configuration (agentName, botTag, description, template)force: true, otherwise it won't executerunConfigure access
OpenAccessTypes (WEB/VPC/PRIVATE) as needed; configure security domain and authentication for Web scenariosDeploy
deployVerify
detail to confirm access address and configuration meet expectations