There are more AWS SDK examples available in the AWS Doc SDK Examples
Use UpdateRoutingControlState with an AWS SDK
The following code examples show how to use UpdateRoutingControlState.
- Java
-
- SDK for Java 2.x
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. public static UpdateRoutingControlStateResponse updateRoutingControlState(List<ClusterEndpoint> clusterEndpoints, String routingControlArn, String routingControlState) { // As a best practice, we recommend choosing a random cluster endpoint to get or // set routing control states. // For more information, see // https://docs.aws.amazon.com/r53recovery/latest/dg/route53-arc-best-practices.html#route53-arc-best-practices.regional Collections.shuffle(clusterEndpoints); for (ClusterEndpoint clusterEndpoint : clusterEndpoints) { try { System.out.println(clusterEndpoint); Route53RecoveryClusterClient client = Route53RecoveryClusterClient.builder() .endpointOverride(URI.create(clusterEndpoint.endpoint())) .region(Region.of(clusterEndpoint.region())) .build(); return client.updateRoutingControlState( UpdateRoutingControlStateRequest.builder() .routingControlArn(routingControlArn).routingControlState(routingControlState).build()); } catch (Exception exception) { System.out.println(exception); } } return null; }-
For API details, see UpdateRoutingControlState in AWS SDK for Java 2.x API Reference.
-
- Python
-
- SDK for Python (Boto3)
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. import boto3 def create_recovery_client(cluster_endpoint): """ Creates a Boto3 Route 53 Application Recovery Controller client for the specified cluster endpoint URL and AWS Region. :param cluster_endpoint: The cluster endpoint URL and Region. :return: The Boto3 client. """ return boto3.client( "route53-recovery-cluster", endpoint_url=cluster_endpoint["Endpoint"], region_name=cluster_endpoint["Region"], ) def update_routing_control_state( routing_control_arn, cluster_endpoints, routing_control_state ): """ Updates the state of a routing control. Cluster endpoints are tried in sequence until the first successful response is received. :param routing_control_arn: The ARN of the routing control to update the state for. :param cluster_endpoints: The list of cluster endpoints to try. :param routing_control_state: The new routing control state. :return: The routing control update response. """ # As a best practice, we recommend choosing a random cluster endpoint to get or set routing control states. # For more information, see https://docs.aws.amazon.com/r53recovery/latest/dg/route53-arc-best-practices.html#route53-arc-best-practices.regional random.shuffle(cluster_endpoints) for cluster_endpoint in cluster_endpoints: try: recovery_client = create_recovery_client(cluster_endpoint) response = recovery_client.update_routing_control_state( RoutingControlArn=routing_control_arn, RoutingControlState=routing_control_state, ) return response except Exception as error: print(error)-
For API details, see UpdateRoutingControlState in AWS SDK for Python (Boto3) API Reference.
-
- SAP ABAP
-
- SDK for SAP ABAP
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. CONSTANTS cv_pfl TYPE /aws1/rt_profile_id VALUE 'ZCODE_DEMO'. DATA lo_exception TYPE REF TO /aws1/cx_rt_generic. DATA lo_session TYPE REF TO /aws1/cl_rt_session_base. DATA lo_client TYPE REF TO /aws1/if_r5v. DATA lt_endpoints TYPE TABLE OF string. DATA lv_endpoint TYPE string. DATA lv_region TYPE /aws1/rt_region_id. " Parse the comma-separated cluster endpoints " Expected format: "https://endpoint1.com|us-west-2,https://endpoint2.com|us-east-1" SPLIT iv_cluster_endpoints AT ',' INTO TABLE lt_endpoints. " As a best practice, shuffle cluster endpoints to distribute load " For more information, see https://docs.aws.amazon.com/r53recovery/latest/dg/route53-arc-best-practices.html#route53-arc-best-practices.regional " For simplicity, we'll try them in order (shuffling can be added if needed) " Try each endpoint in order LOOP AT lt_endpoints INTO lv_endpoint. TRY. " Parse endpoint and region from the format "url|region" DATA(lv_pos) = find( val = lv_endpoint sub = '|' ). IF lv_pos > 0. DATA(lv_url) = substring( val = lv_endpoint len = lv_pos ). lv_region = substring( val = lv_endpoint off = lv_pos + 1 ). ELSE. " If no region specified, use default lv_url = lv_endpoint. lv_region = 'us-east-1'. ENDIF. " Create session for this region lo_session = /aws1/cl_rt_session_aws=>create( cv_pfl ). " Create client with the specific endpoint lo_client = create_recovery_client( iv_endpoint = lv_url iv_region = lv_region io_session = lo_session ). " Try to update the routing control state oo_result = lo_client->updateroutingcontrolstate( iv_routingcontrolarn = iv_routing_control_arn iv_routingcontrolstate = iv_routing_control_state it_safetyrulestooverride = it_safety_rules_override ). " If successful, return the result RETURN. CATCH /aws1/cx_r5vendpttmpyunavailex INTO DATA(lo_endpoint_ex). " This endpoint is temporarily unavailable, try the next one lo_exception = lo_endpoint_ex. CONTINUE. CATCH /aws1/cx_r5vaccessdeniedex /aws1/cx_r5vconflictexception /aws1/cx_r5vinternalserverex /aws1/cx_r5vresourcenotfoundex /aws1/cx_r5vthrottlingex /aws1/cx_r5vvalidationex /aws1/cx_rt_generic INTO lo_exception. " For other errors, re-raise immediately RAISE EXCEPTION lo_exception. ENDTRY. ENDLOOP. " If we get here, all endpoints failed - re-raise the last exception IF lo_exception IS BOUND. RAISE EXCEPTION lo_exception. ENDIF.-
For API details, see UpdateRoutingControlState in AWS SDK for SAP ABAP API reference.
-