Skillshub alicloud-fc
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.
git clone https://github.com/ComeOnOliver/skillshub
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/agents-infrastructure/alicloud-agent-skills/alicloud-fc" ~/.claude/skills/comeonoliver-skillshub-alicloud-fc && rm -rf "$T"
skills/agents-infrastructure/alicloud-agent-skills/alicloud-fc/SKILL.mdAlibaba 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