mcpField
A
alibabacloud-tech-solution-animation-creation-auto-deploy

alibabacloud-tech-solution-animation-creation-auto-deploy

github.com/aliyun云与 DevOps281410 次安装1 天前更新
代码仓库

关于 alibabacloud-tech-solution-animation-creation-auto-deploy

用于自动部署 Alibaba Cloud“Build AI Animation Story Creation App”方案的技能,面向需要通过 CLI 创建云资源并取得应用访问地址的场景。它配置 OSS、DashScope 和 FC App,并在部署后停止,不代替用户操作应用。

主要功能

  1. 01创建 Bailian API Key 和 OSS Bucket
  2. 02通过 Devs 模板创建项目
  3. 03部署 ComfyUI 与 WebUI 函数
  4. 04轮询部署状态并创建自定义域名
  5. 05输出应用访问地址

适用场景

  1. 01部署 AI 动画故事创作应用
  2. 02自动配置方案所需的云资源
  3. 03部署完成后获取应用入口

安装

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

$npx skills add https://github.com/aliyun/alibabacloud-aiops-skills --skill alibabacloud-tech-solution-animation-creation-auto-deploy

安装后在 Claude Code 中输入/alibabacloud-tech-solution-animation-creation-auto-deploy确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
acceptance-criteria.md
cli-installation-guide.md
ram-policies.md
related-commands.md
verification-method.md
scripts/
attach-policies.sh
create-api-key.sh
create-custom-domain.sh
deploy-environment.sh
poll-deploy-status.sh
render-and-update.sh
setup-role.sh

详细介绍

构建 AI 动画故事创作应用 — 自动部署

自动部署阿里云“构建 AI 动画故事创作应用”解决方案。部署会在应用可访问后停止,后续体验由用户自行完成。

架构: OSS Bucket + DashScope (Bailian API Key) + FC App (ComfyUI + WebUI — two functions deployed via Devs template)

安装

前置条件(脚本/运行时依赖项):

依赖项最低版本检查命令用途
bash4.0+bash --version脚本运行时
aliyun CLI>= 3.3.7aliyun version阿里云资源操作(ai-mode 子命令要求 3.3.7+)
python33.6+python3 --versionJSON 解析
curl任意curl --versionHTTP API 调用

如果尚未安装 Aliyun CLI 或版本过低, 请参阅 references/cli-installation-guide.md 获取安装说明。 然后 [MUST] 运行 aliyun configure set --auto-plugin-install true 以启用自动插件安装。


CLI 初始化(必须在核心工作流之前运行)

启用 AI-Mode,设置专用 User-Agent,并更新插件,以确保后续所有 CLI 调用都正确标记且使用最新的插件版本:

aliyun configure ai-mode enable
aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-tech-solution-animation-creation-auto-deploy"
aliyun plugin update

身份验证

预检查:需要阿里云凭证

安全规则:

  • 绝不读取、回显或打印 AK/SK 值
  • 绝不要求用户在对话或命令行中直接输入 AK/SK
  • 绝不使用带有明文凭证值的 aliyun configure set
  • 仅使用 aliyun configure list 检查凭证状态
aliyun configure list

检查输出中是否存在有效配置(AK、STS 或 OAuth 身份)。

如果不存在有效配置,请在此处停止。

  1. 从阿里云控制台获取凭证
  2. 在本次会话之外配置凭证
  3. 返回并在 aliyun configure list 显示有效配置后重新运行

RAM 策略

完整权限列表请参阅 references/ram-policies.md。

必需的系统策略: AliyunFCFullAccess、AliyunOSSFullAccess

其他权限: Devs 相关权限(devs:CreateProject、devs:RenderServicesByTemplate、devs:UpdateEnvironment、devs:DeployEnvironment、devs:ListEnvironments、devs:GetEnvironment)

在核心工作流之前,自动检查并附加所需策略:

bash scripts/attach-policies.sh

[MUST] 权限失败处理: 执行期间的任何时候,如果命令或 API 调用因权限错误而失败,请按以下流程处理:

  1. 阅读 references/ram-policies.md,获取此 SKILL 所需权限的完整列表
  2. 使用 ram-permission-diagnose skill 引导用户申请必要权限
  3. 暂停并等待用户确认已授予所需权限

参数确认

重要:参数确认——执行任何命令或 API 调用之前, 所有参数均为固定值或自动生成/创建,无需用户手动输入。

参数必需描述值
RegionId是部署地域(FC 和 OSS 必须位于同一地域)固定为 cn-hangzhou
BUCKET_NAME是OSS Bucket 名称自动生成 animation-story-<6 random lowercase letters>
API_KEY是Bailian(DashScope)API Key通过 aliyun modelstudio create-api-key 自动创建
PROJECT_NAME是Devs 项目名称自动生成 animation-creation-<6 random lowercase letters>

开始核心工作流前,在 shell 中设置以下变量(后续所有命令都直接引用这些变量):

# Generate random names
BUCKET_NAME="animation-story-$(cat /dev/urandom | LC_ALL=C tr -dc 'a-z' | head -c 6)"
PROJECT_NAME="animation-creation-$(cat /dev/urandom | LC_ALL=C tr -dc 'a-z' | head -c 6)"
echo "BUCKET_NAME=$BUCKET_NAME, PROJECT_NAME=$PROJECT_NAME"

核心工作流

第 1 步:创建百炼 API Key(CLI)

通过 aliyun modelstudio CLI 自动获取工作空间并创建 API Key:

source scripts/create-api-key.sh

注意: 使用 source 确保 API_KEY 变量导出到当前 shell。脚本会自动获取默认工作空间(如果不存在,则创建一个),创建 API Key,并打印完整值。

第 2 步:启用 OSS 服务并创建 Bucket(CLI)

注意: OSS CLI 插件使用 --ua 标志(而非 --user-agent)设置 User-Agent。

首先启用 OSS 服务(如果已启用,则返回 ORDER.OPEND,可忽略):

aliyun ossadmin open-oss-service --endpoint oss-admin.aliyuncs.com --force --user-agent AlibabaCloud-Agent-Skills/alibabacloud-tech-solution-animation-creation-auto-deploy 2>&1 || true

创建 Bucket:

aliyun oss mb "oss://$BUCKET_NAME" --region cn-hangzhou --ua AlibabaCloud-Agent-Skills/alibabacloud-tech-solution-animation-creation-auto-deploy

验证:

aliyun oss stat "oss://$BUCKET_NAME" --ua AlibabaCloud-Agent-Skills/alibabacloud-tech-solution-animation-creation-auto-deploy
第 3 步:创建 Devs 项目(CLI)

使用 CreateProject API 创建项目。通过 templateConfig 指定模板名称和参数,Devs 会自动创建 production 环境。

注意: CreateProject 只会创建项目和空环境,不会自动触发部署。你必须后续调用 RenderServicesByTemplate + UpdateEnvironment + DeployEnvironment 来完成部署。

aliyun devs create-project --body "{
  \"name\": \"$PROJECT_NAME\",
  \"spec\": {
    \"templateConfig\": {
      \"templateName\": \"animation-creation\",
      \"parameters\": {
        \"region\": \"cn-hangzhou\",
        \"bailian_api_key\": \"$API_KEY\",
        \"ossBucket\": \"$BUCKET_NAME\"
      }
    }
  }
}" --user-agent AlibabaCloud-Agent-Skills/alibabacloud-tech-solution-animation-creation-auto-deploy

模板参数说明(已确认 — 请勿修改):

  • region:固定为 cn-hangzhou
  • bailian_api_key:第 1 步自动创建的百炼 API Key
  • ossBucket:第 2 步创建的 OSS Bucket 名称(不带 oss:// 前缀)
  • 所有参数都通过 parameters 传递,而非 variableValues
第 4 步:渲染模板并配置环境(CLI)

本步骤中的所有命令都使用 shell 变量 MY_UID、PROJECT_NAME、BUCKET_NAME、API_KEY — 请确保已执行第 1 步和参数确认。

首先获取当前用户 UID 并检查角色信任策略:

source scripts/setup-role.sh

注意: 使用 source 确保 MY_UID 变量导出到当前 shell。脚本会自动检查角色是否存在,如果不存在则创建。该角色是标准 Devs 角色,通常会在首次使用 FC 控制台的应用功能时自动创建。

4a. 渲染模板 → 构建 JSON → 更新环境(全自动脚本)

以下脚本会自动:渲染模板 → 过滤 custom-domain → 添加 roleArn → 调用 UpdateEnvironment。 Agent 无需手动处理 JSON。

bash scripts/render-and-update.sh

关键说明(脚本内置,无需手动处理):

  • 自动过滤 custom-domain 服务(该服务会导致“Unknown service type”错误)
  • 自动添加 roleArn
  • 使用 --body 传递数据(--spec 无法正确传递深度嵌套的 JSON)
4b. 触发部署

内置速率限制保护: 脚本会以 60 秒为间隔最多重试 3 次,并在遇到 404 时立即停止。直接运行脚本 — 不要手动调用 deploy-environment。

bash scripts/deploy-environment.sh
第 5 步:轮询部署状态

部署是异步的 — 轮询直至完成(通常需要 5–15 分钟)。直接运行以下脚本:

bash scripts/poll-deploy-status.sh
第 6 步:创建自定义域名

为什么需要自定义域名? FC 触发器 URL(*.fcapp.run)会强制添加 Content-Disposition: attachment 响应头,导致浏览器下载 HTML,而不是渲染页面。应用要正常运行,必须使用自定义域名(*.devsapp.net)。

必须使用 FC 2.0 API(aliyun fc-open) 来创建辅助函数:FC 3.0 不支持在函数名称中使用 $。通过 --auto-plugin-install true 配置,fc-open 插件会自动安装。

直接运行以下完整脚本(只需设置 MY_UID 和 PROJECT_NAME 变量):

bash scripts/create-custom-domain.sh
步骤 7:获取访问 URL(到此为止)

访问 URL 会在步骤 6 脚本末尾自动打印。格式如下:

http://${PROJECT_NAME}-web.fcv3.${MY_UID}.cn-hangzhou.fc.devsapp.net/

到此为止。将步骤 6 输出中的访问 URL 提供给用户,让他们自行体验应用。不要代替用户操作应用。

⚠️ 安全提醒 — 展示访问 URL 时必须告知用户: 该 URL 可通过公网直接访问,请勿随意分享给不信任的人。未经授权的访问可能导致:

  • 云资源被消耗: 每次访问都会消耗函数计算资源和百炼 API 调用额度,可能产生额外费用。
  • 隐私信息泄露: 生成的动画故事、上传的图片等内容可能包含个人或敏感信息。

清理

要清理已部署的资源,请按以下顺序删除(需要 PROJECT_NAME、MY_UID、BUCKET_NAME、API_KEY_ID 变量):

# 1. Delete FC custom domain
aliyun fc delete-custom-domain --domain-name "${PROJECT_NAME}-web.fcv3.${MY_UID}.cn-hangzhou.fc.devsapp.net" --region cn-hangzhou --user-agent AlibabaCloud-Agent-Skills/alibabacloud-tech-solution-animation-creation-auto-deploy

# 2. Delete Devs project (also deletes associated FC functions; --force true skips environment resource check)
aliyun devs delete-project --name "$PROJECT_NAME" --force true --user-agent AlibabaCloud-Agent-Skills/alibabacloud-tech-solution-animation-creation-auto-deploy

# 3. Delete OSS Bucket (recursively delete all objects first, then delete the Bucket)
aliyun oss rm "oss://$BUCKET_NAME" -r -f --region cn-hangzhou --ua AlibabaCloud-Agent-Skills/alibabacloud-tech-solution-animation-creation-auto-deploy
aliyun oss rm "oss://$BUCKET_NAME" -b -f --region cn-hangzhou --ua AlibabaCloud-Agent-Skills/alibabacloud-tech-solution-animation-creation-auto-deploy

# 4. Delete Bailian API Key (API_KEY_ID is output during create-api-key.sh execution)
aliyun modelstudio delete-api-key --api-key-id "$API_KEY_ID" --user-agent AlibabaCloud-Agent-Skills/alibabacloud-tech-solution-animation-creation-auto-deploy

工作流拆除

工作流完成后(或清理后),请禁用 AI-Mode:

aliyun configure ai-mode disable

无法通过 CLI/SDK 执行的操作摘要

完整的 CLI 命令参考请参阅 references/related-commands.md。

主要限制: 首次启用 FC 不支持 CLI/API — 用户必须在控制台中手动启用。

自动启用: 通过 aliyun ossadmin open-oss-service 启用 OSS 服务(内置于步骤 2)。通过 aliyun modelstudio create-workspace 启用百炼工作空间(内置于步骤 1)。


最佳实践

  1. 区域固定为 cn-hangzhou(FC 和 OSS 位于同一区域)
  2. DashScope API Key 通过 Devs 模板参数传递,而非硬编码
  3. OSS Bucket 名称包含随机后缀,以避免冲突
  4. 部署完成后记录访问 URL 和已创建的资源

参考链接

参考描述
references/ram-policies.mdRAM 权限策略
references/related-commands.mdCLI/SDK 命令参考
references/verification-method.md部署验证步骤
references/acceptance-criteria.md验收标准
references/cli-installation-guide.mdCLI 安装指南

评论

支持 Markdown