Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2022-11-17 GMT+08:00

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

Tabla 1 Descripción del parámetro

Parámetro

Obligatorio

Tipo

Descripción

project_id

String

Especifica el ID del proyecto.

Solicitud

Tabla 2 Descripción del parámetro

Parámetro

Obligatorio

Tipo

Descripción

pool

Pool object

Especifica el grupo de servidores backend. Para más detalles, consulte Tabla 3.

Tabla 3 Descripción del parámetro pool

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

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:

  • Cuando el protocolo utilizado por el oyente es UDP, el protocolo del grupo de servidores backend debe ser UDP.
  • Cuando el protocolo utilizado por el oyente es TCP, el protocolo del grupo de servidores backend debe ser TCP.
  • Cuando el protocolo utilizado por el oyente es HTTP o TERMINATED_HTTPS, el protocolo del grupo de servidores backend debe ser HTTP.

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:
  • ROUND_ROBIN: indica el algoritmo round robin ponderado.
  • LEAST_CONNECTIONS: indica el algoritmo de conexiones mínimas ponderadas.
  • SOURCE_IP: indica el algoritmo hash IP de origen.

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.

Tabla 4 Descripción de parámetro session_persistence

Parámetro

Obligatorio

Tipo

Descripción

type

String

Especifica el tipo de sesión adhesiva.

El rango de valores varía dependiendo del protocolo del grupo de servidores backend:
  • SOURCE_IP: Las solicitudes se distribuyen en función de la dirección IP del cliente. Las solicitudes desde la misma dirección IP se envían al mismo servidor backend.
  • HTTP_COOKIE: Cuando el cliente envía una solicitud por primera vez, el balanceador de carga genera automáticamente una cookie e inserta la cookie en el mensaje de respuesta. Las solicitudes posteriores se envían al servidor backend que procesa la primera solicitud.
  • APP_COOKIE: Cuando el cliente envía una solicitud por primera vez, el servidor backend que recibe la solicitud genera una cookie e inserta la cookie en el mensaje de respuesta. Las solicitudes posteriores se envían a este servidor 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:
  • Cuando el protocolo del grupo de servidores backend es TCP o UDP, el valor varía de 1 a 60.
  • Cuando el protocolo del grupo de servidores backend es HTTP o HTTPS, el valor varía de 1 a 1440.

Respuesta

Tabla 5 Descripción del parámetro

Parámetro

Tipo

Descripción

pool

Pool object

Especifica el grupo de servidores backend. Para más detalles, consulte Tabla 6.

Tabla 6 Descripción del parámetro pool

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:

  • Cuando el protocolo utilizado por el oyente es UDP, el protocolo del grupo de servidores backend debe ser UDP.
  • Cuando el protocolo utilizado por el oyente es TCP, el protocolo del grupo de servidores backend debe ser TCP.
  • Cuando el protocolo utilizado por el oyente es HTTP o TERMINATED_HTTPS, el protocolo del grupo de servidores backend debe ser HTTP.

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:
  • ROUND_ROBIN: indica el algoritmo round robin ponderado.
  • LEAST_CONNECTIONS: indica el algoritmo de conexiones mínimas ponderadas.
  • SOURCE_IP: indica el algoritmo hash IP de origen. Cuando el valor es SOURCE_IP, los pesos de los servidores backend del grupo de servidores no son válidos.

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.

  • true: habilitar
  • false: deshabilitar

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.

Tabla 7 Descripción del parámetro members

Parámetro

Tipo

Descripción

id

String

Especifica el ID del servidor backend asociado.

Tabla 8 Descripción del parámetro listeners

Parámetro

Tipo

Descripción

id

String

Especifica el ID del grupo de servidores backend asociado.

Tabla 9 Descripción de parámetro loadbalancers

Parámetro

Tipo

Descripción

id

String

Especifica el ID del balanceador de carga asociado.

Tabla 10 Descripción de parámetro session_persistence

Parámetro

Obligatorio

Tipo

Descripción

type

String

Especifica el tipo de sesión adhesiva.

El rango de valores varía dependiendo del protocolo del grupo de servidores backend:
  • SOURCE_IP: Las solicitudes se distribuyen en función de la dirección IP del cliente. Las solicitudes desde la misma dirección IP se envían al mismo servidor backend.
  • HTTP_COOKIE: Cuando el cliente envía una solicitud por primera vez, el balanceador de carga genera automáticamente una cookie e inserta la cookie en el mensaje de respuesta. Las solicitudes posteriores se envían al servidor backend que procesa la primera solicitud.
  • APP_COOKIE: Cuando el cliente envía una solicitud por primera vez, el servidor backend que recibe la solicitud genera una cookie e inserta la cookie en el mensaje de respuesta. Las solicitudes posteriores se envían a este servidor 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:
  • Cuando el protocolo del grupo de servidores backend es TCP o UDP, el valor varía de 1 a 60.
  • Cuando el protocolo del grupo de servidores backend es HTTP o HTTPS, el valor varía de 1 a 1440.

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.