文档中心 > 云应用

云托管应用使用手册

更新时间:2024/06/04 访问次数:1691

一、概述

随着淘宝业务的发展,不同行业、不同领域的开发者开始入淘,成为新的淘宝生态伙伴。淘宝开放平台根据开发者的业务特点,梳理出不同的云环境,帮助开发者快速完成研发环境准备,从而提升研发效率。本文主要介绍如何基于云托管创建云应用来作为后端服务,以及对于无需使用淘宝合作伙伴应用安全规范》中提到的敏感数据的业务如何创建空应用来快速完成后端服务的研发。

二、名词解释

云托管:是淘宝开放平台团队推出的新一代淘宝PaaS平台。旨在帮助生态伙伴能更加专注业务研发,而尽量不去关注底层基础设施的建设和运维工作,在保障用户系统稳定性的基础上,为用户业务迭代提效;同时帮助用户降低云资源的使用成本。云托管的功能包含了云应用管理,云数据库(即将上线),云存储(即将上线),业务组件(即将上线)等多种围绕业务应用研发的基础功能。

云应用云应用是依托于云托管PaaS平台,由开发者开发的云服务的实际载体。无论是传统的电商BS架构下的服务端代码,还是小程序CS架构下的服务端代码,都可以以云应用的形态对开放平台业务提供云服务。

三、云服务研发流程

小程序业务

1)前置步骤

请确保已经完成对应类目的开放平台类目创建。

2)云服务开通

如果业务需要使用云服务,完成云服务开通流程。

3)云应用创建部署

在云托管完成云应用的创建,部署,调试。

4)小程序端调用

在端侧js代码中完成小程序端云调用代码编写和调试。

步骤一:云服务开通

1、前置流程

比如服务类小程序,完成创建淘宝服务小程序,进入【我的应用】,点击“应用管理”。

点击左侧菜单“云服务”,进入云服务详情页。

2、云服务详情页

云服务页面有两种状态,“未开通”和“已开通”。可根据需要查看本文档3.1、3.2对应章节。

2.1 未开通

当您首次进入云服务时,页面上会展示云服务的全部研发环境。查看详细环境介绍

您可根据当前应用的需要,选择适合您业务所需环境的研发方式。

目前云托管“开放环境”已上线。“电商环境”和“封闭环境”将陆续上线。

2.2 已开通

开通云服务后,您可根据“入塔指引”完成云应用的创建。

步骤二:创建云应用

入口1:淘宝服务小程序云服务

1、创建云应用

1.1 空应用

开放环境可以创建,空应用(已上线)和云应用(即将上线)两种类型。空应用仅支持在不使用敏感数据的开放环境中创建。开发者可根据需要,自由选择云资源的一种环境,网络规则为全开放。空应用是指云资源部署在淘外的应用。

1.1.1 创建空应用入口

1.1.2 填写空应用基础信息

说明:

    • 【设置默认流量应用】:云应用发布成功后,需要做流量接入,才能访问到容器内的应用程序。选择“是”,云应用都会自动接入流量;选择“否”,云应用不会自动接入流量。
    • 【关联AppKey】:系统会根据您的商家应用等应用所申请的权限包信息进行判断,是否可以创建空应用。关联AppKey时,仅可关联没有使用敏感数据的应用。
    • 【应用环境】:电商环境、封闭环境当前不可点击,项目组迭代开发中,后期会陆续上线。

1.1.3 设置域名白名单

淘宝对数据安全的高度重视,小程序框架设计的是一个封闭的环境,在框架内,小程序的后端服务只允许使用小程序云提供的环境。 这里填写的域名,用于平台和开发者进行确认,审核后将识别成安全域名。

1.1.4 完成

1.2 创建普通云应用(非空应用)

功能待上线

2、调试云应用

创建完成云应用后,入塔任务会更新成下面状态,您可点击“调试云应用”,进入调试页面进行服务端接口调试,并查看官方默认demo的服务端接口返回。

查看调试页面功能介绍

3、入淘完成

调试完成后,您就完成了入淘。可以正式开始你的业务开发。

入口2:云托管管理应用

除了云服务入口外,用户可以随时在「云托管」的独立入口创建并管理云应用。并且将创建好的云应用关联至Appkey作为appkey的云服务。

1、云托管入口

进入【淘宝开放平台 - 云托管】

2、应用列表

3、创建云应用

3.1 空应用

3.1.1 填写基本信息

同入口1:【1.1.2】章节

3.1.2 设置域名白名单

同入口1:【1.1.3】章节

3.1.3 完成

同入口1:【1.1.4】章节

3.2 创建云应用

功能待上线

步骤三:小程序端侧代码调用

在小程序业务场景中,需要在端侧编写代码实现云服务的调用。

可参考文档: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
        "domain":"https://www.taobao.com"
      }  });
    console.log(JSON.stringify(result));
  } catch(e) {
    my.alert({
      content: 'error ' + e.message 
    }); 
  }
}






FAQ

关于此文档暂时还没有FAQ
返回
顶部