mcpField
A
alicloud-compute-fc-serverless-devs

alicloud-compute-fc-serverless-devs

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

关于 alicloud-compute-fc-serverless-devs

用于通过 Serverless Devs 操作 Alibaba Cloud Function Compute(FC 3.0)的命令行技能,涵盖凭据配置、Python 示例初始化、部署、调用、移除和自定义域名设置。

主要功能

  1. 01安装并验证 Serverless Devs
  2. 02配置 Alibaba Cloud 凭据
  3. 03初始化 Python FC 示例
  4. 04部署、调用和移除函数
  5. 05绑定自定义域名

适用场景

  1. 01准备本地 FC 3.0 项目
  2. 02部署并测试 Python 函数
  3. 03移除已部署的函数
  4. 04通过自定义域名访问 FC 服务

安装

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

$npx skills add https://github.com/cinience/alicloud-skills --skill alicloud-compute-fc-serverless-devs

安装后在 Claude Code 中输入/alicloud-compute-fc-serverless-devs确认已加载。

包含的文件

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

agents/
openai.yaml
references/
install_serverless_devs_and_docker.md
sources.md

详细介绍

Category: 工具

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 ${ALIBABA_CLOUD_ACCESS_KEY_ID},${ALIBABA_CLOUD_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:中国大陆地域要求备案信息与 Alibaba Cloud 关联。

参考资料

验证

mkdir -p output/alicloud-compute-fc-serverless-devs
echo "validation_placeholder" > output/alicloud-compute-fc-serverless-devs/validate.txt

通过标准:命令以 0 退出,并生成 output/alicloud-compute-fc-serverless-devs/validate.txt。

输出和证据

  • 将制品、命令输出和 API 响应摘要保存在 output/alicloud-compute-fc-serverless-devs/ 下。
  • 在证据文件中包含关键参数(地域/资源 ID/时间范围),以便复现。

前提条件

  • 执行前配置遵循最小权限原则的 Alibaba Cloud 凭证。
  • 优先使用环境变量:ALICLOUD_ACCESS_KEY_ID、ALICLOUD_ACCESS_KEY_SECRET,以及可选的 ALICLOUD_REGION_ID。
  • 如果地域不明确,请在执行会修改状态的操作前询问用户。

工作流

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

评论

支持 Markdown