关于 aliyun-fc-serverless-devs
该技能指导开发者使用 Serverless Devs 管理 Alibaba Cloud Function Compute(FC 3.0)应用,涵盖凭据配置、Python 示例初始化、部署、调用与移除,并说明自定义域名设置。
主要功能
- 01配置 Alibaba Cloud 凭据
- 02初始化 Python 示例项目
- 03部署、调用和移除函数
- 04配置自定义域名
- 05验证权限并保存执行证据
适用场景
- 01搭建 FC 3.0 Python 示例
- 02部署并调用函数应用
- 03为函数配置自定义域名
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ cinience/ alicloud-skills --skill aliyun-fc-serverless-devs安装后在 Claude Code 中输入/aliyun-fc-serverless-devs确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlreferences/install_serverless_devs_and_docker.mdsources.md详细介绍
分类:工具
Function Compute(FC 3.0)Serverless Devs
目标
- 安装并验证 Serverless Devs。
- 配置凭证、初始化示例项目、部署、调用并移除。
- 提供包含 Python 运行时示例的 CLI 流程。
快速入门流程
- 安装 Node.js(14+)和 npm。
- 安装并验证 Serverless Devs。
- 通过引导式设置配置凭证。
- 初始化示例项目并进入目录。
- 部署、调用,并可选择移除。
安装 Serverless Devs(npm)
全局安装(需要 sudo):
sudo npm install @serverless-devs/s -g
sudo s -v
无需 sudo 的替代方案(在受限环境中推荐):
npx -y @serverless-devs/s -v
配置凭证(引导式)
sudo s config add
选择 Alibaba Cloud (alibaba),提供 AccountID、AccessKeyID、AccessKeySecret,并设置别名。
配置凭证(命令)
使用 CLI 参数通过一条命令配置凭证别名(非交互式):
s config add -a default --AccessKeyID <AK> --AccessKeySecret <SK> -f
如果使用环境变量,请将其注入命令(示例):
s config add -a default -kl AccessKeyID,AccessKeySecret -il ${ALIBABACLOUD_ACCESS_KEY_ID},${ALIBABACLOUD_ACCESS_KEY_SECRET} -f
或者使用 Serverless Devs 约定的 JSON 环境变量(示例):
export default_serverless_devs_key='{\"AccountID\":\"<AccountID>\",\"AccessKeyID\":\"<AK>\",\"AccessKeySecret\":\"<SK>\"}'
在 s.yaml 中引用:
access: default_serverless_devs_key
初始化示例(Python)
sudo s init start-fc3-python
cd start-fc3-python
初始化会创建 s.yaml、code/ 和 readme.md;编辑 code/index.py 以编写函数逻辑。
部署、调用和移除
sudo s deploy
sudo s invoke -e "test"
sudo s remove
绑定自定义域名(避免默认域名强制下载)
注意:FC 默认域名会添加
Content-Disposition: attachment,导致浏览器下载。 使用自定义域名可避免此行为。
步骤 1:为域名配置 CNAME
将 DNS CNAME 配置为 FC 公网 CNAME:
<account_id>.<region_id>.fc.aliyuncs.com
示例(杭州地域):
1629965279769872.cn-hangzhou.fc.aliyuncs.com
注意:如果使用根域名(例如 animus.run),且 DNS 提供商不支持根域名 CNAME,
请使用 ALIAS/ANAME 记录,或改用子域名,例如 www.animus.run。
步骤 2:在 Serverless Devs 中创建自定义域名
选项 A:在 s.yaml 中添加 fc3-domain 资源:
resources:
newsDomain:
component: fc3-domain
props:
region: cn-hangzhou
domainName: animus.run
protocol: HTTP
routeConfig:
routes:
- functionName: honnold-taipei101-news
qualifier: LATEST
methods:
- GET
- HEAD
path: /*
region 是示例默认值;如果无法确定最佳地域,请询问用户。
然后部署:
printf 'y\n' | npx -y @serverless-devs/s deploy
选项 B:使用控制台(高级功能 > 自定义域名)创建自定义域名并配置路由。
常见错误
DomainNameNotResolved:域名未解析到正确的 FC CNAME。InvalidICPLicense:中国大陆地域需要关联阿里云的 ICP 备案。
参考资料
-
详细的官方步骤请参阅
references/install_serverless_devs_and_docker.md。 -
HTTP 触发器限制和响应头行为(默认域名会强制设置 Content-Disposition: attachment)
-
自定义域名绑定和 CNAME 指南
-
官方来源列表:
references/sources.md
验证
mkdir -p output/aliyun-fc-serverless-devs
echo "validation_placeholder" > output/aliyun-fc-serverless-devs/validate.txt
通过标准:命令以 0 退出,并生成 output/aliyun-fc-serverless-devs/validate.txt。
输出和证据
- 将构件、命令输出和 API 响应摘要保存在
output/aliyun-fc-serverless-devs/下。 - 在证据文件中包含关键参数(地域/资源 ID/时间范围),以便复现。
前提条件
- 执行前配置遵循最小权限原则的阿里云凭证。
- 优先使用环境变量:
ALIBABACLOUD_ACCESS_KEY_ID、ALIBABACLOUD_ACCESS_KEY_SECRET,可选的ALIBABACLOUD_REGION_ID。 - 如果无法确定地域,请在执行有变更的操作前询问用户。
工作流
- 确认用户意图、地域、标识符,以及操作是只读还是有变更。
- 先运行一个最小化的只读查询,以验证连接和权限。
- 使用明确的参数和限定的范围执行目标操作。
- 验证结果并保存输出/证据文件。