批量更新转发策略优先级
功能介绍
批量更新转发策略的优先级。
接口约束
该接口只用于更新action为REDIRECT_TO_POOL的独享型实例下的转发策略。
调用方法
请参见如何调用API。
URI
POST /v3/{project_id}/elb/l7policies/batch-update-priority
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
项目ID。 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
X-Auth-Token |
是 |
String |
IAM鉴权Token。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
l7policies |
否 |
Array of BatchUpdatePriorityRequestBody objects |
转发策略的结构体 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
id |
是 |
String |
待更新的l7policy的ID。 最小长度:1 最大长度:36 |
priority |
是 |
Integer |
转发策略的优先级。数字越小表示优先级越高,同一监听器下不允许重复。 当监听器的高级转发策略功能(enhance_l7policy_enable)开启后才会生效,未开启传入该字段会报错。 当action为REDIRECT_TO_LISTENER时,仅支持指定为0,优先级最高。 当关联的listener没有开启enhance_l7policy_enable,按原有policy的排序逻辑,自动排序。 各域名之间优先级独立,相同域名下,按path的compare_type排序, 精确>前缀>正则,匹配类型相同时,path的长度越长优先级越高。 若policy下只有域名rule,没有路径rule,默认path为前缀匹配/。 当关联的listener开启了enhance_l7policy_enable,且不传该字段, 则新创建的转发策略的优先级的值为:同一监听器下已有转发策略的优先级的最大值+1。 因此,若当前已有转发策略的优先级的最大值是10000,新创建会因超出取值范围10000而失败。 此时可通过传入指定priority,或调整原有policy的优先级来避免错误。 若监听器下没有转发策略,则新建的转发策略的优先级为1。 共享型负载均衡器下的转发策略不支持该字段。 最小值:1 最大值:10000 |
响应参数
状态码: 202
参数 |
参数类型 |
描述 |
---|---|---|
request_id |
String |
请求ID。 |
请求示例
批量更新转发策略优先级
POST https://{ELB_Endpoint}/v3/060576782980d5762f9ec014dd2f1148/elb/l7policies/batch-update-priority { "l7policies" : [ { "id" : "1fe93e12-6e07-47a9-8f81-3346c015601d", "priority" : 11 } ] }
响应示例
状态码: 202
Created
{ "request_id" : "e5c07525-1470-47b6-9b0c-567527a036aa" }
SDK代码示例
SDK代码示例如下。
批量更新转发策略优先级
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
package com.huaweicloud.sdk.test; import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.auth.BasicCredentials; import com.huaweicloud.sdk.core.exception.ConnectionException; import com.huaweicloud.sdk.core.exception.RequestTimeoutException; import com.huaweicloud.sdk.core.exception.ServiceResponseException; import com.huaweicloud.sdk.elb.v3.region.ElbRegion; import com.huaweicloud.sdk.elb.v3.*; import com.huaweicloud.sdk.elb.v3.model.*; import java.util.List; import java.util.ArrayList; public class BatchUpdatePoliciesPrioritySolution { public static void main(String[] args) { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment String ak = System.getenv("CLOUD_SDK_AK"); String sk = System.getenv("CLOUD_SDK_SK"); ICredential auth = new BasicCredentials() .withAk(ak) .withSk(sk); ElbClient client = ElbClient.newBuilder() .withCredential(auth) .withRegion(ElbRegion.valueOf("<YOUR REGION>")) .build(); BatchUpdatePoliciesPriorityRequest request = new BatchUpdatePoliciesPriorityRequest(); BatchUpdatePoliciesPriorityRequestBody body = new BatchUpdatePoliciesPriorityRequestBody(); List<BatchUpdatePriorityRequestBody> listbodyL7policies = new ArrayList<>(); listbodyL7policies.add( new BatchUpdatePriorityRequestBody() .withId("1fe93e12-6e07-47a9-8f81-3346c015601d") .withPriority(11) ); body.withL7policies(listbodyL7policies); request.withBody(body); try { BatchUpdatePoliciesPriorityResponse response = client.batchUpdatePoliciesPriority(request); System.out.println(response.toString()); } catch (ConnectionException e) { e.printStackTrace(); } catch (RequestTimeoutException e) { e.printStackTrace(); } catch (ServiceResponseException e) { e.printStackTrace(); System.out.println(e.getHttpStatusCode()); System.out.println(e.getRequestId()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); } } } |
批量更新转发策略优先级
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# coding: utf-8 from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkelb.v3.region.elb_region import ElbRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkelb.v3 import * if __name__ == "__main__": # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak = os.getenv("CLOUD_SDK_AK") sk = os.getenv("CLOUD_SDK_SK") credentials = BasicCredentials(ak, sk) \ client = ElbClient.new_builder() \ .with_credentials(credentials) \ .with_region(ElbRegion.value_of("<YOUR REGION>")) \ .build() try: request = BatchUpdatePoliciesPriorityRequest() listL7policiesbody = [ BatchUpdatePriorityRequestBody( id="1fe93e12-6e07-47a9-8f81-3346c015601d", priority=11 ) ] request.body = BatchUpdatePoliciesPriorityRequestBody( l7policies=listL7policiesbody ) response = client.batch_update_policies_priority(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) |
批量更新转发策略优先级
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" elb "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/elb/v3" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/elb/v3/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/elb/v3/region" ) func main() { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak := os.Getenv("CLOUD_SDK_AK") sk := os.Getenv("CLOUD_SDK_SK") auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). Build() client := elb.NewElbClient( elb.ElbClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.BatchUpdatePoliciesPriorityRequest{} var listL7policiesbody = []model.BatchUpdatePriorityRequestBody{ { Id: "1fe93e12-6e07-47a9-8f81-3346c015601d", Priority: int32(11), }, } request.Body = &model.BatchUpdatePoliciesPriorityRequestBody{ L7policies: &listL7policiesbody, } response, err := client.BatchUpdatePoliciesPriority(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } } |
更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。
状态码
状态码 |
描述 |
---|---|
202 |
Created |
错误码
请参见错误码。