CloudBridge是SAE开发的VPN服务,开发者通过OpenVPN 客户端连接到CloudBridge之后,可以像使用本地服务一样使用SAE内网的一些服务,目前只有独享型MySQL可以只用。

1.CloudBridge介绍

1 SAE CloudBridge整体架构

CloudBridge包括了从外到内、内部以及从内到外的网络控制和安全隔离,从下图中可以看到,Controler负责各应用和资源间的网络流控制,而Forwarder则负责实际的代理转发。与某些IaaS中SDN不同的是,CloudBridge不依赖于特殊网络设备而实现在OS层,并且主要负责L2以上网络流控制。目前,项目中涉及VPC部分的Data Connection仍在开发中。完成后,将可以提供一套跨企业内外网的PaaS网络解决方案。
CloudBridge

2 服务限制

用户连接CloudBridge之后,CloudBridge中做了隔离,用户只能操作自己应用的数据。
CloudBridge对用户的带宽做了限制,带宽大小跟用户等级有关。

2.CloudBridge简单入门
由于该服务刚刚上线不久,相信很多小伙伴都很喜欢,但是又苦于没有教程。其实官方文档已经非常详细了,我这里只是在造个轮子而已。

1 初始化CloudBridge服务

非常简单,登陆你的SAE控制台,切换到CloudBridge服务,点击初始化即可。然后在控制台还可以查看accesskey和secretkey,待会有用。
cloudbridge

2 Window客户端

下载openVPN客户端,但是在国内呢,总是有一股神秘的力量阻挡着我们。这个不用担心,SAE的CloudBridge控制台已经可以下载了,我这里也会提供相应的安装包。不多说,下载后直接安装,我这里使用的是Window10测试,好了之后会在电脑桌面出现OpenVPN GUI客户端图标。
直接右键选择管理员打开,这时你可以在右下角任务栏看到openVPN的图标。但是右键点击却发现并没有connect的选项,这是为什么呢?
openVPN
原因就是没有配置文件,这时就要下载并且导入配置文件。

3 导入配置文件

在CloudBridge的控制台面板,下载配置文件,并且重新命名为client.ovpn,然后放到你的openVPN的安装目录下的config文件夹里面。这时你再右键一下即可出现connect选项

4 连接CloudBridge

很简单,点击connect选项,在弹出的对话框中输入用户名密码,用户名为应用的accesskey,密码为应用的secretkey,点击确定即可出现连接成功的提示。
CloudBridge
好了,现在你就已经成功连接上了CloudBridge服务,尽情使用吧。我们这里演示一下操作独享型MySQL服务。

3.独享型MySQL

1 新建MySQL实例

登陆SAE的控制台,切换到MySQL的面板,选择独享型MySQL。根据需要,初始化相应配置,这里选择微型的一主一从的实例
独享型MySQL

2 创建账号

初始化后SAE不会帮我们创建数据库账号,需要手动创建,该账号待会就是拿来连接使用的。
独享型mysql

3 创建数据库

同样,我们需要创建数据库,并且绑定用户,设置权限。
独享型mysql
好了,现在你就已经把SAE的独享型MySQL搬到你的本地环境中了,尽情使用吧。

4.使用CloudBridge连接独享型MySQL

1 MySQL控制台操作

这个需要你电脑上有安装MySQL。使用cmd切换到MySQL的bin目录,然后就可以使用常规命令连接独享型MySQL了
独享型MySQL连接
注意连接的时候那个主机是在控制台写着的,每个人的都不一样,然后端口是12150,用户名密码就是你刚才创建的账号。

做增删改查操作:
QQ截图20150915162234

QQ截图20150915162242

QQ截图20150915162420

2 Navicat操作

这个也是很简单,在控制台找到实例地址和端口,然后用你设置的账号和密码登陆即可。不过要注意的是,在连接的时候从库是只能查询的。
QQ截图20150915162606

插入和查询操作
QQ截图20150915162749

QQ截图20150915162908
可以看到,在连接从库的时候只能进行查询操作,而主库都可以

3 PHP程序操作

当然,数据库最好的还是使用程序来操作,当你做完了CloudBridge连接之后就相当于把独享型MySQL搬到了你的本地中。我写了一个类来操作:

/**
*    SAE RDS本地操作类
*    @data         2015-09-15
*     @author     summer
*     @site         http://www.xtwind.com
*     @e-mail     wenghang1228@me.com
*/
class SaeRds{/***    定义主库实例名称*/private $masterName = null;/***    定义从库实例名称*/private $slaveName = null;/***    定义数据库用户名*/private $username = null;/**    定义数据库密码*/private $password = null;/**    定义数据库名*/private $dbName = null;/***    全构造函数*/public function __construct($masterName = null, $slaveName = null, $username = null, $password = null){$this->masterName = $masterName;$this->slaveName = $slaveName;$this->username = $username;$this->password = $password;}/***    魔术设置*     @param     string $name     属性名*     @param     string $value     属性值*     @throws Exception*     @return void*/public function __set($name, $value){if(property_exists(get_class(), $name)){$this->$name = $value;}else{throw new Exception("Property not exists");    }}/***    魔术调用*     @param     string     $name     变量名*     @return string*/public function __get($name){return $this->$name ?: false;}/***    获取主库PDO实例*     @throws Exception*     @return PDO*/public function getMaster(){if(isset($this->masterName)){return $this->connect($this->masterName);}throw new Exception("Master not defined");    }/***    获取从库PDO实例*     @throws Exception*     @return PDO*/public function getSlave(){if(isset($this->slaveName)){return $this->connect($this->slaveName);}throw new Exception("Slave not defined");    }/***    数据库连接*     $param     string $db 连接的数据库实例名称*     @throws Exception*     $return PDO*/private function connect($db){if(!$this->username | !$this->password | !$this->dbName){throw new Exception("Some message not defined");}$dsn = 'mysql:host='.$db.'.rds.sae.sina.com.cn;dbname='.$this->dbName.';port=12150';return new PDO($dsn,$this->username,$this->password);}
}
然后测试用例:/**
*    @example     测试
*/
$t = new SaeRds();
try{$t->masterName = 'yourmastername';$t->slaveName = 'yourslavename';$t->dbName = 'summer';$t->username = 'yourusername';$t->password = 'yourpassword';$sql = 'select * from sum_user';$ret = $t->getMaster()->query($sql)->fetchAll();var_dump($ret);
}catch(Exception $e){var_dump($e->getMessage());
}        

可以得到如下的结果:
QQ截图20150915172341

总结
感谢SAE提供这么优秀的平台!
作者博客:夏天的风
原文地址:CloudBridge服务简单入门

CloudBridge服务简单入门相关推荐

  1. python如何读取mat文件可视化_python Matplotlib数据可视化(1):简单入门

    1 matplot入门指南 matplotlib是Python科学计算中使用最多的一个可视化库,功能丰富,提供了非常多的可视化方案,基本能够满足各种场景下的数据可视化需求.但功能丰富从另一方面来说也意 ...

  2. 基于vue-cli、elementUI的Vue超简单入门小例子

    基于vue-cli.elementUI的Vue超简单入门小例子 这个例子还是比较简单的,独立完成后,能大概知道vue是干嘛的,可以写个todoList的小例子. 开始写例子之前,先对环境的部署做点简单 ...

  3. 分布式锁简单入门以及三种实现方式介绍(滴滴)

    很多小伙伴在学习Java的时候,总是感觉Java多线程在实际的业务中很少使用,以至于不会花太多的时间去学习,技术债不断累积!等到了一定程度的时候对于与Java多线程相关的东西就很难理解,今天需要探讨的 ...

  4. CQRS简单入门(Golang)

    一.简单入门之入门 CQRS/ES和领域驱动设计更搭,故整体分层沿用经典的DDD四层.其实要实现的功能概要很简单,如下图. 基础框架选择了https://github.com/looplab/even ...

  5. python仿真搭建_mock搭建——python——搭建一个简单的mock服务——简单版本

    1.无聊的背景.起源: 如今的业务系统越来越复杂庞大,各个功能直接的调用也是多如牛毛,但如果在联调的时候,恰好被调的接口正在开发,怎么办? 傻傻的等么,不存在的!这时会搭建一些server来进行moc ...

  6. Express(一) ——简单入门

    Express(一) --简单入门 背景:参加的青训营项目,使用Express来实现后端,个人被分配到后端去.于是,简单速通了下Express.项目结束,回头写下笔记,沉淀一下. 个人博客:Expre ...

  7. Seneca :NodeJS 微服务框架入门指南

    Seneca :NodeJS 微服务框架入门指南 原文:http://onmr.com/press/getting-started-seneca.html Seneca 是一个能让您快速构建基于消息的 ...

  8. Sers微服务快速入门-01.简介

    微服务给我们的第一映像是分布式.架构复杂庞大,部署起来非常麻烦.其实并非如此,不同的架构选型必然带来不同的优点和缺点,没有一劳永逸的方法,配置简单是因为适用的功能场景简单.在项目或产品的实际开发中往往 ...

  9. Sers微服务快速入门-02.快速接入

    微服务给我们的第一映像是架构复杂,部署起来麻烦.其实并非如此,不同的架构选型必然带来不同的优点和缺点,没有一劳永逸的方法,配置简单是因为适用的场景面窄.在项目或产品的实际开发中往往随着时间的推进需要实 ...

最新文章

  1. python上机实验报告读取文件_Python程序设计实验报告:实验八 文件
  2. javascript如何释放内存
  3. 嵌入式FreeRTOS系统,在中断中调用FreeRTOS系统的API函数
  4. vba遍历数组_VBA代码解决方案的第59讲内容:如何在代码运行时创建数组
  5. win10系统winsxs文件夹该如何删除
  6. 请求参数绑定集合类型
  7. go语言按行读取文件
  8. 一文了解MySQL的Buffer Pool
  9. 敏捷、TDD(测试驱动开发)、OO--前奏
  10. KmdKit4D 0.01正式版发布了(0.02版已放出)
  11. 浙江大学计算机程序设计能力考试(PAT)简介
  12. matlab直方图均衡化代码
  13. java游戏 麦克斯 狗,我的主角麦克斯----记南极大冒险中的狗狗们
  14. QT中使用以管理员权限启动一个进程
  15. Microsoft Visio 2013在安装过程中出错的一种解决方案
  16. 更改csv默认分隔符
  17. 不使用转换器,DWG转DXF能否快速完成呢?
  18. Paper Note - 基于高效数据流标记和跟踪的可精炼跨主机攻击调查
  19. 难忘的童年~~~~~~真的好怀念!
  20. 爬取沪深股票并找出最近1个月创出新高的股票

热门文章

  1. sqlserver 目录名称无效解决办法 在执行批处理时出现错误。错误消息为: 目录名无效
  2. Chrome插件-Talend API Tester
  3. nvidia-smi 输出“No devices were found
  4. RESA: Recurrent Feature-Shift Aggregator for Lane Detection (AAAI 2021)
  5. 统计过去一年A股涨停板
  6. 中文编程,最精致的python访客登记系统实例项目,微信机器人不再只当人工智障------05
  7. javaScript中arguments.callee知识点
  8. [MATLAB]逐步回归详解(stepwise使用指南)
  9. 易度文档管理系统功能特性之预览
  10. 软考项目管理师三年备课心得