Alibaba Cloud Function Compute
Alibaba Cloud Function Compute 是一款全托管的、事件驱动的计算服务。使用 Function Compute,你可以专注于编写和上传代码,而无需管理服务器等基础设施。
本指南使用第三方适配器 rwv/hono-alibaba-cloud-fc3-adapter 来在 Alibaba Cloud Function Compute 上运行 Hono。
1. 设置
npmyarnpnpmbun
mkdir my-appcd my-appnpm i hono hono-alibaba-cloud-fc3-adapternpm i -D @serverless-devs/s esbuildmkdir srctouch src/index.ts
mkdir my-appcd my-appyarn add hono hono-alibaba-cloud-fc3-adapteryarn add -D @serverless-devs/s esbuildmkdir srctouch src/index.ts
mkdir my-appcd my-apppnpm add hono hono-alibaba-cloud-fc3-adapterpnpm add -D @serverless-devs/s esbuildmkdir srctouch src/index.ts
mkdir my-appcd my-appbun add hono hono-alibaba-cloud-fc3-adapterbun add -D esbuild @serverless-devs/smkdir srctouch src/index.ts
2. Hello World
编辑 src/index.ts:
import { Hono } from 'hono'import { handle } from 'hono-alibaba-cloud-fc3-adapter'const app = new Hono()app.get('/', (c) => c.text('Hello Hono!'))export const handler = handle(app)
3. 配置 serverless-devs
serverless-devs 是一个开源的 Serverless 开发者平台,致力于为开发者提供强大的工具链系统。通过该平台,开发者不仅可以一键体验多云 Serverless 产品并快速部署项目,还可以管理 Serverless 应用的全生命周期,并将 serverless-devs 与其他工具 / 平台简单快速地结合,以进一步提升研发和运维效率。
添加 Alibaba Cloud 的 AccessKeyID 和 AccessKeySecret:
npx s config add# 请选择一个云厂商: Alibaba Cloud (alibaba)# 输入你的 AccessKeyID 和 AccessKeySecret
编辑 s.yaml:
edition: 3.0.0name: my-appaccess: 'default'vars:region: 'us-west-1'resources:my-app:component: fc3props:region: ${vars.region}functionName: 'my-app'description: 'Hello World by Hono'runtime: 'nodejs20'code: ./disthandler: index.handlermemorySize: 1024timeout: 300
编辑 package.json 中的 scripts 部分:
{"scripts": {"build": "esbuild --bundle --outfile=./dist/index.js --platform=node --target=node20 ./src/index.ts","deploy": "s deploy -y"}}
4. 部署
最后,运行以下命令进行部署:
npm run build # 将 TypeScript 代码编译为 JavaScriptnpm run deploy # 将函数部署到 Alibaba Cloud Function Compute
