alicloud-fc
Alibaba Cloud Function Compute (FC) 3.0 Skill
Manage serverless functions, triggers, aliases, layers, custom domains, scaling, and async invocations via the @alicloud/fc20230330 TypeScript SDK.
Prerequisites
npm install @alicloud/fc20230330 @alicloud/openapi-core @darabonba/typescript
export ALIBABA_CLOUD_ACCESS_KEY_ID="<your-key-id>"
export ALIBABA_CLOUD_ACCESS_KEY_SECRET="<your-key-secret>"
export ALIBABA_CLOUD_REGION_ID="cn-hangzhou"
See scripts/setup_client.ts for a reusable client factory, and references/quickstart.md for full setup including regions, runtimes, error handling, and pagination.
Client Initialization
import Client from '@alicloud/fc20230330';
import { Config } from '@alicloud/openapi-core';
const client = new Client(new Config({
accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID,
accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET,
regionId: 'cn-hangzhou',
endpoint: 'cn-hangzhou.fc.aliyuncs.com',
}));
API Overview (67 APIs in 10 Domains)
| Domain | APIs | Key Operations | Reference |
|---|---|---|---|
| Function | 12 | createFunction, getFunction, invokeFunction, publishFunctionVersion | references/function.md |
| Alias | 5 | createAlias, updateAlias, listAliases | references/alias.md |
| Trigger | 5 | createTrigger, getTrigger, listTriggers | references/trigger.md |
| Async Invocation | 7 | putAsyncInvokeConfig, listAsyncTasks, stopAsyncTask | references/async.md |
| Concurrency & Scaling | 12 | putConcurrencyConfig, putScalingConfig, putProvisionConfig | references/concurrency-scaling.md |
| Custom Domain | 5 | createCustomDomain, updateCustomDomain, listCustomDomains | references/custom-domain.md |
| Layer | 7 | createLayerVersion, listLayers, putLayerACL | references/layer.md |
| Instance & Session | 6 | listInstances, createSession, listSessions | references/instance-session.md |
| VPC Binding | 3 | createVpcBinding, listVpcBindings | references/vpc.md |
| Tag & Resource | 5 | tagResources, listTagResources, describeRegions | references/tag-resource.md |
Core Patterns
RESTful Path Parameters
FC 3.0 uses RESTful style. Path parameters (e.g., functionName) are direct method arguments:
// getFunction(functionName, request)
const { body } = await client.getFunction('my-func', { qualifier: 'LATEST' });
// deleteAlias(functionName, aliasName)
await client.deleteAlias('my-func', 'staging');
Body Input Pattern
Create/Update APIs pass structured data via body:
await client.createFunction({
body: {
functionName: 'hello',
runtime: 'nodejs18',
handler: 'index.handler',
memorySize: 512,
timeout: 60,
code: { zipFile: base64Zip },
},
});
Cursor-Based Pagination
List APIs use nextToken + limit (not pageNo/pageSize):
let nextToken: string | undefined;
let all: any[] = [];
do {
const { body } = await client.listFunctions({ limit: 100, nextToken });
all.push(...(body.functions || []));
nextToken = body.nextToken;
} while (nextToken);
Error Handling
try {
await client.getFunction('my-func', {});
} catch (err: any) {
console.error(`Code: ${err.code}, Message: ${err.message}, RequestId: ${err.data?.RequestId}`);
}
Common Workflows
1. Deploy Function
createFunction → invokeFunction → publishFunctionVersion → createAlias
2. Event-Driven Trigger
createFunction → createTrigger (HTTP/Timer/OSS/CDN)
3. Blue-Green / Canary Deployment
updateFunction → publishFunctionVersion → updateAlias (additionalVersionWeight)
4. Async with Dead Letter Queue
putAsyncInvokeConfig (destinationConfig) → invokeFunction → listAsyncTasks
5. Provisioned Instances
putProvisionConfig → getProvisionConfig → listInstances
6. Custom Domain + HTTPS
createCustomDomain (routeConfig, certConfig) → getCustomDomain
7. Layer Management
createLayerVersion → updateFunction (layers) → putLayerACL
8. Scaling Configuration
putScalingConfig → putConcurrencyConfig → getScalingConfig
See references/workflows.md for detailed workflow examples with full code.
API Reference Quick Index
Load the corresponding reference file for parameter details:
- Function CRUD/Invoke/Versions:
references/function.md - Alias CRUD:
references/alias.md - Trigger CRUD:
references/trigger.md - Async Config/Tasks:
references/async.md - Concurrency/Scaling/Provision:
references/concurrency-scaling.md - Custom Domain:
references/custom-domain.md - Layer Versions/ACL:
references/layer.md - Instances/Sessions:
references/instance-session.md - VPC Bindings:
references/vpc.md - Tags/Resource Group/Regions:
references/tag-resource.md
Each reference file contains per-API documentation with method signatures and parameter tables.
Code Examples
See scripts/examples.ts for ready-to-use code covering:
- Function creation, listing, and invocation
- Version publishing and alias-based canary deployment
- HTTP and Timer trigger creation
- Async invocation configuration
- Provisioned instance setup
- Layer creation and listing
- Custom domain binding
- Scaling and concurrency configuration