Aliyun Function Compute API SDK2
Documents: http://doxmate.cool/aliyun/fc-nodejs-sdk/api.html
We suggest using fc2,The main difference between fc and fc2 is:
The response returned by the user is the following dict, for invoke function, data is bytes, for other apis, data is dict.
{
'headers': headers,
'data': data,
}
Install the official fc2 release version:
npm install @alicloud/fc2 --save
fc version is in 1.x branch, you can install fc use 'npm' like this
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);
});
'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: 'index.handler',
memorySize: 128,
runtime: 'nodejs4.4',
code: {
zipFile: fs.readFileSync('/tmp/index.zip', 'base64'),
},
});
console.log('create function: %j', resp);
resp = await client.invokeFunction(serviceName, funcName, 'event');
console.log('invoke function: %j', resp);
} catch (err) {
console.error(err);
}
}
test().then();
await client.invokeFunction(serviceName, funcName, 'event', {
'x-fc-invocation-type': 'Async'
});
See: 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