春争日,夏争时,扫码抽取夏日礼包!!! 了解详情
写点什么

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

  • 2019 年 9 月 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 年 9 月 01 日 21:541652
用户头像

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

关注

评论

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

架构师训练营第十周作业

【第十周】模块分解

云龙

第10周 作业1

Yangjing

极客大学架构师训练营

极客时间架构师培训 1 期 - 第 10 周作业

Kaven

Logstash使用

Rayzh

ELK

架构作业--第十周

Nick~毓

架構師訓練營 week10 作業

ilake

架构师入门学习之感悟六

笑春风

互联网络上遇到数据延迟维护清算中取不出该怎么解决?

Geek_a6658e

架构师训练营第 1 期 week10

张建亮

极客大学架构师训练营

架構師訓練營 week10 總結

ilake

架构师训练营 - 第十周总结

一个节点

极客大学架构师训练营

模块拆分第十周作业「架构师训练营第 1 期」

天天向善

动态规划解决爬楼梯算法,彻底搞懂AppStore证书体系、彻底搞懂控制反转IoC,依赖注入DIP, John 易筋 ARTS 打卡 Week 28

John(易筋)

ARTS 打卡计划 动态规划解决爬楼梯 AppStore证书体系 控制反转IOC 依赖注入DIP

极客时间架构师训练营 1 期 - 第 10 周总结

Kaven

Python进阶——什么是迭代器?

Kaito

Python

架构师训练营第 1 期 -- 第十周学习总结

发酵的死神

极客大学架构师训练营

哪些数据将成为区块链系统的关键数据?

CECBC

区块链

MYSQL数据类型

少林寺三毛

MySQL

微服务手册:API接口9个生命节点,构建全生命周期管理

互联网应用架构

微服务 APi设计 API网关

架构师训练营 - 第十周作业

一个节点

极客大学架构师训练营

【第九周】课后作业

云龙

架构1期 第十周作业

haha

深入掌握底层源码常见的 CAS 原子编程

是龙台呀

架构 CAS

第五周作业

Jack

第六周作业

Jack

【第九周】性能优化(三)

云龙

第10周 作业2

Yangjing

极客大学架构师训练营

区块链将如何改变住房市场

CECBC

区块链 住房记录

南海将打造“区块链+”金融科技产业高地

CECBC

区块链 金融

第六周大作业

小兵

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