mcpField
A
aliyun-fc-serverless-devs

aliyun-fc-serverless-devs

github.com/cinience云与 DevOps39659 次安装11 周前更新
代码仓库

关于 aliyun-fc-serverless-devs

该技能指导开发者使用 Serverless Devs 管理 Alibaba Cloud Function Compute(FC 3.0)应用,涵盖凭据配置、Python 示例初始化、部署、调用与移除,并说明自定义域名设置。

主要功能

  1. 01配置 Alibaba Cloud 凭据
  2. 02初始化 Python 示例项目
  3. 03部署、调用和移除函数
  4. 04配置自定义域名
  5. 05验证权限并保存执行证据

适用场景

  1. 01搭建 FC 3.0 Python 示例
  2. 02部署并调用函数应用
  3. 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.yaml
references/
install_serverless_devs_and_docker.md
sources.md

详细介绍

分类:工具

Function Compute(FC 3.0)Serverless Devs

目标

  • 安装并验证 Serverless Devs。
  • 配置凭证、初始化示例项目、部署、调用并移除。
  • 提供包含 Python 运行时示例的 CLI 流程。

快速入门流程

  1. 安装 Node.js(14+)和 npm。
  2. 安装并验证 Serverless Devs。
  3. 通过引导式设置配置凭证。
  4. 初始化示例项目并进入目录。
  5. 部署、调用,并可选择移除。

安装 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 备案。

参考资料

验证

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。
  • 如果无法确定地域,请在执行有变更的操作前询问用户。

工作流

  1. 确认用户意图、地域、标识符,以及操作是只读还是有变更。
  2. 先运行一个最小化的只读查询,以验证连接和权限。
  3. 使用明确的参数和限定的范围执行目标操作。
  4. 验证结果并保存输出/证据文件。

评论

支持 Markdown