Route
所有文档

          私有网络 VPC

          Route

          获取Endpoint

          在确认您使用SDK配置Endpoint时,可先阅读开发人员指南中关于服务域名的部分,理解Endpoint相关的概念。 百度智能云目前开放了多区域支持,请参考区域选择说明中网络产品VPC的部分,Route服务是VPC服务的一部分,使用VPC服务域名。

          获取密钥

          要使用百度云产品,您需要拥有一个百度云账号和一个有效的 AK(Access Key ID)、SK(Secret Access Key)用来进行签名认证。可以通过如下步骤获得并了解您的AK/SK信息:

          1. 注册百度智能云账号
          2. 创建AK/SK

          RouteClient

          RouteClient是Route服务的客户端,为开发者与Route服务进行交互提供了一系列的方法。 新建RouteClient时,需要先使用Endpoint、AK、SK对array类型的config实例进行配置,再使用config实例对RouteClient进行配置,具体配置方法如下:

              function __construct(array $config)
              {
                  parent::__construct($config, 'route');
                  $this->signer = new BceV1Signer();
                  $this->httpClient = new BceHttpClient();
              }

          查询路由表

          查询路由表,请求参数routeTableId和vpcId不可以同时为空。

          查询路由表实例代码如下

          public function getRouteTable( $vpcId = null, $routeTableId = null, $options = array()) {
              list($config) = $this->parseOptions($options, 'config');
              $params = array();
              if (empty($routeTableId)  && empty($vpcId )) {
                  throw new \InvalidArgumentException(
                      'request $routeTableId and $vpcId should not be empty at the same time.'
                  );
              }
              if (!empty($routeTableId)) {
                  $params['routeTableId'] = $routeTableId;
              }
              if (!empty($vpcId)) {
                  $params['vpcId'] = $vpcId;
              }
              return $this->sendRequest(
                  HttpMethod::GET,
                  array(
                      'config' => $config,
                      'params' => $params,
                  ),
                  '/route'
              );
          }

          参数说明如下:

          参数名称 类型 是否必需 描述
          vpcId string VPC的id,该参数和routeTableId不能同时为空
          routeTableId string 路由表id,该参数和vpcId不能同时为空
          options array 默认为初始化routeClient时的config

          创建路由规则

          创建路由表规则,有以下几点需要注意:

          • 源网段选择自定义时,自定义网段需在已有子网范围内,0.0.0.0/0除外;
          • 目标网段不能与当前所在VPC cidr重叠(目标网段或本VPC cidr为0.0.0.0/0时例外);
          • 新增路由条目的源网段和目标网段,不能与路由表中已有条目源网段和目标网段完全一致。

          创建路由规则代码如下:

          public function createRouteRule($routeTableId,  $sourceAddress, $destinationAddress,
              $nexthopType, $description, $nexthopId = null, $clientToken = null, $options = array()) {
              list($config) = $this->parseOptions($options, 'config');
              $params = array();
              $body = array();
              // 校验是否设置 clientToken 
              if (empty($clientToken)) {
                  $params['clientToken'] = $this->generateClientToken();
              }
              else {
                  $params['clientToken'] = $clientToken;
              }
              // 校验 routeTableId 是否为空
              if (empty($routeTableId)) {
                  throw new \InvalidArgumentException(
                      'request $routeTableId  should not be empty .'
                  );
              }
              // 校验 sourceAddress 是否为空
              if (empty($sourceAddress)) {
                  throw new \InvalidArgumentException(
                      'request $sourceAddress  should not be empty .'
                  );
              }
              // 校验 destinationAddress 是否为空
              if (empty($destinationAddress)) {
                  throw new \InvalidArgumentException(
                      'request $destinationAddress  should not be empty .'
                  );
              }
              // 校验 nexthopType 是否为空
              if (empty($nexthopType)) {
                  throw new \InvalidArgumentException(
                      'request $nexthopType  should not be empty .'
                  );
              }
              // 校验 description 是否为空
              if (empty($description)) {
                  throw new \InvalidArgumentException(
                      'request $descrption  should not be empty .'
                  );
              }
              $body['routeTableId'] = $routeTableId;
              $body['sourceAddress'] = $sourceAddress;
              $body['destinationAddress'] = $destinationAddress;
              $body['nexthopId'] = $nexthopId;
              $body['nexthopType'] = $nexthopType;
              $body['description'] = $description;
              return $this->sendRequest(
                  HttpMethod::POST,
                  array(
                      'config' => $config,
                      'params' => $params,
                      'body' => json_encode($body),
                  ),
                  '/route/rule'
              );
          }

          参数说明如下:

          参数名称 类型 是否必需 描述
          routeTableId string 路由表id
          sourceAddress string 源网段,可填全部网段0.0.0.0/0、VPC内已有子网网段或子网范围内网段
          destinationAddress string 目标网段,可以是0.0.0.0/0,否则目的地址不能与本VPC cidr重叠(目的网段或本VPC cidr为0.0.0.0/0时例外)
          nexthopType string 路由类型。Bcc类型是"custom";VPN类型是"vpn";NAT类型是"nat"
          description string 描述
          nexthopId string 下一跳id
          clientToken string 幂等性Token,是一个长度不超过64位的ASCII字符串。
          options array 默认为初始化routeClient时的config

          删除路由规则

          根据routeRuleId删除路由规则,代码如下:

          public function deleteRouteRule($routeRuleId, $clientToken = null, $options = array()) {
              $params = array();
              list($config) = $this->parseOptions($options, 'config');
              // 校验 routeRuleId 是否为空
              if(empty($routeRuleId) ) {
                  throw new \InvalidArgumentException(
                      'request $routeRuleId should not be empty.'
                  );
              }        
              if (empty($clientToken)) {
                  $params['clientToken'] = $this->generateClientToken();
              } else {
                  $params['clientToken'] = $clientToken;
              }
              return $this->sendRequest(
                  HttpMethod::DELETE,
                  array(
                      'config' => $config,
                      'params' => $params,
                  ),
                  '/route/rule/' .$routeRuleId
              );
          }

          参数说明如下:

          参数名称 类型 是否必需 描述
          routeRuleId string 路由规则id
          clientToken string 幂等性Token,是一个长度不超过64位的ASCII字符串。
          options array 默认为初始化routeClient时的config
          上一篇
          ACL
          下一篇
          NAT