在SoftLayer上添加服务组(虚拟服务)的正确方法是什么?

问题描述:

我正在尝试创建自动比例组。这个新的自动扩展组需要在现有的本地负载平衡器虚拟IP地址上指向一个新的(服务组,服务端口)条目。在SoftLayer上添加服务组(虚拟服务)的正确方法是什么?

从网站,我可以选择“添加组”,然后输入(GroupType,方法,虚拟端口,分配),这似乎是一个SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualServer 领域(有也好像是一种称为SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service_Group但它不”没有正确的字段名称)。

我尝试使用以下POST Web请求在现有本地负载均衡器上创建新的VirtualServer(服务组?),并返回404错误代码。

https://api.softlayer.com/rest/v3/SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualServer.json

{ 
    "parameters": 
    [ 
    { 
     "allocation": 12, 
     "port": 1290, 
     "routingMethodId": null, 
     "virtualIpAddressId": 157345 
    } 
    ] 
} 

=== EDITED ===

按照你的意见,我试过如下:

GET

https://api.softlayer.com/rest/v3/SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress/157345/getObject.json?objectMask=mask[virtualServers[serviceGroups]]

响应

{ 
    "accountId": 940999, 
    "connectionLimit": 250, 
    "connectionLimitUnits": "connections\/second", 
    "dedicatedFlag": false, 
    "id": 157345, 
    "ipAddressId": 11112844, 
    "notes": "CaffeLoadBalancer", 
    "securityCertificateId": null, 
    "sslActiveFlag": false, 
    "sslEnabledFlag": false, 
    "highAvailabilityFlag": false, 
    "managedResourceFlag": false, 
    "virtualServers": [{ 
     "allocation": 12, 
     "id": 274353, 
     "port": 1201, 
     "routingMethodId": null, 
     "virtualIpAddressId": 157345, 
     "serviceGroups": [{ 
     "id": 270313, 
     "routingMethodId": 3, 
     "routingTypeId": 3, 
     "timeout": null 
     }], 
     "virtualIpAddress": { 
     "accountId": 940999, 
     "connectionLimit": 250, 
     "connectionLimitUnits": "connections\/second", 
     "dedicatedFlag": false, 
     "id": 157345, 
     "ipAddressId": 11112844, 
     "notes": "CaffeLoadBalancer", 
     "securityCertificateId": null, 
     "sslActiveFlag": false, 
     "sslEnabledFlag": false, 
     "highAvailabilityFlag": false, 
     "managedResourceFlag": false, 
     "virtualServers": null 
     } 
    }] 
} 

然后我修改了回应这样的:

{ 
"parameters": 
[ 

{ 
    "accountId": 940999, 
    "connectionLimit": 250, 
    "connectionLimitUnits": "connections\/second", 
    "dedicatedFlag": false, 
    "id": 157345, 
    "ipAddressId": 11112844, 
    "notes": "CaffeLoadBalancer", 
    "securityCertificateId": null, 
    "sslActiveFlag": false, 
    "sslEnabledFlag": false, 
    "highAvailabilityFlag": false, 
    "managedResourceFlag": false, 
    "virtualServers": 
    [ 
    { 
    "allocation": 12, 
    "id": 274353, 
    "port": 1201, 
    "routingMethodId": null, 
    "virtualIpAddressId": 157345, 
    "serviceGroups": [{ 
     "id": 270313, 
     "routingMethodId": 3, 
     "routingTypeId": 3, 
     "timeout": null 
    }], 
    "virtualIpAddress": { 
     "accountId": 940999, 
     "connectionLimit": 250, 
     "connectionLimitUnits": "connections\/second", 
     "dedicatedFlag": false, 
     "id": 157345, 
     "ipAddressId": 11112844, 
     "notes": "CaffeLoadBalancer", 
     "securityCertificateId": null, 
     "sslActiveFlag": false, 
     "sslEnabledFlag": false, 
     "highAvailabilityFlag": false, 
     "managedResourceFlag": false, 
     "virtualServers": null 
    } 
    }, 
    { 
    "allocation": 12, 
    "port": 1290, 
    "routingMethodId": null, 
    "virtualIpAddressId": 157345, 
    "serviceGroups": [{ 
     "id": 270313, 
     "routingMethodId": 3, 
     "routingTypeId": 3, 
     "timeout": null 
    }], 
    "virtualIpAddress": { 
     "accountId": 940999, 
     "connectionLimit": 250, 
     "connectionLimitUnits": "connections\/second", 
     "dedicatedFlag": false, 
     "id": 157345, 
     "ipAddressId": 11112844, 
     "notes": "CaffeLoadBalancer", 
     "securityCertificateId": null, 
     "sslActiveFlag": false, 
     "sslEnabledFlag": false, 
     "highAvailabilityFlag": false, 
     "managedResourceFlag": false, 
     "virtualServers": null 
    } 
    } 
    ] 
} 

] 
} 

,并张贴到:

https://api.softlayer.com/rest/v3.1/SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress/157345/editObject.json

,我得到了以下错误:

The remote server returned an error: (500) Internal Server Error.

+0

尝试移除添加的虚拟服务器的所有ID,因为虚拟服务器不存在所有需要创建的ID。 –

+0

我更新了我的答案,看到最后一个添加的虚拟服务器,您不需要设置所有值 –

+0

我测试了删除ServiceGroup Id(特别是第二个[“id”:270313]并使其成功。新生成的ID根本没有返回(我得到的全部是“真”)。 –

你需要编辑并不那么容易负载balnacer调用方法:

http://sldn.softlayer.com/reference/services/SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress/e

基本上你需要添加一个新virtual server object

的请求将目光像这样修改包含在负载均衡的虚拟服务器的配置:

POST https://api.softlayer.com/rest/v3.1/SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress/$LOADBALANCERID/editObject 
    { 
    "parameters": [{ 
     "connectionLimit": 500, 
     "connectionLimitUnits": "connections/second", 
     "dedicatedFlag": false, 
     "id": 79945, 
     "ipAddressId": 25132124, 
     "notes": "This is for test", 
     "sslActiveFlag": false, 
     "sslEnabledFlag": false, 
     "highAvailabilityFlag": false, 
     "managedResourceFlag": false, 
     "virtualServers": [{ 
      "allocation": 40, 
      "id": 192913, 
      "port": 70, 
      "virtualIpAddressId": 79945, 
      "serviceGroups": [{ 
       "id": 188753, 
       "notes": "group 2", 
       "routingMethodId": 11, 
       "routingTypeId": 3 
      }], 
      "virtualIpAddress": { 
       "connectionLimit": 500, 
       "connectionLimitUnits": "connections/second", 
       "dedicatedFlag": false, 
       "id": 79945, 
       "ipAddressId": 25132124, 
       "notes": "This is for test", 
       "sslActiveFlag": false, 
       "sslEnabledFlag": false, 
       "highAvailabilityFlag": false, 
       "managedResourceFlag": false 
      } 
     }, { 
      "allocation": 10, 
      "id": 140553, 
      "port": 80, 
      "virtualIpAddressId": 79945, 
      "serviceGroups": [{ 
       "id": 138193, 
       "notes": "group note 2", 
       "routingMethodId": 2, 
       "routingTypeId": 2 
      }], 
      "virtualIpAddress": { 
       "connectionLimit": 500, 
       "connectionLimitUnits": "connections/second", 
       "dedicatedFlag": false, 
       "id": 79945, 
       "ipAddressId": 25132124, 
       "notes": "This is for test", 
       "sslActiveFlag": false, 
       "sslEnabledFlag": false, 
       "highAvailabilityFlag": false, 
       "managedResourceFlag": false 
      } 
     },{ 
      "port": 81, 
      "allocation": 10, 
      "serviceGroups": [{ 
       "notes": "group note 2", 
       "routingMethodId": 2, 
       "routingTypeId": 2 
      }] 
     }] 
    }] 

} 

我建议你先使用下面的请求获取负载均衡器的配置,然后添加新的虚拟服务器对象并调用编辑对象方法:

GET https://api.softlayer.com/rest/v3/SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress/$LOADBALANCERID/getObject?objectMask=mask[virtualServers[serviceGroups]] 
+0

我更新了原始文章以反映您的建议更改。 –