@stone-js/alibaba-fc-adapter
v0.8.6
Published
General-purpose Alibaba Cloud Function Compute adapter for Stone.js, run any app on event-driven FC triggers, beyond HTTP. Supports OSS, MNS, Timer and EventBridge.
Maintainers
Readme
Stone.js - Alibaba FC Adapter
The Alibaba FC Adapter lets your Stone.js application run on event-driven Alibaba Cloud Function Compute, beyond HTTP. It normalizes any non-HTTP trigger (OSS, MNS, Timer, EventBridge, Log) into a Stone.js IncomingEvent, fully aligned with the Continuum Architecture.
For HTTP-triggered functions, use
@stone-js/alibaba-fc-http-adapter.
Introduction
In Stone.js, adapters are the translation layer between a platform and your domain. This adapter targets the non-HTTP FC triggers: the function is invoked with (event, context), and the adapter turns that into a standardized IncomingEvent, runs it through your kernel, and returns a raw response. The event payload is exposed on the event metadata, so one handler can dispatch on the trigger.
It does not own a server: run() returns the (event, context) handler FC invokes.
Installation
npm install @stone-js/alibaba-fc-adapter
# or
pnpm add @stone-js/alibaba-fc-adapter
# or
yarn add @stone-js/alibaba-fc-adapterRequires
@stone-js/coreand@stone-js/envas peer dependencies.
Usage
Declarative (decorator):
import { StoneApp } from '@stone-js/core'
import { AlibabaFc } from '@stone-js/alibaba-fc-adapter'
@AlibabaFc()
@StoneApp({ name: 'workers' })
export class Application {}Imperative (blueprint):
import { defineStoneApp } from '@stone-js/core'
import { alibabaFcAdapterBlueprint } from '@stone-js/alibaba-fc-adapter'
export const App = defineStoneApp({ name: 'workers' }, [alibabaFcAdapterBlueprint])run() returns the (event, context) handler FC invokes:
// index.js — the FC event function entry
exports.handler = await stoneApp.run()Failures and retries
FC treats an event invocation as failed only when the handler rejects. On failure the adapter rethrows by default so FC's retry / dead-letter policy applies, set stone.adapter.rethrowOnError = false to opt out and manage failures yourself.
Documentation
See the official documentation for the full guide.
