Zum Inhalt springen

Alibaba Cloud Function Compute ​

Alibaba Cloud Function Compute ist ein vollständig verwalteter, ereignisgesteuerter Computing-Dienst. Mit Function Compute kannst du dich auf das Schreiben und Hochladen von Code konzentrieren, ohne Infrastruktur wie Server verwalten zu müssen.

Diese Anleitung verwendet den Drittanbieter-Adapter rwv/hono-alibaba-cloud-fc3-adapter, um Hono auf Alibaba Cloud Function Compute auszuführen.

1. Einrichtung ​

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 ​

Bearbeite 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 einrichten ​

serverless-devs ist eine quelloffene und offene Serverless-Entwicklungsplattform, die Entwicklern eine leistungsfähige Werkzeugkette bietet. Über diese Plattform können Entwickler nicht nur Serverless-Produkte mehrerer Clouds mit einem Klick ausprobieren und Serverless-Projekte schnell bereitstellen, sondern auch Projekte über den gesamten Lebenszyklus ihrer Serverless-Anwendungen verwalten. Außerdem lässt sich serverless devs einfach und schnell mit anderen Werkzeugen oder Plattformen verbinden, um die Effizienz von Entwicklung, Betrieb und Wartung weiter zu verbessern.

Füge die AccessKeyID und das AccessKeySecret für Alibaba Cloud hinzu.

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

Bearbeite 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

Bearbeite den Abschnitt scripts in package.json:

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

4. Bereitstellung ​

Führe abschließend den folgenden Befehl zur Bereitstellung aus:

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

Veröffentlicht unter der MIT-Lizenz.