在SoftLayer上添加服务组(虚拟服务)的正确方法是什么?
我正在尝试创建自动比例组。这个新的自动扩展组需要在现有的本地负载平衡器虚拟IP地址上指向一个新的(服务组,服务端口)条目。在SoftLayer上添加服务组(虚拟服务)的正确方法是什么?
从网站,我可以选择“添加组”,然后输入(GroupType,方法,虚拟端口,分配),这似乎是一个SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualServer 领域(有也好像是一种称为SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service_Group但它不”没有正确的字段名称)。
我尝试使用以下POST Web请求在现有本地负载均衡器上创建新的VirtualServer(服务组?),并返回404错误代码。
{
"parameters":
[
{
"allocation": 12,
"port": 1290,
"routingMethodId": null,
"virtualIpAddressId": 157345
}
]
}
=== EDITED ===
按照你的意见,我试过如下:
GET
响应
{
"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
}
}
]
}
]
}
,并张贴到:
,我得到了以下错误:
The remote server returned an error: (500) Internal Server Error.
你需要编辑并不那么容易负载balnacer调用方法:
基本上你需要添加一个新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]]
我更新了原始文章以反映您的建议更改。 –
尝试移除添加的虚拟服务器的所有ID,因为虚拟服务器不存在所有需要创建的ID。 –
我更新了我的答案,看到最后一个添加的虚拟服务器,您不需要设置所有值 –
我测试了删除ServiceGroup Id(特别是第二个[“id”:270313]并使其成功。新生成的ID根本没有返回(我得到的全部是“真”)。 –