Clouda托管到BAE 3.0

Clouda是基于node.js开发的,所以需要node.js环境以及需要数据库的支持,百度开发者中心上BAE提供整套的环境的支持,只需简单的配置就可以快速运行基于Clouda开发的应用,具体方法如下:

(1)进入百度开放云的应用管理界面,点击“创建应用”

(2)填写应用的名称,并点击“保存”

(3)保存完成后,点击“应用引擎”进入BAE

(4)在BAE上添加部署,完善信息,申请域名,并在“类型选择”中选择“nodejs-web”,通过“代码版本工具”选择获取代码的方式

(5)点击“扩展服务”创建mongoDB数据库,进入创建页面后点击“添加新服务”并选择“MongoDB”

(6)数据库创建完成后查看数据库配置信息,记住mongoDB的名称,后续步骤中需要使用该参数

(7)点击“部署列表”回到BAE的列表,在列表页面点击“发布设置”查看SVN或者Git信息,并复制SVN或者Git地址

(8)根据SVN或者Git地址checkout代码到本地,将clouda工程目录下的所有文件复制到checkout文件夹下,在复制过程中使用工程目录下的app.conf、package.json、app.js覆盖checkout目录下的相应文件

(9)修改app/server_confg/bae.js文件,填入在第(8)获取的MongoDB的名称填入dbname,获取的API Key填入user,获取的Secret Key填入password,申请的域名填入site_url

//config file for bae
if(sumeru.BAE_VERSION){
    sumeru.config.database({
        dbname : 'yourdbname',
        user: 'yourpk',//bae 3.0 required
        password: 'yoursk',//bae 3.0 required
    }); 
    sumeru.config({
        site_url : '', //with tailing slash
    }); 
}

(10)使用SVN或者Git上传代码到BAE 3.0,并在BAE上上线应用,完成上线后使用申请的域名 + /index.html/itworks访问框架实例应用itworks

BAE 2.0迁移到BAE 3.0

如果您的应用已经托管到BAE 2.0,而您需要将应用从2.0迁移到3.0,可以按照下面的步骤完成迁移:

(1)更新clouda的版本到最新版本

npm update -g sumeru

(2)升级工程

sumeru update ./myproject

or

sudo sumeru update ./myproject

(3)按照上面的文档的操作在BAE 3.0上创建应用和数据库并获取相应的配置信息

(4)修改app/server_confg/bae.js文件,使用下面的代码替换,并按照上面(11)的要求填写

//config file for bae
if(sumeru.BAE_VERSION){
    sumeru.config.database({
        dbname : 'yourdbname',
        user: 'yourpk',//bae 3.0 required
        password: 'yoursk',//bae 3.0 required
    });
    sumeru.config({
        site_url : '', //with tailing slash
    });
}

BAE 3.0多执行单元托管配置

如果您将Clouda应用托管到BAE 3.0并需要使用或者开启了多执行单元(执行单元>1),您只需要按照下面的操作配置app/server_config/bae.js文件即可完成多执行单元的同步

(1)在BAE 3.0上创建Redis

(2)获取创建得Redis得信息(数据库名、AK、SK)

(3)修改app/server_config/bae.js

//config file for bae
if(sumeru.BAE_VERSION){
    sumeru.config.database({
        dbname : 'yourdbname',
        user: 'yourpk',//bae 3.0 required
        password: 'yoursk',//bae 3.0 required
    });

    //添加下面的代码
    sumeru.config.cluster({
        enable : true,
        dbname : 'yourdbname',//redis dbname
        user: 'yourpk', //reids API Key
        password: 'yoursk', //redis Secret Key
    });

    sumeru.config({
        site_url : '', //with tailing slash
    });
}  

BAE3.0开启websocket的配置

如果您将Clouda应用托管到BAE 3.0并需要使用websocket,可按照下面的方法来配置:

(1)在BAE3.0上创建Port服务

(2)获取Port相关信息,并设置端口为10666

(3)修改app/config/sumeru.js

sumeru.config({
   httpServerPort: 8080,
   sumeruPath: '/../sumeru',
   sockHost:'IP:Port'   //将上一步获取的IP:Port填入这里
});