Aller au contenu

Alibaba Cloud Function Compute ​

Alibaba Cloud Function Compute est un service de calcul entièrement géré, piloté par les événements. Function Compute vous permet de vous concentrer sur l'écriture et le chargement du code sans avoir à gérer une infrastructure telle que des serveurs.

Ce guide utilise l'adaptateur tiers rwv/hono-alibaba-cloud-fc3-adapter pour exécuter Hono sur Alibaba Cloud Function Compute.

1. Configuration ​

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. Bonjour le monde ​

Modifiez 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. Configuration de serverless-devs ​

serverless-devs est une plateforme de développement serverless ouverte et open source qui fournit aux développeurs une puissante chaîne d'outils. Elle leur permet de découvrir en un clic des produits serverless sur plusieurs clouds et de déployer rapidement des projets serverless, mais aussi de gérer l'ensemble du cycle de vie de leurs applications. Elle permet également de combiner facilement et rapidement serverless-devs avec d'autres outils ou plateformes pour améliorer encore l'efficacité du développement, de l'exploitation et de la maintenance.

Ajoutez les identifiants AccessKeyID et AccessKeySecret d'Alibaba Cloud.

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

Modifiez 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

Modifiez la section scripts de package.json :

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

4. Déploiement ​

Enfin, exécutez les commandes de déploiement :

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

Publié sous licence MIT.