mcpField
A
aliyun-deploy

aliyun-deploy

github.com/shigzz云与 DevOps341 次安装30 周前更新
代码仓库

关于 aliyun-deploy

面向静态网站项目的阿里云部署 skill,可将 SPA 或多页站点发布到 OSS 并通过 CDN 提供 HTTPS 访问。支持保存部署配置,以便后续仅构建、上传和刷新缓存。

主要功能

  1. 01OSS 与 CDN 部署流程
  2. 02域名、DNS 与证书配置
  3. 03支持单项目和多项目配置
  4. 04增量发布与 CDN 刷新

适用场景

  1. 01首次部署静态网站并配置 HTTPS
  2. 02更新已配置项目的站点文件
  3. 03在同一仓库管理多个部署目标

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/shigzz/aliyun-skills --skill aliyun-deploy

安装后在 Claude Code 中输入/aliyun-deploy确认已加载。

详细介绍

来自项目 README

适用场景

静态站点(SPA 或多页)通过 阿里云 OSS 存储 + CDN 加速 提供 HTTPS 访问。

资源范围:域名、DNS 解析、OSS、CDN 均在阿里云同一账号下。若域名托管在第三方,需自行映射 DNS 步骤。

依赖

能力路径
域名/DNSaliyun-domain-skills/SKILL.md
OSSaliyun-oss-skills/SKILL.md
CDNaliyun-cdn-skills/SKILL.md

环境:Node.js(构建)、Python 3(调用脚本)、certbot(申请证书)。

执行前确保已安装各 skill 的 requirements.txt。

前置检查

  1. 凭证:检查环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID/SECRET,或项目根目录 .env。
  2. 权限:需 OSS(读写 Bucket/对象)、CDN(域名管理/证书/刷新)权限;403 报错时立即停止,待用户补全 RAM 策略后再继续。

项目配置(.aliyun-config.json)

部署信息写入项目根目录,用于幂等续跑。支持两种格式:

单项目配置(对象格式)
{
  "version": 1,
  "domain_apex": "example.com",
  "cdn_domain": "www.example.com",
  "oss_bucket": "my-app-static",
  "oss_region": "oss-cn-hangzhou",
  "cdn_cname_target": "xxx.w.kunlunsl.com",
  "origin_mode": "private_with_cdn_auth",
  "last_deploy_at": "2026-03-24T12:00:00Z"
}
多项目配置(数组格式)

支持在同一仓库中管理多个部署目标(如多环境或多应用):

[
  {
    "project": "my-app-prod",
    "version": 1,
    "domain_apex": "example.com",
    "cdn_domain": "www.example.com",
    "oss_bucket": "my-app-prod",
    "oss_region": "oss-cn-hangzhou",
    "cdn_cname_target": "xxx.w.kunlunsl.com",
    "origin_mode": "private_with_cdn_auth",
    "last_deploy_at": "2026-03-24T12:00:00Z"
  },
  {
    "project": "my-app-staging",
    "version": 1,
    "domain_apex": "example.com",
    "cdn_domain": "staging.example.com",
    "oss_bucket": "my-app-staging",
    "oss_region": "oss-cn-hangzhou",
    "cdn_cname_target": "yyy.w.kunlunsl.com",
    "origin_mode": "private_with_cdn_auth",
    "last_deploy_at": "2026-03-24T10:00:00Z"
  }
]

字段说明:

字段类型必需说明
projectstring多项目时必需项目标识名,用于区分不同配置
versionint是配置格式版本,当前为 1
domain_apexstring是根域名,用于 DNS 解析
cdn_domainstring是CDN 加速域名(完整主机名)
oss_bucketstring是OSS Bucket 名称
oss_regionstring是OSS 区域,如 oss-cn-hangzhou
cdn_cname_targetstring是CDN 分配的 CNAME 目标地址
origin_modestring否源站模式:private_with_cdn_auth(默认私有回源)或 public
last_deploy_atstring否ISO 8601 格式最后部署时间
增量更新
  • 对象格式:若配置存在且字段完整(Bucket、region、CDN 域名等),本次仅执行:构建 → 上传 OSS → 刷新 CDN
  • 数组格式:提示用户选择要部署的项目(按 project 字段区分),选定后仅更新该项目配置

若用户要求更换域名/Bucket/CDN/证书,或新增项目配置,则走完整流程。

用户确认项(Agent 禁止代决)

类别确认内容
域名部署域名、证书覆盖的 FQDN
OSSBucket 名称、region、上传路径前缀
CDN加速域名(完整主机名)
安全私有 Bucket + CDN 回源(默认)或公开读

流程:查询账号内已有资源 → 展示列表 → 用户选定 → 执行。

主流程

1. 域名
  • 使用 domain-skill 查询账号域名列表
  • 用户选定后,后续 CNAME/TXT 记录添加至该域名的云解析 DNS
2. OSS Bucket
  • 使用 oss-skill 查询/创建 Bucket
  • 默认私有 ACL,配合 CDN 私有回源
  • 开启静态网站:默认首页 index.html,404 页同首页(SPA)
3. 构建与上传
  • 执行构建(npm run build 等)
  • 上传产物到 Bucket 指定路径,确保 index.html 在根路径
  • 部署后刷新 CDN 缓存
4. CDN 加速域名
  • 使用 cdn-skill 添加/配置加速域名
  • 业务类型:web(图片小文件)
  • 源站:OSS 域名,开启私有回源
  • 根路径:确保访问 / 返回 index.html
  • 添加前检查 ICP 备案(国内加速)
5. DNS 配置

5A — CNAME 接入

  • 获取 CDN 分配的 CNAME 目标
  • 云解析 DNS 添加 CNAME 记录指向该目标

5B — 证书验证(DNS-01)

  • certbot 申请:certbot certonly --manual --preferred-challenges dns -d <域名>
  • 按提示添加 _acme-challenge TXT 记录
  • 验证通过后获取 fullchain.pem 和 privkey.pem
6. HTTPS 配置
  • 使用 cdn-skill 上传证书并启用 HTTPS
  • 建议开启强制 HTTPS、HTTP/2
  • 证书有效期 90 天,到期前需重新申请
7. 启用与验收
  • 启用加速域名(若处于停用状态)
  • 访问 https://<加速域名>/ 验证根路径返回 index.html
  • 检查 CNAME、证书链无告警
8. 收尾
  • 更新 .aliyun-config.json(对象格式直接更新;数组格式更新对应项目条目,或追加新配置)
  • 返回 HTTPS 访问地址,提示证书续期与后续发版流程(上传+刷新)

故障排查

现象原因处理
403RAM 权限不足立即停止,补全策略
403私有 Bucket 回源配置错误检查 OSS 权限与 CDN 源站配置
访问 / 404根路径未映射到 index.html检查 OSS 默认首页配置与文件位置
页面空白SPA 路由 404OSS 错误页设为 index.html
旧资源CDN 缓存未刷新执行缓存刷新
证书错误证书与域名不匹配检查 SAN、证书链完整性
CNAME 不生效DNS 传播延迟dig/nslookup 核对

计费提示

可能产生费用:OSS 存储/请求、CDN 流量/HTTPS、域名续费。Let’s Encrypt 证书免费。

评论

支持 Markdown