AgentSkillsCN

alicloud-fc

使用 @alicloud/fc20230330 TypeScript SDK 管理阿里云函数计算(FC)3.0。在阿里云上处理无服务器函数时,可借助该 SDK 实现函数的增删改查、调用、版本管理、别名管理、触发器(HTTP/定时器/OSS/CDN/MNS)、异步调用、并发与扩缩容配置、预留实例、自定义域名、层、VPC 绑定、会话管理以及资源标签等功能。全面覆盖 FC 20230330 版本的 67 个 API。

SKILL.md
--- frontmatter
name: alicloud-fc
description: Manage Alibaba Cloud Function Compute (FC) 3.0 using the @alicloud/fc20230330 TypeScript SDK. Use when working with serverless functions on Alibaba Cloud, including function CRUD, invocation, versions, aliases, triggers (HTTP/Timer/OSS/CDN/MNS), async invocation, concurrency and scaling configs, provisioned instances, custom domains, layers, VPC bindings, sessions, and resource tagging. Covers all 67 APIs of the FC 20230330 version.
license: Apache-2.0
metadata:
  author: alicloud
  version: "1.0"
  sdk-package: "@alicloud/fc20230330"
  api-version: "2023-03-30"

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

bash
npm install @alicloud/fc20230330 @alicloud/openapi-core @darabonba/typescript
bash
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

typescript
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)

DomainAPIsKey OperationsReference
Function12createFunction, getFunction, invokeFunction, publishFunctionVersionreferences/function.md
Alias5createAlias, updateAlias, listAliasesreferences/alias.md
Trigger5createTrigger, getTrigger, listTriggersreferences/trigger.md
Async Invocation7putAsyncInvokeConfig, listAsyncTasks, stopAsyncTaskreferences/async.md
Concurrency & Scaling12putConcurrencyConfig, putScalingConfig, putProvisionConfigreferences/concurrency-scaling.md
Custom Domain5createCustomDomain, updateCustomDomain, listCustomDomainsreferences/custom-domain.md
Layer7createLayerVersion, listLayers, putLayerACLreferences/layer.md
Instance & Session6listInstances, createSession, listSessionsreferences/instance-session.md
VPC Binding3createVpcBinding, listVpcBindingsreferences/vpc.md
Tag & Resource5tagResources, listTagResources, describeRegionsreferences/tag-resource.md

Core Patterns

RESTful Path Parameters

FC 3.0 uses RESTful style. Path parameters (e.g., functionName) are direct method arguments:

typescript
// 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:

typescript
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):

typescript
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

typescript
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

code
createFunction → invokeFunction → publishFunctionVersion → createAlias

2. Event-Driven Trigger

code
createFunction → createTrigger (HTTP/Timer/OSS/CDN)

3. Blue-Green / Canary Deployment

code
updateFunction → publishFunctionVersion → updateAlias (additionalVersionWeight)

4. Async with Dead Letter Queue

code
putAsyncInvokeConfig (destinationConfig) → invokeFunction → listAsyncTasks

5. Provisioned Instances

code
putProvisionConfig → getProvisionConfig → listInstances

6. Custom Domain + HTTPS

code
createCustomDomain (routeConfig, certConfig) → getCustomDomain

7. Layer Management

code
createLayerVersion → updateFunction (layers) → putLayerACL

8. Scaling Configuration

code
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