Skip to content

阿里云函数计算

¥Alibaba Cloud Function Compute

阿里云函数计算 是一种完全托管的、事件驱动的计算服务。函数计算允许你专注于编写和上传代码,而无需管理服务器等基础设施。

¥Alibaba Cloud Function Compute is a fully managed, event-driven compute service. Function Compute allows you to focus on writing and uploading code without having to manage infrastructure such as servers.

本指南使用第三方适配器 rwv/hono-alibaba-cloud-fc3-adapter 在阿里云函数计算上运行 Hono。

¥This guide uses a third-party adapter rwv/hono-alibaba-cloud-fc3-adapter to run Hono on Alibaba Cloud Function Compute.

1. 设置

¥ Setup

sh
mkdir my-app
cd my-app
npm i hono hono-alibaba-cloud-fc3-adapter
npm i -D @serverless-devs/s esbuild
mkdir src
touch src/index.ts
sh
mkdir my-app
cd my-app
yarn add hono hono-alibaba-cloud-fc3-adapter
yarn add -D @serverless-devs/s esbuild
mkdir src
touch src/index.ts
sh
mkdir my-app
cd my-app
pnpm add hono hono-alibaba-cloud-fc3-adapter
pnpm add -D @serverless-devs/s esbuild
mkdir src
touch src/index.ts
sh
mkdir my-app
cd my-app
bun add hono hono-alibaba-cloud-fc3-adapter
bun add -D esbuild @serverless-devs/s
mkdir src
touch src/index.ts

2. Hello World

编辑 src/index.ts

¥Edit src/index.ts.

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

¥ Setup serverless-devs

serverless-devs 是一个开源的开放式无服务器开发者平台,致力于为开发者提供强大的工具链系统。通过该平台,开发者不仅可以一键体验多云无服务器产品、快速部署无服务器项目,还可以在无服务器应用的全生命周期中管理项目,并非常简单快捷地将无服务器开发与其他工具/平台结合起来,进一步提高研发和运维的效率。

¥serverless-devs is an open source and open serverless developer platform dedicated to providing developers with a powerful tool chain system. Through this platform, developers can not only experience multi cloud serverless products with one click and rapidly deploy serverless projects, but also manage projects in the whole life cycle of serverless applications, and combine serverless devs with other tools / platforms very simply and quickly to further improve the efficiency of R & D, operation and maintenance.

添加阿里云 AccessKeyID 和 AccessKeySecret

¥Add the Alibaba Cloud AccessKeyID & AccessKeySecret

sh
npx s config add
# Please select a provider: Alibaba Cloud (alibaba)
# Input your AccessKeyID & AccessKeySecret

编辑 s.yaml

¥Edit s.yaml

yaml
edition: 3.0.0
name: my-app
access: 'default'

vars:
  region: 'us-west-1'

resources:
  my-app:
    component: fc3
    props:
      region: ${vars.region}
      functionName: 'my-app'
      description: 'Hello World by Hono'
      runtime: 'nodejs20'
      code: ./dist
      handler: index.handler
      memorySize: 1024
      timeout: 300

编辑 package.json 中的 scripts 部分:

¥Edit scripts section in package.json:

json
{
  "scripts": {
    "build": "esbuild --bundle --outfile=./dist/index.js --platform=node --target=node20 ./src/index.ts",
    "deploy": "s deploy -y"
  }
}

4. 部署

¥ Deploy

最后,运行命令进行部署:

¥Finally, run the command to deploy:

sh
npm run build # Compile the TypeScript code to JavaScript
npm run deploy # Deploy the function to Alibaba Cloud Function Compute

Hono v4.7 中文网 - 粤ICP备13048890号