clb — Cloud Load Balancer
clb · 2018-03-17

RegisterTargets

POST

Bind one or more backend services to a Cloud Load Balancer listener or layer-7 forwarding rule. Before that, you need to create a related CLB layer-4 listener or layer-7 forwarding rule. For Layer-4 listeners (TCP/UDP), only specify the listener ID. For layer-7 (HTTP/HTTPS) listeners, forwarding rules must be specified through LocationId or Domain+Url.

Wire call

Converge Cloud is RPC over HTTP. There is one path — / — and the action travels in the X-TC-Action header. The /clb/RegisterTargets path used in the OpenAPI document is a documentation convenience so each action is addressable; it is not a route on the server.

curl
curl -sS https://clb.api3.convergecloud.com/ \
  -H 'Authorization: TC3-HMAC-SHA256 Credential=<SecretId>/<YYYY-MM-DD>/clb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=<sig>' \
  -H 'Content-Type: application/json; charset=utf-8' \
  -H 'Host: clb.api3.convergecloud.com' \
  -H 'X-TC-Action: RegisterTargets' \
  -H 'X-TC-Version: 2018-03-17' \
  -H 'X-TC-Timestamp: <unix-seconds>' \
  -H 'X-TC-Region: luzon' \
  -d '{"LoadBalancerId":"<LoadBalancerId>","ListenerId":"<ListenerId>","Targets":"<Targets>"}'

Request parameters

FieldTypeRequiredDescription
LoadBalancerIdstringYesCLB instance ID
ListenerIdstringYesCLB listener ID
TargetsTarget[]YesList of real servers to be bound. Array length limit: 20.
LocationIdstringNoSpecifies the forwarding rule ID, which can be obtained through the DescribeListeners API. you must provide this parameter or either Domain or Url when binding a backend service to a layer-7 forwarding rule.
DomainstringNoTarget forwarding rule domain name. This parameter does not take effect if LocationId is specified.
UrlstringNoTarget forwarding rule URL. This parameter does not take effect if LocationId is specified.

Response

Fields are returned inside the Response envelope. Converge Cloud answers HTTP 200 for errors as well as successes, so read Response.Error rather than the status code — and test for the presence of that object, because Code is occasionally the empty string.

FieldTypeDescription
RequestIdstringThe unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
Success
{
  "Response": {
    // action-specific fields,
    "RequestId": "…"
  }
}
Error
{
  "Response": {
    "Error": { "Code": "…", "Message": "…" },
    "RequestId": "…"
  }
}

Try it

CredentialThe key never leaves this tab — it signs the request here. The signed request goes to /api-relay/clb.
Request bodyvalid JSONPOST clb.api3.convergecloud.com · RegisterTargets

What failure looks like

Example error responses for this action. Match on Code.

Recorded error 1
{
  "Response": {
    "Error": {
      "Code": "InvalidParameter",
      "Message": "LoadBalancer not exist"
    },
    "RequestId": "66aa8c98-d884-c2fb-551f-851d955dd9fa"
  }
}