用途:把任意静态站点目录部署到 AWS,S3 负责存储,CloudFront 负责 HTTPS 与全球 CDN 分发,无体积限制,适合全分辨率滚动序列站点、大型资源目录等超出 Vercel 4.5MB 压缩上限的场景。
适用时机:用户明确要求 AWS 托管;资源超过 Vercel 压缩上限;需要可经 CloudFormation 轻松拆除的持久部署;已配置 AWS 凭证。若只需快速部署且无 AWS 凭证,应改用 vercel-deploy。
前置条件:AWS CLI(缺失时脚本在 macOS 经 Homebrew、Linux 经官方安装器自动安装);AWS 凭证,可用 aws configure、环境变量 AWS_ACCESS_KEY_ID 与 AWS_SECRET_ACCESS_KEY,或 aws sso login。
使用方式:目录根需含 index.html,若只有一个其他名称的 .html 文件,脚本会自动重命名。执行:bash <skill-path>/scripts/deploy.sh <directory> [--region <region>],默认区域 us-east-1,可用 --region 或 AWS_REGION 覆盖。首次部署创建名为 site-craft-<directory-name> 的 CloudFormation 栈(含 S3 桶、CloudFront 分发与 OAC),约需 3-5 分钟;同名目录再次部署复用现有栈,仅同步文件,约 10 秒。脚本会同步内容到 S3 并使 CloudFront 缓存失效,返回含 previewUrl、distributionId、bucketName、stackName、region 的 JSON。
清理:先清空桶(CloudFormation 无法删除非空 S3 桶),再删除栈。可用 aws cloudformation describe-stacks 查询桶名,然后执行 aws s3 rm s3://<bucket-name> --recursive --region us-east-1 与 aws cloudformation delete-stack --stack-name site-craft-<name> --region us-east-1。
限制:需具备相应 AWS 权限,资料给出了最小 IAM 策略;首次部署受 CloudFront 配置时间影响较慢;清理必须手动先清空桶。其他收费、价格与平台细节暂未提供。