Describe the forwarding rules of application load balancing - DescribeRules
Overview
Describe a specified forwarding rule or all forwarding rules under an application-type load balancer listener
💡 The Weight of the default rule stays in sync with the actual Weight of the target.
Definition
Public Parameters
Parameter Name | Type | Description Information | Required |
---|---|---|---|
Action | string | Corresponding API command name, the current API is DescribeRules . | Yes |
PublicKey | string | The user’s public key can be obtained from Console | Yes |
Signature | string | User signature generated based on public key and API command, see Signature Algorithm | Yes |
Request Parameters
Parameter Name | Type | Description Information | Required |
---|---|---|---|
Region | string | Region. See List of Regions and Availability Zones | Yes |
ProjectId | string | Project ID. If not filled in, the default project is used, sub-accounts must be filled in. Please refer to the GetProjectList interface. | Yes |
LoadBalancerId | string | ID of the Application Load Balancer Instance | Yes |
ListenerId | string | Listener’s ID | Yes |
RuleId | string | The ID of the application load balancing forwarding rule. If RuleId is specified, only this rule will be described. | No |
Response Field
Field Name | Type | Description Information | Required |
---|---|---|---|
RetCode | int | Return status code. If it is 0, it means successful return. If it is not 0, it means failure. | Yes |
Action | string | Operation command name. | Yes |
Message | string | Returns an error message, providing detailed description when RetCode is non-zero. | No |
Rules | array[Rule] | Forwarding Rule Information | Yes |
Data Model
Rule
Field Name | Type | Description Information | Required |
---|---|---|---|
RuleId | string | ID of the forwarding rule | No |
RuleConditions | array[RuleCondition] | Forwarding rule matching conditions. See RuleCondition for specific structure. | No |
RuleActions | array[RuleAction] | Forwarding action. For specific rules, see RuleAction. | No |
IsDefault | boolean | Is it the default forwarding rule? | No |
Pass | boolean | When the service node for forwarding is empty, should the rule be ignored? | No |
RuleCondition
Field Name | Type | Description Information | Required |
---|---|---|---|
Type | string | Match condition type. Limited enumeration values: Host, Path | Yes |
HostConfig | HostConfigSet | Domain-related configuration. Required when Type is Host. See HostConfigSet for specific structure. | No |
PathConfig | PathConfigSet | Configuration related to the path. Required when Type is Path. For detailed structure, see PathConfigSet. | No |
RuleAction
Field Name | Type | Description Information | Required |
---|---|---|---|
Type | string | Action type. Limited enumeration values: Forward, “InsertHeader”, “Cors”, “FixedResponse”, “RemoveHeader” | Yes |
ForwardConfig | ForwardConfigSet | Forward service node related configuration, corresponding to type value: “Forward”. For specific structure, see ForwardConfigSet. | No |
FixedResponseConfig | FixedResponseConfigSet | Static return related configuration, corresponding to type value: “FixedResponse”. For specific structure, see FixedResponseConfigSet | No |
InsertHeaderConfig | InsertHeaderConfigSet | Insert header-related configuration, corresponding to the type value: “InsertHeader”. For the specific structure, see InsertHeaderConfigSet. | No |
CorsConfig | CorsConfigSet | Configuration related to cross-domain, corresponding to type value: “Cors”. For specific structure, see CorsConfigSet. | No |
RemoveHeaderConfig | RemoveHeaderConfigSet | Delete header-related configuration, corresponding type value: “RemoveHeader”. For specific structure, see RemoveHeaderConfigSet | No |
Order | int | The execution order of forwarding rule actions ranges from 1 to 1000, with actions executed from smallest to largest value. The value cannot be empty or duplicated. Forward and FixedResponse types of actions do not consider Order and are executed last. | No |
ForwardConfigSet
Field Name | Type | Description Information | Required |
---|---|---|---|
Targets | array[ForwardTargetSet] | The backend service nodes to be forwarded. It is limited to the service node pool of the listener; the array length can be 0. See ForwardTargetSet for detailed structure. | Yes |
FixedResponseConfigSet
Field Name | Type | Description Information | Required |
---|---|---|---|
HttpCode | int | Returned HTTP response codes, only supporting 2xx, 4xx, 5xx numbers, where x is any digit. | Yes |
Content | string | Returned fixed content. Supports storing up to 1 KB, only supports printable characters within the ASCII code range ch >= 32 && ch < 127, excluding $. | No |
InsertHeaderConfigSet
Field Name | Type | Description Information | Required |
---|---|---|---|
Key | string | The inserted header field name must be 1 to 40 characters long and can include uppercase and lowercase letters a-z, numbers, underscores (_), and hyphens (-). The header field name cannot be reused in InsertHeader. The header field cannot use the following (case insensitive): x-real-ip, x-forwarded-for, x-forwarded-proto, x-forwarded-srcport, ucloud-alb-trace, connection, upgrade, content-length, transfer-encoding, keep-alive, te, host, cookie, remoteip, authority. | Yes |
Value | string | Inserted header field content. When ValueType is SystemDefined, the values are as follows: ClientSrcPort: Client port. ClientSrcIp: Client IP address. Protocol: Protocol of the client’s request (HTTP or HTTPS). RuleID: ID of the forwarding rule hit by the client’s request. ALBID: ALB ID. ALBPort: ALB port. When ValueType is UserDefined: You can customize the header field content, with a length limit of 1~128 characters, supporting printable characters in the ASCII range ch >= 32 && ch < 127, excluding $. When ValueType is ReferenceHeader: You can reference a specific field from the request header, with a length limit of 1~128 characters, supporting lowercase letters a~z, numbers, hyphens (-), and underscores (_). | Yes |
ValueType | string | Header field content type. Values: UserDefined: User specified. ReferenceHeader: Referencing a field from the user’s request header. SystemDefined: System defined. | Yes |
CorsConfigSet
Field Name | Type | Description Information | Required |
---|---|---|---|
AllowOrigin | array[string] | Allowed access source list. Supports configuring only one element , or configuring one or more values. A single value must start with http:// or https://, followed by a correct domain name or a first-level wildcard domain. (Example: http://.test.abc.example.com) A single value can be without a port or specify a port, with a port range: 1~65535. Supports up to 5 values. | Yes |
AllowHeaders | array[string] | List of Headers allowed for cross-origin. Supports configuration as * or one or more value entries. A single value entry can only contain uppercase and lowercase letters, numbers, and cannot start or end with an underscore (_) or hyphen (-), with a maximum length limit of 32 characters. Supports up to 20 values. | No |
ExposeHeaders | array[string] | List of allowed exposed Headers. Supports configuration as * or one or more value entries. A single value entry can only contain uppercase and lowercase letters, numbers, and cannot start or end with an underscore (_) or hyphen (-), with a maximum length of 32 characters. Supports up to 20 values. | No |
AllowMethods | array[string] | Select the allowed HTTP methods for cross-domain access. Values: GET POST PUT DELETE HEAD OPTIONS PATCH | No |
AllowCredentials | string | Allow carrying credential information. Values: on: Yes. off: No. | No |
MaxAge | int | The maximum cache time for preflight requests in the browser, in seconds. Value range: -1~172800. | No |
RemoveHeaderConfigSet
Field Name | Type | Description Information | Required |
---|---|---|---|
Key | string | The names of the header fields to be deleted, currently only the following default configured fields can be deleted: X-Real-IP, X-Forwarded-For, X-Forwarded-Proto, X-Forwarded-SrcPort | Yes |
ForwardTargetSet
Field Name | Type | Description Information | Required |
---|---|---|---|
Id | string | Identification ID of the service node | Yes |
Weight | int | Weight. Only valid when the load balancing algorithm of the listener is weighted round robin; Value range [1-100], default value is 1. | No |
HostConfigSet
Field Name | Type | Description Information | Required |
---|---|---|---|
Values | array[string] | Value. Currently only supports an array length of 1; The value must meet the conditions of the relevant matching method. | Yes |
MatchMode | string | Matching method. Limited enumeration values: Regular-Regular, Wildcard-Wildcard domain; Default value: Regular. | No |
PathConfigSet
Field Name | Type | Description Information | Required |
---|---|---|---|
Values | array[string] | Value. Currently only supports an array length of 1; The value must meet the conditions of the relevant matching method. | Yes |
Example
Request Example
https://api.genesissai.com/?Action=DescribeRules
&Region=cn-zj
&ProjectId=AONmKvcb
&LoadBalancerId=cCWlIOts
&ListenerId=NmxHLcXL
&RuleId=vNcPniOK
Response Example
{
"Action": "DescribeRulesResponse",
"RetCode": 0,
"Rules": [
{
"IsDefault": true,
"Pass": false,
"RuleActions": [
{
"InsertHeaderConfig": {
"Key": "test1",
"Value": "ClientSrcPort",
"ValueType": "SystemDefined"
},
"Order": 1,
"Type": "InsertHeader"
},
{
"InsertHeaderConfig": {
"Key": "test2",
"Value": "test2",
"ValueType": "UserDefined"
},
"Order": 2,
"Type": "InsertHeader"
},
{
"InsertHeaderConfig": {
"Key": "test3",
"Value": "test3",
"ValueType": "UserDefined"
},
"Order": 3,
"Type": "InsertHeader"
},
{
"Order": 4,
"RemoveHeaderConfig": {
"Key": "X-Forwarded-Proto"
},
"Type": "RemoveHeader"
},
{
"CorsConfig": {
"AllowCredentials": "on",
"AllowHeaders": [
"Origin",
"Accept",
"Accept"
],
"AllowMethods": [
"OPTIONS",
"HEAD",
"GET",
"POST",
"PUT",
"PATCH"
],
"AllowOrigin": [
"http://example.com",
"http://example.com",
"https://example.com:123",
"https://example.com:12313"
],
"ExposeHeaders": [
"User-Agent",
"Cache-Control"
],
"MaxAge": -1
},
"Order": 5,
"Type": "Cors"
},
{
"ForwardConfig": {
"Targets": [
{
"Id": "ars-XXXXX",
"Weight": 1
}
]
},
"Type": "Forward"
}
],
"RuleConditions": [
{
"HostConfig": {},
"PathConfig": {},
"Type": "cn-zj"
}
],
"RuleId": "GHOQYSjh"
}
]
}