Skip to content

Alibaba Cloud Function Compute

Alibaba Cloud Function Compute는 완전 관리형 이벤트 기반 컴퓨팅 서비스다. Function Compute를 사용하면 서버와 같은 인프라를 관리할 필요 없이 코드 작성과 업로드에만 집중할 수 있다.

이 가이드에서는 rwv/hono-alibaba-cloud-fc3-adapter라는 서드파티 어댑터를 사용해 Hono를 Alibaba Cloud Function Compute에서 실행하는 방법을 설명한다.

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.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 파일을 수정한다.

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-devs를 다른 도구나 플랫폼과 매우 간단하고 빠르게 결합해 R&D와 운영 및 유지보수의 효율을 더욱 높일 수 있다.

Alibaba Cloud AccessKeyID와 AccessKeySecret 추가

sh
npx s config add
# 프로바이더 선택: Alibaba Cloud (alibaba)
# AccessKeyID와 AccessKeySecret 입력

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 섹션 수정

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 # TypeScript 코드를 JavaScript로 컴파일
npm run deploy # Alibaba Cloud Function Compute에 함수 배포

Released under the MIT License.