随着淘宝业务的发展,不同行业、不同领域的开发者开始入淘,成为新的淘宝生态伙伴。淘宝开放平台根据开发者的业务特点,梳理出不同的云环境,帮助开发者快速完成研发环境准备,从而提升研发效率。本文主要介绍如何基于云托管创建云应用来作为后端服务,以及对于无需使用《淘宝合作伙伴应用安全规范》中提到的敏感数据的业务如何创建空应用来快速完成后端服务的研发。
云托管:是淘宝开放平台团队推出的新一代淘宝PaaS平台。旨在帮助生态伙伴能更加专注业务研发,而尽量不去关注底层基础设施的建设和运维工作,在保障用户系统稳定性的基础上,为用户业务迭代提效;同时帮助用户降低云资源的使用成本。云托管的功能包含了云应用管理,云数据库(即将上线),云存储(即将上线),业务组件(即将上线)等多种围绕业务应用研发的基础功能。
云应用:云应用是依托于云托管PaaS平台,由开发者开发的云服务的实际载体。无论是传统的电商BS架构下的服务端代码,还是小程序CS架构下的服务端代码,都可以以云应用的形态对开放平台业务提供云服务。
1)前置步骤
请确保已经完成对应类目的开放平台类目创建。
2)云服务开通
如果业务需要使用云服务,完成云服务开通流程。
3)云应用创建部署
在云托管完成云应用的创建,部署,调试。
4)小程序端调用
在端侧js代码中完成小程序端云调用代码编写和调试。
比如服务类小程序,完成创建淘宝服务小程序,进入【我的应用】,点击“应用管理”。
点击左侧菜单“云服务”,进入云服务详情页。
云服务页面有两种状态,“未开通”和“已开通”。可根据需要查看本文档3.1、3.2对应章节。
当您首次进入云服务时,页面上会展示云服务的全部研发环境。查看详细环境介绍。
您可根据当前应用的需要,选择适合您业务所需环境的研发方式。
目前云托管“开放环境”已上线。“电商环境”和“封闭环境”将陆续上线。
开通云服务后,您可根据“入塔指引”完成云应用的创建。
开放环境可以创建,空应用(已上线)和云应用(即将上线)两种类型。空应用仅支持在不使用敏感数据的开放环境中创建。开发者可根据需要,自由选择云资源的一种环境,网络规则为全开放。空应用是指云资源部署在淘外的应用。
说明:
淘宝对数据安全的高度重视,小程序框架设计的是一个封闭的环境,在框架内,小程序的后端服务只允许使用小程序云提供的环境。 这里填写的域名,用于平台和开发者进行确认,审核后将识别成安全域名。
功能待上线
创建完成云应用后,入塔任务会更新成下面状态,您可点击“调试云应用”,进入调试页面进行服务端接口调试,并查看官方默认demo的服务端接口返回。
调试完成后,您就完成了入淘。可以正式开始你的业务开发。
除了云服务入口外,用户可以随时在「云托管」的独立入口创建并管理云应用。并且将创建好的云应用关联至Appkey作为appkey的云服务。
进入【淘宝开放平台 - 云托管】
同入口1:【1.1.2】章节
同入口1:【1.1.3】章节
同入口1:【1.1.4】章节
功能待上线
在小程序业务场景中,需要在端侧编写代码实现云服务的调用。
可参考文档:https://open.taobao.com/v2/doc?#/abilityToOpen?treeId=780&docType=1&docId=118538
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | //app.js文件初始化示例代码 import cloud from '@tbmp/mp-cloud-sdk' ; cloud.init({ //test、online env: 'test' }); App({ cloud, onLaunch(options) { //执行相关代码 } }); ---------------------------------- //page调用接口的方法 async httptest (){ const {cloud} = getApp(); try { const result = await cloud.application.httpRequest({ //不需要完整域名,只需要接口访问路径即可 'path' : '/miniapp/test' , 'method' : 'POST' , //POST请求需要指定下请求格式,只支持application/json。 如:"content-type":"application/json;charset=UTF-8" 'headers' :{ "Content-Type" : "application/json;charset=UTF-8" }, 'params' :{ "name" : "cx" , "age" : 18 , }, 'body' :{ "xftest" : "hhh" , "id" : "1234" , }, //对于一个小程序关联多个云应用的场景,调用非默认云应用,需要指定对应的云应用Id,超时时间单位ms 'exts' :{ "cloudAppId" : "123" , "timeout" : 100 } }); console.log(JSON.stringify(result)); } catch (e) { my.alert({ content: 'error ' + e.message }); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | //app.js文件初始化示例代码 import cloud from '@tbmp/mp-cloud-sdk' ; cloud.init({ //test、online env: 'test' }); App({ cloud, onLaunch(options) { //执行相关代码 } }); ---------------------------------- //page调用接口的方法 async httptest (){ const {cloud} = getApp(); try { const result = await cloud.application.httpRequest({ //不需要完整域名,只需要接口访问路径即可 'path' : '/miniapp/test' , 'method' : 'POST' , //POST请求需要指定下请求格式,只支持application/json。 如:"content-type":"application/json;charset=UTF-8" 'headers' :{ "Content-Type" : "application/json;charset=UTF-8" }, 'params' :{ "name" : "cx" , "age" : 18 , }, 'body' :{ "xftest" : "hhh" , "id" : "1234" , }, //对于一个小程序关联多个云应用的场景,调用非默认云应用,需要指定对应的云应用Id,超时时间单位ms 'exts' :{ "cloudAppId" : "123" , "timeout" : 100 , //空应用调用需要填写该字段,包括协议头以及端口号(可省略),支持http、https } }); console.log(JSON.stringify(result)); } catch (e) { my.alert({ content: 'error ' + e.message }); } } |