use of com.amazonaws.services.applicationautoscaling.model.DescribeScalableTargetsRequest in project aws-doc-sdk-examples by awsdocs.
the class DisableDynamoDBAutoscaling method main.
public static void main(String[] args) {
ServiceNamespace ns = ServiceNamespace.Dynamodb;
ScalableDimension tableWCUs = ScalableDimension.DynamodbTableWriteCapacityUnits;
String resourceID = "table/TestTable";
// Delete the scaling policy
DeleteScalingPolicyRequest delSPRequest = new DeleteScalingPolicyRequest().withServiceNamespace(ns).withScalableDimension(tableWCUs).withResourceId(resourceID).withPolicyName("MyScalingPolicy");
try {
aaClient.deleteScalingPolicy(delSPRequest);
} catch (Exception e) {
System.err.println("Unable to delete scaling policy: ");
System.err.println(e.getMessage());
}
// Verify that the scaling policy was deleted
DescribeScalingPoliciesRequest descSPRequest = new DescribeScalingPoliciesRequest().withServiceNamespace(ns).withScalableDimension(tableWCUs).withResourceId(resourceID);
try {
DescribeScalingPoliciesResult dspResult = aaClient.describeScalingPolicies(descSPRequest);
System.out.println("DescribeScalingPolicies result: ");
System.out.println(dspResult);
} catch (Exception e) {
e.printStackTrace();
System.err.println("Unable to describe scaling policy: ");
System.err.println(e.getMessage());
}
System.out.println();
// Remove the scalable target
DeregisterScalableTargetRequest delSTRequest = new DeregisterScalableTargetRequest().withServiceNamespace(ns).withScalableDimension(tableWCUs).withResourceId(resourceID);
try {
aaClient.deregisterScalableTarget(delSTRequest);
} catch (Exception e) {
System.err.println("Unable to deregister scalable target: ");
System.err.println(e.getMessage());
}
// Verify that the scalable target was removed
DescribeScalableTargetsRequest dscRequest = new DescribeScalableTargetsRequest().withServiceNamespace(ns).withScalableDimension(tableWCUs).withResourceIds(resourceID);
try {
DescribeScalableTargetsResult dsaResult = aaClient.describeScalableTargets(dscRequest);
System.out.println("DescribeScalableTargets result: ");
System.out.println(dsaResult);
System.out.println();
} catch (Exception e) {
System.err.println("Unable to describe scalable target: ");
System.err.println(e.getMessage());
}
}
use of com.amazonaws.services.applicationautoscaling.model.DescribeScalableTargetsRequest in project aws-doc-sdk-examples by awsdocs.
the class EnableDynamoDBAutoscaling method main.
public static void main(String[] args) {
ServiceNamespace ns = ServiceNamespace.Dynamodb;
ScalableDimension tableWCUs = ScalableDimension.DynamodbTableWriteCapacityUnits;
String resourceID = "table/TestTable";
// Define the scalable target
RegisterScalableTargetRequest rstRequest = new RegisterScalableTargetRequest().withServiceNamespace(ns).withResourceId(resourceID).withScalableDimension(tableWCUs).withMinCapacity(5).withMaxCapacity(10).withRoleARN("SERVICE_ROLE_ARN_GOES_HERE");
try {
aaClient.registerScalableTarget(rstRequest);
} catch (Exception e) {
System.err.println("Unable to register scalable target: ");
System.err.println(e.getMessage());
}
// Verify that the target was created
DescribeScalableTargetsRequest dscRequest = new DescribeScalableTargetsRequest().withServiceNamespace(ns).withScalableDimension(tableWCUs).withResourceIds(resourceID);
try {
DescribeScalableTargetsResult dsaResult = aaClient.describeScalableTargets(dscRequest);
System.out.println("DescribeScalableTargets result: ");
System.out.println(dsaResult);
System.out.println();
} catch (Exception e) {
System.err.println("Unable to describe scalable target: ");
System.err.println(e.getMessage());
}
System.out.println();
// Configure a scaling policy
TargetTrackingScalingPolicyConfiguration targetTrackingScalingPolicyConfiguration = new TargetTrackingScalingPolicyConfiguration().withPredefinedMetricSpecification(new PredefinedMetricSpecification().withPredefinedMetricType(MetricType.DynamoDBWriteCapacityUtilization)).withTargetValue(50.0).withScaleInCooldown(60).withScaleOutCooldown(60);
// Create the scaling policy, based on your configuration
PutScalingPolicyRequest pspRequest = new PutScalingPolicyRequest().withServiceNamespace(ns).withScalableDimension(tableWCUs).withResourceId(resourceID).withPolicyName("MyScalingPolicy").withPolicyType(PolicyType.TargetTrackingScaling).withTargetTrackingScalingPolicyConfiguration(targetTrackingScalingPolicyConfiguration);
try {
aaClient.putScalingPolicy(pspRequest);
} catch (Exception e) {
System.err.println("Unable to put scaling policy: ");
System.err.println(e.getMessage());
}
// Verify that the scaling policy was created
DescribeScalingPoliciesRequest dspRequest = new DescribeScalingPoliciesRequest().withServiceNamespace(ns).withScalableDimension(tableWCUs).withResourceId(resourceID);
try {
DescribeScalingPoliciesResult dspResult = aaClient.describeScalingPolicies(dspRequest);
System.out.println("DescribeScalingPolicies result: ");
System.out.println(dspResult);
} catch (Exception e) {
e.printStackTrace();
System.err.println("Unable to describe scaling policy: ");
System.err.println(e.getMessage());
}
}
use of com.amazonaws.services.applicationautoscaling.model.DescribeScalableTargetsRequest in project titus-control-plane by Netflix.
the class AWSAppAutoScalingClient method getScalableTargetsForJob.
@Override
public Observable<AutoScalableTarget> getScalableTargetsForJob(String jobId) {
DescribeScalableTargetsRequest describeScalableTargetsRequest = new DescribeScalableTargetsRequest();
describeScalableTargetsRequest.setServiceNamespace(SERVICE_NAMESPACE);
describeScalableTargetsRequest.setScalableDimension(SCALABLE_DIMENSION);
describeScalableTargetsRequest.setResourceIds(Collections.singletonList(AWSAppAutoScalingUtil.buildGatewayResourceId(jobId, awsAppScalingConfig.getAWSGatewayEndpointPrefix(), awsAppScalingConfig.getRegion(), awsAppScalingConfig.getAWSGatewayEndpointTargetStage())));
return RetryWrapper.wrapWithExponentialRetry(String.format("getScalableTargetsForJob for job %s", jobId), Observable.create(emitter -> awsAppAutoScalingClientAsync.describeScalableTargetsAsync(describeScalableTargetsRequest, new AsyncHandler<DescribeScalableTargetsRequest, DescribeScalableTargetsResult>() {
@Override
public void onError(Exception exception) {
logger.error("Get scalable target exception for {} - {}", jobId, exception.getMessage());
awsAppAutoScalingMetrics.registerAwsGetTargetError(exception);
emitter.onError(exception);
}
@Override
public void onSuccess(DescribeScalableTargetsRequest request, DescribeScalableTargetsResult describeScalableTargetsResult) {
awsAppAutoScalingMetrics.registerAwsGetTargetSuccess();
List<ScalableTarget> scalableTargets = describeScalableTargetsResult.getScalableTargets();
scalableTargets.stream().map(AWSAppAutoScalingUtil::toAutoScalableTarget).forEach(emitter::onNext);
emitter.onCompleted();
}
}), Emitter.BackpressureMode.NONE));
}
Aggregations