阿里云发布函数计算服务已经一个多月了,函数计算按量付费,弹性伸缩的特性,深受开发者青睐。使用函数计算,开发者可以轻松构建 Serverless 的服务,例如结合 OSS 使用,可以对上传到 OSS 的图片自动地触发函数进行转码处理。
现在函数计算更进一步,与API 网关集成,开发者可以使用函数计算来搭建弹性伸缩的 Web 后端服务,甚至可以直接将整个网站构建在 API 网关+函数计算上面。
API 网关和函数计算的集成,极大地简化了开发者构建一个服务的流程:
图中的网站完全构建在 API 网关和函数计算上面,函数的代码也很简单:
'use strict'; var OSSClient = require('ali-oss').Wrapper; var fs = require('fs'); var template = fs.readFileSync('/code/index.html').toString(); exports.handler = function(event, context, callback) { console.log(event.toString()); var ossClient = new OSSClient({ accessKeyId: context.credentials.accessKeyId, accessKeySecret: context.credentials.accessKeySecret, stsToken: context.credentials.securityToken, region: 'oss-cn-shanghai', bucket: 'rockuw-sh-2', }); var evtObj = JSON.parse(event.toString()); var sourceIP = evtObj.headers['X-Forwarded-For'] || 'The Earth'; var counter = 0; var counterObject = 'my-images/counter'; var respOnse= { isBase64Encoded: false, statusCode: 200, body: '', }; ossClient.get(counterObject).then(function(res) { counter = parseInt(res.content.toString()); return ossClient.put(counterObject, new Buffer(counter+1+'')); }).then(function(res) { response.body = template .replace('{ecalper-counter}', counter+'') .replace('{ecalper-ip}', sourceIP); callback(null, response); }).catch(function(err) { console.error(err); response.statusCode = 500; response.body = 'Oops! ' + err.toString(); callback(null, response); }); };
公测申请: https://www.aliyun.com/product/fc
参考文档:
1 heimeil 2017-06-13 16:24:01 +08:00 via Android Serverless 还行 |
2 tingbao94 2017-06-14 14:28:43 +08:00 赞啊!好牛 |