在 SoftLayer 上添加服务组(虚拟服务)的正确方法是什么?
What is the correct way to add a Service Group (Virtual Service) on SoftLayer?
我正在尝试创建自动缩放组。这个新的自动缩放组需要指向现有本地负载均衡器虚拟 IP 地址上的新(服务组、服务端口)条目。
从网站上,我可以 select "Add Group" 并输入(组类型、方法、虚拟端口、分配),这似乎是 SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualServer 上的字段
(似乎还有一个名为 SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service_Group 的类型,但它没有正确的字段名称)。
我尝试使用以下 POST 网络请求在现有的本地负载均衡器上创建一个新的虚拟服务器(服务组?),它 returns 一个 404 错误代码。
{
"parameters":
[
{
"allocation": 12,
"port": 1290,
"routingMethodId": null,
"virtualIpAddressId": 157345
}
]
}
=== 已编辑 ===
根据您的建议,我尝试了以下方法:
得到
回应
{
"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
}
}
]
}
]
}
并POST编辑为:
我收到以下错误:
The remote server returned an error: (500) Internal Server Error.
这不是那么容易,您需要编辑调用方法的负载平衡器:
基本上,您需要通过添加新的 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]]
我正在尝试创建自动缩放组。这个新的自动缩放组需要指向现有本地负载均衡器虚拟 IP 地址上的新(服务组、服务端口)条目。
从网站上,我可以 select "Add Group" 并输入(组类型、方法、虚拟端口、分配),这似乎是 SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualServer 上的字段 (似乎还有一个名为 SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service_Group 的类型,但它没有正确的字段名称)。
我尝试使用以下 POST 网络请求在现有的本地负载均衡器上创建一个新的虚拟服务器(服务组?),它 returns 一个 404 错误代码。
{
"parameters":
[
{
"allocation": 12,
"port": 1290,
"routingMethodId": null,
"virtualIpAddressId": 157345
}
]
}
=== 已编辑 ===
根据您的建议,我尝试了以下方法:
得到
回应
{
"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
}
}
]
}
]
}
并POST编辑为:
我收到以下错误:
The remote server returned an error: (500) Internal Server Error.
这不是那么容易,您需要编辑调用方法的负载平衡器:
基本上,您需要通过添加新的 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]]