写点什么

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:542008
用户头像

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

关注

评论

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

Spring cloud 之熔断机制

Damon

5月日更 熔灾

云计算下半场:打法已变,谁主沉浮

ToB行业头条

云计算

架构实战营 模块四课后作业

iProcess

架构实战营

这么狠,私塾在线架构师系列课程全都免费发放

InfoQ_d2212957090d

Java

懂得取舍才是缓存设计的真谛

万俊峰Kevin

缓存 cache 分布式缓存 Go 语言

技术干货 | 基于MindSpore更好的理解Focal Loss

华为云开发者联盟

函数 mindspore Focal Loss 样本

重命名表,应该怎么做?

Simon

MySQL

“三次握手,四次挥手”这么讲,保证你忘不了

三分恶

计算机网络

Rust从0到1-错误处理-panic!还是Result

rust 错误处理 result panic!

网络攻防学习笔记 Day24

穿过生命散发芬芳

5月日更 网络攻防

☕【JVM技术之旅】你真正掌握了Java对象创建的流程吗?

洛神灬殇

JVM java对象分析 java对象 对象创建 5月日更

极光开发者周刊【No.0521】

极光JIGUANG

「技术人生」第2篇:学会分析事物的本质

阿里巴巴中间件

技术 工具 技术人 技术人生 一号位

设计千万级学生管理系统的考试试卷存储方案

thewangzl

【Flutter 专题】122 图解自定义半遮挡头像 SeriesCircleProfile & CircleAvatar

阿策小和尚

5月日更 Flutter 小菜 0 基础学习 Flutter Android 小菜鸟

腾讯云CLS日志服务初体验

三掌柜

5月日更

《Spring 手撸专栏》第 3 章:初显身手,运用设计模式,实现 Bean 的定义、注册、获取

小傅哥

Java spring 设计模式 小傅哥 抽象类

LRU 和 LFU

且听且吟

BMP、GIF、TIFF、PNG、JPG和SVG格式图像的特点

不脱发的程序猿

图像格式

GitHub开源的AI下五子棋

不脱发的程序猿

人工智能 GitHub 开源 AI 五子棋

架构实战营模块四作业

冷大大

作业 架构实战营 模块四

集成学习案例二 (蒸汽量预测)

容光

NumPy之:ndarray中的函数

程序那些事

Python Numpy

WizTree——一个扫描快似Everything的硬盘空间分析工具

DisonTangor

DevOps windows

新思科技为中兴通讯提供BSIMM软件安全评估

InfoQ_434670063458

5G 新思科技 中兴 软件安全 BSIMM

云小课|聊一聊DRS的数据过滤特性

华为云开发者联盟

数据库 DRS 数据复制服务 数据过滤 数据库引擎

M1 Dock智能硬件环境搭建(MaixPy安装及使用)

不脱发的程序猿

人工智能 开发板 智能硬件 AIOT M1 Dock

架构营作业-模块4

大师兄

聊聊dubbo协议2

捉虫大师

dubbo 协议

探索GaussDB(DWS)的过程化SQL语言能力

华为云开发者联盟

数据库 GaussDB(DWS) SQL语言 PLSQL语言 索引表达式

python 高级函数补充

若尘

Python编程 高级函数 5月日更

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