@alicloud/fc2

中文文档
2.6.6发布于 2023/08/04MITCommonJS近 30 天下载 2465

阿里云函数计算 API SDK2

中文使用文档
文档目录9 节
  1. 通知
  2. 安装旧版本
  3. 许可证
  4. 实例
  5. 答应
  6. aync/awa (节点 qq 7.6)
  7. 自定义信头
  8. API 光谱
  9. 测试

fc-nodejs-sdk (英语)

NPM version build status coverage

联合国 http://doxmate.cool/aliyun/fc-nodejs-sdk/api.html 页面存档备份,存于互联网档案馆

通知

我们建议使用fc2, fc与fc2的主要区别是:

用户返回的响应是以下对象.

{
     'headers': headers,
     'data': data,
}

对于引用函数,数据是您代码返回的结果。 默认情况下,如果想要获得原始缓冲,数据由utf8解码,那么在引用函数时,只需在选项中设置 {rawBuf: true} .

实例见以下代码:, 对于其他类人鱼,数据为对象.

安装正式的 fc2 发布版本 :

npm install @alicloud/fc2 --save

安装旧版本

fc 版本在 1.x 分支中,您可以安装 fc 像这样使用 “ npm ”

npm install @alicloud/fc --save

许可证

麻省理工学院

实例

答应

'use strict';

var FCClient = require('@alicloud/fc2');

var client = new FCClient('<account id>', {
  accessKeyID: '<access key id>',
  accessKeySecret: '<access key secret>',
  region: 'cn-shanghai',
  timeout: 10000 // Request timeout in milliseconds, default is 10s
});

var serviceName = '<service name>';
var funcName = '<function name>';

client.createService(serviceName).then(function(resp) {
  console.log('create service: %j', resp);
  return client.createFunction(serviceName, {
    functionName: funcName,
    handler: 'index.handler',
    memorySize: 128,
    runtime: 'nodejs4.4',
    code: {
      zipFile: fs.readFileSync('/tmp/index.zip', 'base64'),
    },
  });
}).then(function(resp) {
  console.log('create function: %j', resp);
  return client.invokeFunction(serviceName, funcName, 'event');
}).then(function(resp) {
  console.log('invoke function: %j', resp);
}).catch(function(err) {
  console.error(err);
});

aync/awa (节点 qq 7.6)

'use strict';

const FCClient = require('@alicloud/fc2');

var client = new FCClient('<account id>', {
  accessKeyID: '<access key id>',
  accessKeySecret: '<access key secret>',
  region: 'cn-shanghai',
});

var serviceName = '<service name>';
var funcName = '<function name>';

async function test () {
  try {
    var resp = await client.createService(serviceName);
    console.log('create service: %j', resp);

    resp = await client.createFunction(serviceName, {
      functionName: funcName,
      handler: 'counter.handler',
      memorySize: 128,
      runtime: 'nodejs4.4',
      initializer: 'counter.initializer',
      code: {
        zipFile: fs.readFileSync('/tmp/counter.zip', 'base64'),
      },
    });
    console.log('create function: %j', resp);

    // by default , resp is decoded by utf8
    resp = await client.invokeFunction(serviceName, funcName, null);
    console.log('invoke function: %j', resp);

    // respWithBuf is returned as buffer if isRawBuf is set to be true in opts
    respWithBuf = await client.invokeFunction(serviceName, funcName, null, {}, 'LATEST', {rawBuf:true});

    uResp = await client.updateFunction(serviceName, funcName, {
      description: 'updated function desc',
      initializationTimeout: 60,
    });
    console.log('update function: %j', resp);
  } catch (err) {
    console.error(err);
  }
}
test().then();

自定义信头

我们提供两种方式来定制请求信头.

一种方法是通过客户端构建器传递信头. 您应当将通过构建器的页眉视为默认自定义页眉, 因为所有请求都会使用此页眉 .

var client = new FCClient('<account id>', {
  accessKeyID: '<access key id>',
  accessKeySecret: '<access key secret>',
  region: 'cn-shanghai',
  headers: {
    'x-fc-invocation-type': 'Async'
  }
});

await client.invokeFunction(serviceName, funcName, 'event');

另一种方法是通过函数的参数传递头. 需要通过特定函数的页眉时,请使用这种方式.

await client.invokeFunction(serviceName, funcName, 'event', {
  'x-fc-invocation-type': 'Async'
});

在使用两种方式时,会合并标题. 但对于有相同密钥的头头,由函数参数提供的头头会比起由构造器提供的头头.

API 光谱

见: https://help.aliyun.com/document detail/52877.html (中文(简体) )

测试

ACCOUNT_ID=<ACCOUNT_ID> ACCESS_KEY_ID=<ACCESS_KEY_ID> ACCESS_KEY_SECRET=<ACCESS_KEY_SECRET> make test

版本与发布记录

@alicloud/fc2 共发布 28 个版本,首次发布于 2017/12/19;过去 12 个月发布了 0 个版本。

版本发布日期距今
2.6.6latest2023/08/043 年前
2.6.52023/08/013 年前
2.6.42023/07/313 年前
2.6.32022/09/074 年前
2.6.22022/08/174 年前
2.6.12022/08/154 年前

关于 @alicloud/fc2 的常见问题

@alicloud/fc2 是什么?

阿里云函数计算 API SDK2

如何安装 @alicloud/fc2?

在项目目录运行 npm install @alicloud/fc2,或使用 pnpm add / yarn add / bun add。

@alicloud/fc2 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/alicloud__fc2 是否存在。

@alicloud/fc2 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@alicloud/fc2 可以商用吗?

@alicloud/fc2 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@alicloud/fc2 的下载量有多少?

根据 npm 官方下载统计,@alicloud/fc2 在 2026/10/06 – 2026/11/04 这 30 天内被下载 2,465 次,日均约 82 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@alicloud/fc2 还在维护吗?

最新版本 2.6.6 发布于 2023/08/04(3 年前);至今共发布 28 个版本,其中过去 12 个月发布了 0 个;首次发布于 2017/12/19。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。