Alibaba Cloud Function Compute
Alibaba Cloud Function Compute は、フルマネージドのイベント駆動型コンピューティングサービスです。サーバーなどのインフラストラクチャを管理せず、コードの作成とアップロードに集中できます。
このガイドでは、サードパーティのアダプター rwv/hono-alibaba-cloud-fc3-adapter を使い、Alibaba Cloud Function Compute 上で Hono を実行します。
1. セットアップ
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.tssh
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.tssh
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.tssh
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.ts2. Hello World
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 の設定
serverless-devs は、開発者に強力なツールチェーンを提供する、オープンソースの開かれたサーバーレス開発者プラットフォームです。複数のクラウドのサーバーレス製品をワンクリックで試し、プロジェクトをすばやくデプロイできるほか、サーバーレスアプリケーションのライフサイクル全体を管理できます。他のツールやプラットフォームとも簡単かつ迅速に組み合わせ、開発と運用の効率をさらに高められます。
Alibaba Cloud の AccessKeyID と AccessKeySecret を追加します。
sh
npx s config add
# Please select a provider: Alibaba Cloud (alibaba)
# Input your AccessKeyID & AccessKeySecrets.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: 300package.json の scripts セクションを編集します。
json
{
"scripts": {
"build": "esbuild --bundle --outfile=./dist/index.js --platform=node --target=node20 ./src/index.ts",
"deploy": "s deploy -y"
}
}4. デプロイ
最後に、次のコマンドを実行してデプロイします。
sh
npm run build # Compile the TypeScript code to JavaScript
npm run deploy # Deploy the function to Alibaba Cloud Function Compute