Adición de un grupo de servidores de backend
Función
Esta API se utiliza para agregar un grupo de servidores backend. Después de agregar múltiples servidores backend a un grupo de servidores backend, las solicitudes se distribuyen entre servidores backend basándose en el algoritmo de equilibrio de carga configurado para el grupo de servidores backend y el conjunto de pesos para cada servidor backend.
Restricciones
- Si el parámetro session-persistence está configurado, el parámetro cookie_name solo está disponible cuando el valor de type es APP_COOKIE.
URI
POST /v2/{project_id}/elb/pools
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
project_id |
Sí |
String |
Especifica el ID del proyecto. |
Solicitud
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
pool |
Sí |
Pool object |
Especifica el grupo de servidores backend. Para más detalles, consulte Tabla 3. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
tenant_id |
No |
String |
Especifica el ID del proyecto en el que se utiliza el grupo de servidores backend. El valor debe ser el mismo que el valor de project_id en el token. El valor contiene un máximo de 255 caracteres. |
name |
No |
String |
Especifica el nombre del grupo de servidores backend. El valor contiene un máximo de 255 caracteres. |
description |
No |
String |
Proporciona información adicional sobre el grupo de servidores backend. El valor contiene un máximo de 255 caracteres. |
protocol |
Sí |
String |
Especifica el protocolo que utiliza el grupo de servidores backend para recibir solicitudes. Se admiten TCP, UDP y HTTP. Cuando un grupo de servidores backend está asociado con un oyente, las relaciones entre el protocolo utilizado por el oyente y el protocolo del grupo de servidores backend son las siguientes:
|
lb_algorithm |
Sí |
String |
Especifica el algoritmo de equilibrio de carga del grupo de servidores backend.
El rango de valores varía dependiendo del protocolo del grupo de servidores backend:
Cuando el valor es SOURCE_IP, los pesos de los servidores backend del grupo de servidores no son válidos. |
admin_state_up |
No |
Boolean |
Especifica el estado administrativo del grupo de servidores backend. Este parámetro está reservado y el valor predeterminado es true. |
listener_id |
No |
String |
Especifica el ID del oyente asociado al grupo de servidores backend. Especifique listener_id o loadbalancer_id, o ambos. |
loadbalancer_id |
No |
String |
Especifica el ID del balanceador de carga asociado al grupo de servidores backend. Especifique listener_id o loadbalancer_id, o ambos. |
session_persistence |
No |
SessionPersistence object |
Especifica la duración del tiempo de espera de la sesión adhesiva en minutos. Para más detalles, consulte Tabla 4. Si el valor es null, la función de sesión adhesiva está deshabilitada. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
type |
Sí |
String |
Especifica el tipo de sesión adhesiva.
El rango de valores varía dependiendo del protocolo del grupo de servidores backend:
Cuando el protocolo del grupo de servidores backend es TCP, solo SOURCE_IP tiene efecto. Cuando el protocolo del grupo de servidores backend es HTTP, solo tiene efecto HTTP_COOKIE o APP_COOKIE. |
cookie_name |
No |
String |
Especifica el nombre de la cookie. Este parámetro es obligatorio cuando el tipo de sesión sticky es APP_COOKIE. |
persistence_timeout |
No |
Integer |
Especifica la duración del tiempo de espera de la sesión adhesiva en minutos. Este parámetro no es válido cuando type se establece en APP_COOKIE.
El rango de valores varía dependiendo del protocolo del grupo de servidores backend:
|
Respuesta
Parámetro |
Tipo |
Descripción |
---|---|---|
pool |
Pool object |
Especifica el grupo de servidores backend. Para más detalles, consulte Tabla 6. |
Parámetro |
Tipo |
Descripción |
---|---|---|
id |
String |
Especifica el ID del grupo de servidores backend. |
tenant_id |
String |
Especifica el ID del proyecto en el que se utiliza el grupo de servidores backend. El valor contiene un máximo de 255 caracteres. |
project_id |
String |
Especifica el ID del proyecto al que pertenece el grupo de servidores backend. Este parámetro tiene el mismo significado que tenant_id. |
name |
String |
Especifica el nombre del grupo de servidores backend. El valor contiene un máximo de 255 caracteres. |
description |
String |
Proporciona información adicional sobre el grupo de servidores backend. El valor contiene un máximo de 255 caracteres. |
protocol |
String |
Especifica el protocolo que utiliza el grupo de servidores backend para recibir solicitudes. Se admiten TCP, UDP y HTTP. Cuando un grupo de servidores backend está asociado con un oyente, las relaciones entre el protocolo utilizado por el oyente y el protocolo del grupo de servidores backend son las siguientes:
|
lb_algorithm |
String |
Especifica el algoritmo de equilibrio de carga del grupo de servidores backend.
El rango de valores varía dependiendo del protocolo del grupo de servidores backend:
|
members |
Array of Members objects |
Muestra los ID de los servidores backend del grupo de servidores backend. Para más detalles, consulte Tabla 7. |
healthmonitor_id |
String |
Especifica el ID de la comprobación de estado configurada para el grupo de servidores backend. |
admin_state_up |
Boolean |
Especifica el estado administrativo del grupo de servidores backend. Este parámetro está reservado. El valor puede ser true o false.
|
listeners |
Array of Listeners objects |
Muestra los ID de oyentes asociados con el grupo de servidores backend. Para más detalles, consulte Tabla 8. |
loadbalancers |
Array of Loadbalancers objects |
Muestra los ID de los balanceadores de carga asociados con el grupo de servidores backend. Para más detalles, consulte Tabla 9. |
session_persistence |
SessionPersistence object |
Especifica si se debe habilitar la función de sesión adhesiva. Para más detalles, consulte Tabla 10. Una vez habilitada la sesión adhesiva, las solicitudes del mismo cliente se envían al mismo servidor backend durante la sesión. Cuando se deshabilitan las sesiones adhesivas, el valor es null. |
Parámetro |
Tipo |
Descripción |
---|---|---|
id |
String |
Especifica el ID del servidor backend asociado. |
Parámetro |
Tipo |
Descripción |
---|---|---|
id |
String |
Especifica el ID del grupo de servidores backend asociado. |
Parámetro |
Tipo |
Descripción |
---|---|---|
id |
String |
Especifica el ID del balanceador de carga asociado. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
type |
Sí |
String |
Especifica el tipo de sesión adhesiva.
El rango de valores varía dependiendo del protocolo del grupo de servidores backend:
Cuando el protocolo del grupo de servidores backend es TCP, solo SOURCE_IP tiene efecto. Cuando el protocolo del grupo de servidores backend es HTTP, solo tiene efecto HTTP_COOKIE o APP_COOKIE. |
cookie_name |
No |
String |
Especifica el nombre de la cookie. Este parámetro es obligatorio cuando el tipo de sesión sticky es APP_COOKIE. |
persistence_timeout |
No |
Integer |
Especifica la duración del tiempo de espera de la sesión adhesiva en minutos. Este parámetro no es válido cuando type se establece en APP_COOKIE.
El rango de valores varía dependiendo del protocolo del grupo de servidores backend:
|
Ejemplo de la solicitud
- Ejemplo de solicitud 1: Agregar un grupo de servidores backend HTTP
POST https://{Endpoint}/v2/601240b9c5c94059b63d484c92cfe308/elb/pools { "pool": { "lb_algorithm":"ROUND_ROBIN", "loadbalancer_id": "63ad9dfe-4750-479f-9630-ada43ccc8117", "protocol":"HTTP" } }
- Ejemplo de solicitud 2: Agregar un grupo de servidores backend con el valor de type establecido en APP_COOKIE
POST https://{Endpoint}/v2/145483a5107745e9b3d80f956713e6a3/elb/pools { "pool": { "lb_algorithm": "ROUND_ROBIN", "loadbalancer_id": "370fb112-e920-486a-b051-1d0d30704dd3", "protocol": "HTTP", "session_persistence": { "cookie_name": "my_cookie", "type": "APP_COOKIE", "persistence_timeout": 1 }, "admin_state_up": true } }
- Ejemplo de solicitud 3: Agregar un grupo de servidores backend HTTP con el valor de type establecido en HTTP_COOKIE
POST https://{Endpoint}/v2/601240b9c5c94059b63d484c92cfe308/elb/pools { "pool": { "lb_algorithm":"ROUND_ROBIN", "loadbalancer_id": "63ad9dfe-4750-479f-9630-ada43ccc8117", "protocol":"HTTP", "session_persistence":{ "type":"HTTP_COOKIE" } } }
Ejemplo de la respuesta
- Ejemplo de respuesta 1
{ "pool": { "lb_algorithm": "ROUND_ROBIN", "protocol": "HTTP", "description": "", "admin_state_up": true, "loadbalancers": [ { "id": "63ad9dfe-4750-479f-9630-ada43ccc8117" } ], "tenant_id": "601240b9c5c94059b63d484c92cfe308", "project_id": "601240b9c5c94059b63d484c92cfe308", "session_persistence": null, "healthmonitor_id": null, "listeners": [], "members": [], "id": "4e496951-befb-47bf-9573-c1cd11825c07", "name": "" } }
- Ejemplo de respuesta 2
{ "pool": { "lb_algorithm": "ROUND_ROBIN", "protocol": "HTTP", "description": "", "admin_state_up": true, "loadbalancers": [ { "id": "6b041b9e-976b-40ba-b075-375be6110b53" } ], "tenant_id": "145483a5107745e9b3d80f956713e6a3", "project_id": "145483a5107745e9b3d80f956713e6a3", "session_persistence": { "cookie_name": "my_cookie", "type": "APP_COOKIE", "persistence_timeout": 1 }, "healthmonitor_id": null, "listeners": [ { "id": "370fb112-e920-486a-b051-1d0d30704dd3" } ], "members": [], "id": "307f8968-9474-4d0c-8434-66be09dabcc1", "name": "" } }
- Ejemplo de respuesta 3
{ "pool": { "lb_algorithm": "ROUND_ROBIN", "protocol": "HTTP", "description": "", "admin_state_up": true, "loadbalancers": [ { "id": "63ad9dfe-4750-479f-9630-ada43ccc8117" } ], "tenant_id": "601240b9c5c94059b63d484c92cfe308", "project_id": "601240b9c5c94059b63d484c92cfe308", "session_persistence": { "persistence_timeout": 1440, "cookie_name": null, "type": "HTTP_COOKIE" }, "healthmonitor_id": null, "listeners": [], "members": [], "id": "d46eab56-d76b-4cd3-8952-3c3c4cf113aa", "name": "" } }
Código de estado
Para más detalles, consulte Códigos de estado.