写点什么

Basement 后端云服务正式亮相云栖大会

  • 2019-09-01
  • 本文字数:2327 字

    阅读完需:约 8 分钟

Basement 后端云服务正式亮相云栖大会

小蚂蚁说:

在今天下午的云栖 ATEC 大会上,Basement 后端云服务正式对外开放!首先服务支付宝小程序场景,提供贴身服务。为了促进支付宝小程序更好发展,蚂蚁金服还将重磅投入了一亿元云基金,给到包含 Basement 后端云服务在内的一站式小程序云计划。

Serverless 与前端

作为前端,当我们要开发一个新应用时,可能只要很短时间就可以搞定前端,但涉及服务端,却因为要关注服务器、数据库、文件存储、域名备案等等,需要耗费大量精力。



使用 Serverless 服务无疑是解决这个问题很合适的方式,它天然为前端而生,近几年 AWS、Google Cloud 等云厂商中都在大幅推广。什么是 Serverless?在 Martin Fowler 观点里,包含 BaaS(Backend as a Service)、FaaS(Functions as a Service)两部分,尤其随着容器化技术日渐成熟,越来越多原先的 BaaS 平台开始补足自己的函数计算能力,让用户可以更加完整的构建应用。


有了 Serverless 服务,我们不再需要关心服务端运维,在客户端即可完成数据存储、文件存储调用,通过云函数便能搞定服务端代码、异步处理逻辑等。这些服务一般都是按使用量计费,可自动弹性扩容,非常适合初创型产品,大幅降低投入成本。

使用 Basement 后端云服务快速打造小程序

Basement 后端云就是这样一个 Serverless 服务,诞生于蚂蚁体验科技,底层依托于蚂蚁强大稳定的金融科技平台,在过去几年里,一直服务内部 web 开发者们。在今天下午的云栖 ATEC 大会上,Basement 后端云服务正式对外开放,首先服务支付宝小程序场景,提供贴身服务。支付宝小程序事业部负责人何勇明还现场宣布将为一站式小程序云计划投入了一亿元云基金,此计划包含 Basement 后端云服务、云端应用开发等。”


代码示例

Talk is cheap, show me the code.


Basement 拥有下面这些特色能力,尤其在云函数里可直接调用支付宝开放平台接口,非常方便。



下面,我们通过具体的代码示例让大家来快速了解几大重点能力。

云函数

云函数支持使用 Node.js 进行开发,大家可通过小程序 IDE 将代码提交到云端,然后在客户端使用 Basement 提供的 API 进行调用,开发者还可以在云函数中直接通过 API 调用数据存储和文件存储的服务资源。


搭配支付宝小程序使用云函数,免配置操作,可以直接调用支付宝开放平台的海量 OpenAPI 接口。


exports.create = async (ctx) => {
// @see https://docs.open.alipay.com/api_2/alipay.user.info.share // 通过 OpenAPI 获取用户信息 const userInfo = await ctx.basement.openapi.alipay.exec('alipay.user.info.share');
// @see https://docs.open.alipay.com/api_1/alipay.trade.create // 通过 OpenAPI 创建订单 const order = await ctx.basement.openapi.alipay.exec('alipay.trade.create', { outTradeNo: `${Date.now()}${userInfo.userId}`, // 外部流水号,需要保证唯一性 buyerId: userInfo.userId, // 付款用户的 userId totalAmount: ctx.args.amount, // 金额 subject: ctx.args.subject, // 描述 });
// 返回支付结果 return { order };};
复制代码

数据存储

数据存储服务是基于 MongoDB 托管在云端的数据库,数据以 JSON 格式存储。大家可以在客户端(如支付宝小程序)内直接操作数据,也可以在云函数中读写数据。


在小程序客户端代码里,我们可以通过 basement.db 对象调用数据存储的大量 API 方法。比如:我们要获得当前存储的所有集合名词列表。


basement.db.collections().then((res) => {  this.setData({ collectionNames: res.result });}).catch(console.error);
复制代码


云函数内则可直接调用(不需要安装 SDK)同一个云服务的数据存储服务。下面是一个云函数调用的例子,同样是获得所有集合名称的列表。


module.exports = async (ctx) => {  const res = await ctx.basement.db.collections();  return res.result;};
复制代码

文件存储

文件存储服务支持文本、图片等内容存储到云端后,可通过高速 CDN 访问。同样也是可在客户端直接上传,或云函数里直接上传和读取文件,目前主要支持图片作为文件上传。


在客户端,我们可以通过 basement.file 对象调用文件存储的大量 API 方法。比如:我们将小程序客户端中选中的图片进行上传,获得图片 URL。


// 选择并上传图片,获得图片 URLattach() {  my.chooseImage({    chooseImage: 1,    success: res => {      const path = res.apFilePaths[0];      const options = {        filePath: path,        headers: {          contentDisposition: 'attachment',        },      };
basement.file.uploadFile(options).then((image) => { console.log(image); this.setData({ imageUrl: image.fileUrl, }); }).catch(console.log); }, });},
复制代码


云函数可直接调用(不需要安装 SDK)同一个云服务的文件存储服务。下面是一个云函数调用的例子,将上述客户端中上传的图片删除掉。


module.exports = async (ctx) => {  // ctx.args 是从客户端传过来的参数  const res = await ctx.basement.file.deleteFile({ fileUrl: ctx.args.fileUrl });  return res;};
复制代码


为了让大家能够近距离体验到 Basement,在 9.19-9.21 云栖大会 ATEC 展馆里举办了小程序云+端挑战赛,以及集训营,在这可以近距离接触到 Basement 后端云开发团队。因极简的开发模式,昨天现场一位 11 岁小朋友,都轻松上手,赢得比赛鼓励奖:)


无法到现场的同学,我们还提供了在线示例(请复制链接至浏览器打开):


https://tech.antfin.com/codelabs/eouxrp


目前 Basement 尚在公测期,采用邀请制,有兴趣可以点击阅读原文申请公测资格哦。


本文转载自公众号蚂蚁金服科技(ID:Ant-Techfin)。


原文链接:


https://mp.weixin.qq.com/s/38LVVC6xtXroVLTcIfbSHQ


2019-09-01 21:542274
用户头像

发布了 150 篇内容, 共 39.6 次阅读, 收获喜欢 38 次。

关注

评论

发布
暂无评论
发现更多内容

Kubernetes容器状态探测的艺术

俞凡

Kubernetes 云原生

前端学习路径

阡陌r

阿里云消息队列 Kafka 生态集成的实践与探索

阿里巴巴中间件

kafka 阿里云 云原生 消息队列

社交软件的月活利器:从UGC到互娱

曲多多(嗨翻屋)版权音乐

互联网 软件 社交 科技 社交媒体

初识大热的ChatGPT的几点思考|社区征文

穿过生命散发芬芳

ChatGPT

Portraiture2023人像免费磨皮插件

茶色酒

Portraiture2023

如何设计一个优秀的 Go Web 项目目录结构

江湖十年

Go 设计 后端 项目 Web Service

国内AGV调度系统到底是什么水平?

申扬科技

调度系统 AGV

AutoCompleteTextView的基本使用

芯动大师

android 控件 AutoCompleteTextView

28岁小公司程序员,无车无房不敢结婚,要不要转行?

程序员晚枫

程序员 收入

工作一年,我重新理解了《重构》

阿里巴巴中间件

阿里云 云原生 重构

大型供应链物流企业的数字化转型方法论

明道云

FL Studio21中文语言版水果编曲工具

茶色酒

FL Studio21

订单超时怎么处理?我们用这种方案

阿里巴巴中间件

阿里云 云原生

经验分享:高德地图如何短时间快速完成春节出行备战工作?

阿里巴巴中间件

阿里云 云原生 函数计算

巧用GenericObjectPool创建自定义对象池

京东科技开发者

京东云 API 编排 对象池 京东物流 企业号 3 月 PK 榜

Orika JavaBean映射工具使用

京东科技开发者

JAVA开发 京东云 JavaBean 企业号 3 月 PK 榜

JavaScript异步编程的深入理解,使用回调函数实现异步编程

兴科Sinco

JavaScript 前端 前端开发 异步编程

在前端领域摸爬滚打7年,我终于掌握了这些沉淀技巧

小鑫同学

前端学习

阡陌r

如何有效的进行用例评审

京东科技开发者

用例 京东云 代码评审 企业号 3 月 PK 榜

强强联合:Neovim+ChatGPT | 社区征文

SkyFire

ChatGPT neovim

极氪汽车 APP 系统云原生架构转型实践

阿里巴巴中间件

阿里云 云原生

统一观测丨使用 Prometheus 监控 E-MapReduce,我们该关注哪些指标?

阿里巴巴中间件

阿里云 云原生

架构师日记-软件高可用实践那些事儿

京东科技开发者

高可用 软件架构 京东云 企业号 3 月 PK 榜

使用OpenAI接口释放ChatGPT API 的力量

devpoint

React nextjs ChatGPT

架构训练营-模块9秒杀系统

张Dave

从混乱到完备:我的研发流程之路

SkyFire

研发流程

将老人拉出无声的世界,AI是怎么做的?

脑极体

AI医疗

浅谈kafka

京东科技开发者

数据库 中间件 京东云 kafka manager 企业号 3 月 PK 榜

async 与 Thread 的错误结合

newbe36524

C#

Basement 后端云服务正式亮相云栖大会_服务革新_Geek_cb7643_InfoQ精选文章