All Products
Search
Document Center

Server Load Balancer:UpdateRuleAttribute

Last Updated:Mar 01, 2024

Updates a forwarding rule, such as the match condition, action, and name.

Operation description

  • UpdateRuleAttribute is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the ListRules operation to query the status of a forwarding rule:

    • If a forwarding rule is in the Configuring state, the forwarding rule is being updated.
    • If a forwarding rule is in the Available state, the forwarding rule is updated.
  • You can set RuleConditions and RuleActions to add conditions and actions to a forwarding rule. Take note of the following limits on the number of conditions and the number of actions in each forwarding rule:

    • Number of conditions: You can specify at most 5 for a basic Application Load Balancer (ALB) instance, at most 10 for a standard ALB instance, and at most 10 for a WAF-enabled ALB instance.
    • Number of actions: You can specify at most 3 for a basic ALB instance, at most 5 for a standard ALB instance, and at most 5 for a WAF-enabled ALB instance.

Debugging

OpenAPI Explorer automatically calculates the signature value. For your convenience, we recommend that you call this operation in OpenAPI Explorer.

Authorization information

The following table shows the authorization information corresponding to the API. The authorization information can be used in the Action policy element to grant a RAM user or RAM role the permissions to call this API operation. Description:

  • Operation: the value that you can use in the Action element to specify the operation on a resource.
  • Access level: the access level of each operation. The levels are read, write, and list.
  • Resource type: the type of the resource on which you can authorize the RAM user or the RAM role to perform the operation. Take note of the following items:
    • The required resource types are displayed in bold characters.
    • If the permissions cannot be granted at the resource level, All Resources is used in the Resource type column of the operation.
  • Condition Key: the condition key that is defined by the cloud service.
  • Associated operation: other operations that the RAM user or the RAM role must have permissions to perform to complete the operation. To complete the operation, the RAM user or the RAM role must have the permissions to perform the associated operations.
OperationAccess levelResource typeCondition keyAssociated operation
alb:UpdateRuleAttributeWrite
  • LoadBalancer
    acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}
    none
none

Request parameters

ParameterTypeRequiredDescriptionExample
RuleIdstringYes

The ID of the forwarding rule.

rule-4dp5i6ea****
ClientTokenstringNo

The client token that is used to ensure the idempotence of the request.

You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.

Note If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.
5A2CFF0E-5718-45B5-9D4D-70B3FF3898
DryRunbooleanNo

Specifies whether to perform only a dry run, without performing the actual request. Valid values:

  • true: performs a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the DryRunOperation error code is returned.
  • false (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.
false
RuleConditionsobject []No

The match condition of the forwarding rule.

CookieConfigobjectNo

The configuration of the cookie.

Valuesobject []No

The configuration of the cookie.

KeystringNo

The key of the cookie. The key must be 1 to 100 characters in length, and can contain printable characters such as lowercase letters, asterisks (*), and question marks (?). However, uppercase letters, space characters, and the following special characters are not supported: # [ ] { } \ | < > &.

test
ValuestringNo

The value of the cookie. The value must be 1 to 128 characters in length, and can contain printable characters such as lowercase letters, asterisks (*), and question marks (?). However, uppercase letters, space characters, and the following special characters are not supported: # [ ] { } \ | < > &.

test
HeaderConfigobjectNo

The configuration of the header.

KeystringNo

The key of the header. The key must be 1 to 40 characters in length and can contain letters, digits, hyphens (-), and underscores (_). You cannot specify Cookie or Host.

Port
ValuesarrayNo

The values of the header.

stringNo

The value of the header. The header values within a forwarding rule must be unique. The header values must meet the following requirements:

  • The value must be 1 to 128 characters in length.
  • It can contain printable characters whose ASCII values are greater than or equal to 32 and lower than 127. You can use asterisks (*) and question marks (?) as wildcard characters.
  • The header value cannot start or end with a space character.
5006
HostConfigobjectNo

The configurations of the hosts.

ValuesarrayNo

The hostnames.

stringNo

The hostname. The hostname must meet the following requirements:

  • The hostname must be 3 to 128 characters in length, and can contain lowercase letters, digits, hyphens (-), periods (.), asterisks (*), and question marks (?).
  • The hostname must contain at least one period (.) but cannot start or end with a period (.).
  • The rightmost domain label can contain only letters, asterisks (*), and question marks (?), and cannot contain digits or hyphens (-).
  • The domain labels do not start or end with a hyphen (-). You can specify asterisks (∗) and question marks (?) anywhere in a domain label.
www.example.com
MethodConfigobjectNo

The configurations of the request methods.

ValuesarrayNo

The request methods.

stringNo

The request method.

Valid values: HEAD, GET, POST, OPTIONS, PUT, PATCH, and DELETE.

PUT
PathConfigobjectNo

The configurations of the paths.

ValuesarrayNo

The paths.

stringNo

The path. The path must meet the following requirements:

  • The value must be 1 to 128 characters in length.
  • It must start with a forward slash (/) and can contain letters, digits, and the following special characters: $ - _ .+ / & ~ @ :. It cannot contain the following special characters: " % # ; ! ( ) [ ] ^ , ". You can use asterisks (*) and question marks (?) as wildcards.
/test
QueryStringConfigobjectNo

The configurations of the query strings. You can specify at most 20 query conditions.

Valuesobject []No

The query string.

KeystringNo

They key of the query string. The key must be 1 to 100 characters in length, and can contain printable characters such as lowercase letters, asterisks (*), and question marks (?). However, the key cannot contain uppercase letters, space characters, or the following special characters: # [ ] { } \ | < > &.

test
ValuestringNo

The value of the query string. The value must be 1 to 128 characters in length, and can contain printable characters such as lowercase letters, asterisks (*), and question marks (?). However, uppercase letters, space characters, and the following special characters are not supported: # [ ] { } \ | < > &.

test
TypestringNo

The type of the forwarding rule. You can specify up to seven types. Valid values:

  • Host: Requests are forwarded based on hosts.
  • Path: Requests are forwarded based on paths.
  • Header: Requests are forwarded based on HTTP headers.
  • QueryString: Requests are forwarded based on query strings.
  • Method: Requests are forwarded based on request methods.
  • Cookie: Requests are forwarded based on cookies.
  • SourceIp: Requests are distributed based on source IP addresses.
  • ResponseHeader: Requests are forwarded based on HTTP response headers.
  • ResponseStatusCode: Requests are forwarded based on response status codes.
Host
ResponseStatusCodeConfigobjectNo

The configurations of the response status codes.

ValuesarrayNo

The response status codes.

stringNo

The response status code.

test
ResponseHeaderConfigobjectNo

The configuration of the header.

KeystringNo

The key of the header.

  • The key must be 1 to 40 characters in length.
  • It can contain lowercase letters, digits, hyphens (-), and underscores (_).
  • Cookie and Host are not supported.
test
ValuesarrayNo

The values of the header.

stringNo

The value of the header.

  • The value must be 1 to 128 characters in length.
  • It can contain printable characters whose ASCII character values are greater than or equal to 32 and smaller than 127, excluding uppercase letters. You can use asterisks (*) and question marks (?) as wildcards.
  • The header value cannot start or end with a space character.
50006
SourceIpConfigobjectNo

The configuration of the source IP addresses based on which user traffic is matched. You can add at most five source IP-based forwarding rules.

ValuesarrayNo

The IP address or CIDR block based on which user traffic is matched. You can specify multiple IP addresses or CIDR blocks.

stringNo

The IP addresses or CIDR blocks.

192.168.0.0/32
RuleActionsobject []No

The actions of the forwarding rule.

FixedResponseConfigobjectNo

The configuration of the custom response.

ContentstringNo

The content of the custom response. The content can be up to 1 KB in size, and can contain only ASCII characters.

dssacav
ContentTypestringNo

The format of the response.

Valid values: text/plain, text/css, text/html, application/javascript, and application/json.

text/plain
HttpCodestringNo

The HTTP status code in the response. Valid values: HTTP_2xx, HTTP_4xx, and HTTP_5xx. x must be a digit.

HTTP_200
ForwardGroupConfigobjectNo

The configurations of the server groups.

ServerGroupTuplesobject []No

The server groups to which requests are forwarded.

ServerGroupIdstringNo

The ID of the server group to which the request is forwarded.

sg--atstuj3rtoptyui****
WeightintegerNo

The weight of the server group. A larger value specifies a higher weight. A server group with a higher weight receives more requests. Valid values: 0 to 100.

  • If only one destination server group exists and you do not specify a weight, the default value 100 is used.
  • If more than one destination server group exists, you must specify weights.
30
ServerGroupStickySessionobjectNo

The configuration of session persistence for server groups.

EnabledbooleanNo

Specifies whether to enable session persistence. Valid values:

  • true
  • false (default)
false
TimeoutintegerNo

The timeout period of sessions. Unit: seconds. Valid values: 1 to 86400.

2
InsertHeaderConfigobjectNo

The configuration of the header to be inserted.

KeystringNo

The key of the header. The key must be 1 to 40 characters in length, and can contain letters, digits, underscores (_), and hyphens (-). The header key specified by InsertHeaderConfig must be unique.

Note You cannot specify the following header keys (case-insensitive): slb-id, slb-ip, x-forwarded-for, x-forwarded-proto, x-forwarded-eip, x-forwarded-port, x-forwarded-client-srcport, connection, upgrade, content-length, transfer-encoding, keep-alive, te, host, cookie, remoteip, and authority.
key
ValuestringNo

The value of the header to be inserted.

  • If ValueType is set to SystemDefined, you can specify one of the following header values:

    • ClientSrcPort: the client port.
    • ClientSrcIp: the client IP address.
    • Protocol: the request protocol (HTTP or HTTPS).
    • SLBId: the ID of the ALB instance.
    • SLBPort: the listening port.
  • If ValueType is set to UserDefined, you can specify a custom header value. The header value must be 1 to 128 characters in length, and can contain printable characters whose ASCII values are greater than or equal to 32 and lower than 127. You can use asterisks (*) and question marks (?) as wildcards. The value cannot start or end with a space character.

  • If ValueType is set to ReferenceHeader, you can reference one of the request headers. The header value must be 1 to 128 characters in length, and can contain lowercase letters, digits, underscores (_), and hyphens (-).

UserDefined
ValueTypestringNo

The type of header. Valid values:

  • UserDefined: a custom header
  • ReferenceHeader: a header that references one of the request headers
  • SystemDefined: a header predefined by the system
UserDefined
OrderintegerNo

The priority of the action. Valid values: 1 to 50000. A lower value indicates a higher priority. The actions of a forwarding rule are applied in descending order of priority. This parameter is required. The priority of each action within a forwarding rule must be unique. You can specify priorities for at most 20 actions.

1
RedirectConfigobjectNo

The configuration of the redirection. You can specify at most 20 rewrites.

HoststringNo

The hostname to which requests are redirected. Valid values:

  • ${host} (default): If you set the value to ${host}, you cannot append other characters.

  • Limits on the value:

    • The hostname must be 3 to 128 characters in length, and can contain lowercase letters, digits, hyphens (-), and periods (.). Asterisks (*) and question marks (?) can be used as wildcards.
    • The hostname must contain at least one period (.) but cannot start or end with a period (.).
    • The rightmost domain label can contain only letters and wildcard characters. It does not contain digits or hyphens (-).
    • The domain labels cannot start or end with a hyphen (-).
    • You can use asterisks (*) and question marks (?) anywhere in a domain label as wildcard characters.
www.example.com
HttpCodestringNo

The redirect type. Valid values: 301, 302, 303, 307, and 308.

301
PathstringNo

The path to which requests are redirected. Valid values:

  • Default value: ${path}. **${host}**, ${protocol}, and **${port}** are also supported. Each variable can be specified only once. You can specify one or more of the preceding variables in each request. You can also combine them with a custom value.

  • A custom value. You must make sure that the custom value meets the following requirements:

    • The value is 1 to 128 characters in length.
    • It must start with a forward slash (/) and can contain letters, digits, and the following special characters: $ - _ .+ / & ~ @ :. It cannot contain the following special characters: " % # ; ! ( ) [ ] ^ , ". You can use asterisks (*) and question marks (?) as wildcards.
/test
PortstringNo

The port to which requests are redirected. Valid values:

  • ${port} (default): If you set the value to ${port}, you cannot append other characters.
  • You can also enter a port number. Valid values: 1 to 63335.
10
ProtocolstringNo

The redirect protocol. Valid values:

  • ${protocol} (default): If you set the value to ${protocol}, you cannot append other characters.
  • HTTP or HTTPS.
Note HTTPS listeners support only HTTPS to HTTPS redirects.
HTTP
QuerystringNo

The query string of the URL to which requests are redirected. Valid values:

  • Default value: ${query}. **${host}**, ${protocol}, and **${port}** are also supported. Each variable can be specified only once. You can specify one or more of the preceding variables in each request. You can also combine them with a custom value.

  • A custom value. You must make sure that the custom value meets the following requirements:

    • The value must be 1 to 128 characters in length.
    • It can contain printable characters, except space characters, the special characters # [ ] { } \ | < > &, and uppercase letters.
quert
RewriteConfigobjectNo

The configuration of the rewrite action.

HoststringNo

The hostname to which requests are redirected. Valid values:

  • ${host} (default): If you set the value to ${host}, you cannot append other characters.

  • If you want to specify a custom value, make sure that the following requirements are met:

    • The hostname must be 3 to 128 characters in length, and can contain lowercase letters, digits, hyphens (-), and periods (.). You can use asterisks (*) and question marks (?) as wildcard characters.
    • The hostname must contain at least one period (.) but cannot start or end with a period (.).
    • The rightmost domain label can contain only letters and wildcard characters. It does not contain digits or hyphens (-).
    • The domain labels cannot start or end with a hyphen (-). You can use asterisks (*) and question marks (?) anywhere in a domain label as wildcard characters.
www.example.com
PathstringNo

The path to which requests are redirected. Valid values:

  • Default value: ${path}. **${host}**, ${protocol}, and **${port}** are also supported. Each variable can be specified only once. You can specify one or more of the preceding variables in each request. You can also combine them with a custom value.

  • A custom value. You must make sure that the custom value meets the following requirements:

    • The value is 1 to 128 characters in length.
    • It must start with a forward slash (/) and can contain letters, digits, and the following special characters: $ - _ .+ / & ~ @ :. It cannot contain the following special characters: " % # ; ! ( ) [ ] ^ , ". You can use asterisks (*) and question marks (?) as wildcards.
/tsdf
QuerystringNo

The query string of the URL to which requests are distributed. Valid values:

  • Default value: ${query}. **${host}**, ${protocol}, and **${port}** are also supported. Each variable can be specified only once. You can specify one or more of the preceding variables in each request. You can also combine them with a custom value.

  • A custom value. You must make sure that the custom value meets the following requirements:

    • The value must be 1 to 128 characters in length.
    • It can contain printable characters, except space characters, the special characters # [ ] { } \ | < > &, and uppercase letters.
quedsa
TypestringNo

The action type. You can specify at most 11 types of actions. Valid values:

  • ForwardGroup: forwards a request to multiple vServer groups.
  • Redirect: redirects a request.
  • FixedResponse: returns a custom response.
  • Rewrite: rewrites a request.
  • InsertHeader: inserts a header.
  • RemoveHeaderConfig: deletes a header.
  • TrafficLimitConfig: throttles network traffic.
  • TrafficMirrorConfig: mirrors traffic.
  • CorsConfig: forwards requests based on CORS.

The following action types are supported:

  • FinalType: the last action to be performed in a forwarding rule. Each forwarding rule can contain only one FinalType action. You can specify a ForwardGroup, Redirect, or FixedResponse action as the FinalType action.
  • ExtType: the action or the actions to be performed before the FinalType action. A forwarding rule can contain one or more ExtType actions. To specify this parameter, you must also specify FinalType. You can specify multiple InsertHeader actions or one Rewrite action.
ForwardGroup
TrafficLimitConfigobjectNo

The action to throttle traffic.

QPSintegerNo

The queries per second (QPS). Valid values: 1 to 100000.

100
PerIpQpsintegerNo

The QPS of each IP address. Valid values: 1 to 100000.

Note If both the QPS and PerIpQps properties are specified, make sure that the value of the QPS property is smaller than the value of the PerIpQps property.
80
TrafficMirrorConfigobjectNo

The action to mirror traffic.

TargetTypestringNo

The type of destination to which network traffic is mirrored. Valid values:

  • ForwardGroupMirror: a server group
  • SlsMirror: Log Service
ForwardGroupMirror
MirrorGroupConfigobjectNo

The configuration of the server group to which traffic is mirrored.

ServerGroupTuplesobject []No

The configuration of the server group to which traffic is mirrored.

ServerGroupIdstringNo

The server group ID.

srg-00mkgijak0w4qgz9****
CorsConfigobjectNo

The origins allowed.

AllowOriginarrayNo

The allowed origins of CORS requests.

stringNo

The allowed origins of CORS requests. You can set this parameter to an asterisk (*) or one or more values. The value cannot be an asterisk (*).

  • The value must start with http:// or https:// and include a valid domain name or top-level wildcard domain name, such as *.test.abc.example.com.
  • You can specify a port in a value. Port range: 1 to 65535.
http://test.com
AllowMethodsarrayNo

The allowed HTTP methods for CORS requests.

stringNo

The allowed HTTP methods for CORS requests. Valid values:

  • GET
  • POST
  • PUT
  • DELETE
  • HEAD
  • OPTIONS
  • PATCH
GET
AllowHeadersarrayNo

The allowed headers for CORS requests.

stringNo

The allowed headers for CORS requests. You can specify an asterisk (*) or one or more values. Separate multiple values with commas (,). A value can contain only letters and digits. It cannot start or end with an underscore (_) or a hyphen (-). It can be up to 32 characters in length.

test_123
ExposeHeadersarrayNo

The headers that can be exposed.

stringNo

The headers that can be exposed. You can specify an asterisk (*) or one or more values. Separate multiple values with commas (,). A value can contain only letters and digits. It cannot start or end with an underscore (_) or a hyphen (-). It can be up to 32 characters in length.

test_123
AllowCredentialsstringNo

Specifies whether credentials can be carried in CORS requests. Valid values:

  • on: yes
  • off: no
on
MaxAgelongNo

The maximum cache time of preflight requests in the browser. Unit: seconds.

Valid values: -1 to 172800.

1000
RuleNamestringNo

The name of the forwarding rule. The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (_), and hyphens (-). The name must start with a letter.

rule-instance-test
PriorityintegerNo

The priority of the forwarding rule. Valid values: 1 to 10000. A lower value specifies a higher priority.

Note The priorities of the forwarding rules created for the same listener must be unique.
10

Response parameters

ParameterTypeDescriptionExample
object

Updates a forwarding rule.

JobIdstring

The asynchronous task ID.

72dcd26b-f12d-4c27-b3af-18f6aed5****
RequestIdstring

The request ID.

365F5378-41F6-4AE4-92F8-7FF34B540710

Examples

Sample success responses

JSONformat

{
  "JobId": "72dcd26b-f12d-4c27-b3af-18f6aed5****",
  "RequestId": "365F5378-41F6-4AE4-92F8-7FF34B540710"
}

Error codes

HTTP status codeError codeError messageDescription
400IncorrectStatus.RuleThe status of %s [%s] is incorrect.The status of %s [%s] is incorrect.
400OperationDenied.IpGroupCanNotUsedForMirrorActionThe operation is not allowed because of %s.The operation is not allowed because of %s.
400OperationDenied.SameGroupForForwardAndMirrorActionThe operation is not allowed because of %s.The operation is not allowed because of %s.
400OperationDenied.GRPCServerGroupThe operation is not allowed because of %s.The operation is not allowed because of %s.
400Conflict.PriorityThere is already %s having the same configuration with %s.There is already %s having the same configuration with %s.
400ResourceQuotaExceeded.ServerGroupAttachedNumThe quota of %s is exceeded for resource %s, usage %s/%s.The quota of %s is exceeded for resource %s, usage %s/%s.
400ResourceQuotaExceeded.LoadBalancerServersNumThe quota of %s is exceeded for resource %s, usage %s/%s.The quota of %s is exceeded for resource %s. Usage: %s/%s.
400ResourceQuotaExceeded.ServerAddedNumThe quota of %s is exceeded for resource %s, usage %s/%s.The quota of %s is exceeded for resource %s. Usage: %s/%s.
400QuotaExceeded.RuleWildcardsNumThe quota of %s is exceeded, usage %s/%s.The quota of %s is exceeded, usage %s/%s.
400QuotaExceeded.RuleMatchEvaluationsNumThe quota of %s is exceeded, usage %s/%s.The quota of %s is exceeded. Usage: %s/%s.
400QuotaExceeded.RuleActionsNumThe quota of %s is exceeded, usage %s/%s.The quota of %s is exceeded. Usage: %s/%s.
400Mismatch.ProtocolThe %s is mismatched for %s and %s.The %s is mismatched for %s and %s.
400Mismatch.VpcIdThe %s is mismatched for %s and %s.The %s is mismatched for %s and %s.
400OperationDenied.RewriteMissingForwardGroupThe operation is not allowed because of RewriteMissingForwardGroup.The operation is not allowed because rewrite is missing the forward group.
400ResourceInConfiguring.ListenerThe specified listener is being configured, please try again later.-
404ResourceNotFound.RuleThe specified resource %s is not found.The specified resource %s is not found.
404ResourceNotFound.ServerGroupThe specified resource %s is not found.The specified resource %s is not found.

For a list of error codes, visit the Service error codes.

Change history

Change timeSummary of changesOperation
2024-01-29The Error code has changedsee changesets
Change itemChange content
Error CodesThe Error code has changed.
    Error Codes 403 change
    delete Error Codes: 400
    delete Error Codes: 404
2024-01-18The Error code has changedsee changesets
Change itemChange content
Error CodesThe Error code has changed.
    Error Codes 400 change
    delete Error Codes: 404
    Added Error Codes: 403
2023-11-09The Error code has changedsee changesets
Change itemChange content
Error CodesThe Error code has changed.
    delete Error Codes: 400
    delete Error Codes: 404
2023-09-26The Error code has changedsee changesets
Change itemChange content
Error CodesThe Error code has changed.
    delete Error Codes: 400
    delete Error Codes: 404