Beispiele für die Verwendung der AWS CLI mit Auto Scaling Plans - AWS Command Line Interface

Beispiele für die Verwendung der AWS CLI mit Auto Scaling Plans

Die folgenden Codebeispiele zeigen, wie Sie Aktionen durchführen und gängige Szenarien implementieren, indem Sie die AWS Command Line Interface mit Auto Scaling Plans nutzen.

Aktionen sind Codeauszüge aus größeren Programmen und müssen im Kontext ausgeführt werden. Während Aktionen Ihnen zeigen, wie Sie einzelne Service-Funktionen aufrufen, können Sie Aktionen im Kontext der zugehörigen Szenarien anzeigen.

Jedes Beispiel enthält einen Link zum vollständigen Quellcode, wo Sie Anleitungen zum Einrichten und Ausführen des Codes im Kontext finden.

Themen

Aktionen

Das folgende Codebeispiel zeigt, wie create-scaling-plan verwendet wird.

AWS CLI

So erstellen Sie einen Skalierungsplan

Im folgenden Beispiel für create-scaling-plan wird ein Skalierungsplan namens my-scaling-plan mithilfe einer bereits erstellten JSON-Datei (mit dem Namen config.json) erstellt. Die Struktur des Skalierungsplans umfasst eine Skalierungsanleitung für eine Auto-Scaling-Gruppe mit dem Namen my-asg. Er gibt die TagFilters-Eigenschaft als Anwendungsquelle an und ermöglicht prädiktive Skalierung und dynamische Skalierung.

aws autoscaling-plans create-scaling-plan \ --scaling-plan-name my-scaling-plan \ --cli-input-json file://~/config.json

Inhalt der config.json-Datei:

{ "ApplicationSource": { "TagFilters": [ { "Key": "purpose", "Values": [ "my-application" ] } ] }, "ScalingInstructions": [ { "ServiceNamespace": "autoscaling", "ResourceId": "autoScalingGroup/my-asg", "ScalableDimension": "autoscaling:autoScalingGroup:DesiredCapacity", "ScheduledActionBufferTime": 300, "PredictiveScalingMaxCapacityBehavior": "SetForecastCapacityToMaxCapacity", "PredictiveScalingMode": "ForecastAndScale", "PredefinedLoadMetricSpecification": { "PredefinedLoadMetricType": "ASGTotalCPUUtilization" }, "ScalingPolicyUpdateBehavior": "ReplaceExternalPolicies", "MinCapacity": 1, "MaxCapacity": 4, "TargetTrackingConfigurations": [ { "PredefinedScalingMetricSpecification": { "PredefinedScalingMetricType": "ASGAverageCPUUtilization" }, "TargetValue": 50 } ] } ] }

Ausgabe:

{ "ScalingPlanVersion": 1 }

Weitere Informationen finden Sie im Benutzerhandbuch zu AWS Auto Scaling.

Das folgende Codebeispiel zeigt, wie delete-scaling-plan verwendet wird.

AWS CLI

So löschen Sie einen Skalierungsplan

Im folgenden Beispiel für delete-scaling-plan wird der angegebene Skalierungsplan gelöscht.

aws autoscaling-plans delete-scaling-plan \ --scaling-plan-name my-scaling-plan \ --scaling-plan-version 1

Mit diesem Befehl wird keine Ausgabe zurückgegeben.

Weitere Informationen finden Sie im Benutzerhandbuch zu AWS Auto Scaling.

Das folgende Codebeispiel zeigt, wie describe-scaling-plan-resources verwendet wird.

AWS CLI

So beschreiben Sie die skalierbaren Ressourcen für einen Skalierungsplan

Im folgenden Beispiel für describe-scaling-plan-resources werden Details zu der einzelnen skalierbaren Ressource (einer Auto-Scaling-Gruppe) angezeigt, die dem angegebenen Skalierungsplan zugeordnet ist.

aws autoscaling-plans describe-scaling-plan-resources \ --scaling-plan-name my-scaling-plan \ --scaling-plan-version 1

Ausgabe:

{ "ScalingPlanResources": [ { "ScalableDimension": "autoscaling:autoScalingGroup:DesiredCapacity", "ScalingPlanVersion": 1, "ResourceId": "autoScalingGroup/my-asg", "ScalingStatusCode": "Active", "ScalingStatusMessage": "Target tracking scaling policies have been applied to the resource.", "ScalingPolicies": [ { "PolicyName": "AutoScaling-my-asg-b1ab65ae-4be3-4634-bd64-c7471662b251", "PolicyType": "TargetTrackingScaling", "TargetTrackingConfiguration": { "PredefinedScalingMetricSpecification": { "PredefinedScalingMetricType": "ALBRequestCountPerTarget", "ResourceLabel": "app/my-alb/f37c06a68c1748aa/targetgroup/my-target-group/6d4ea56ca2d6a18d" }, "TargetValue": 40.0 } } ], "ServiceNamespace": "autoscaling", "ScalingPlanName": "my-scaling-plan" } ] }

Weitere Informationen finden Sie unter Was ist AWS Auto Scaling? im Benutzerhandbuch zu AWS Auto Scaling.

Das folgende Codebeispiel zeigt, wie describe-scaling-plans verwendet wird.

AWS CLI

So beschreiben Sie einen Skalierungsplan

Im folgenden Beispiel für describe-scaling-plans werden die Details des angegebenen Skalierungsplans angezeigt.

aws autoscaling-plans describe-scaling-plans \ --scaling-plan-names scaling-plan-with-asg-and-ddb

Ausgabe:

{ "ScalingPlans": [ { "LastMutatingRequestTime": 1565388443.963, "ScalingPlanVersion": 1, "CreationTime": 1565388443.963, "ScalingInstructions": [ { "ScalingPolicyUpdateBehavior": "ReplaceExternalPolicies", "ScalableDimension": "autoscaling:autoScalingGroup:DesiredCapacity", "TargetTrackingConfigurations": [ { "PredefinedScalingMetricSpecification": { "PredefinedScalingMetricType": "ASGAverageCPUUtilization" }, "TargetValue": 50.0, "EstimatedInstanceWarmup": 300, "DisableScaleIn": false } ], "ResourceId": "autoScalingGroup/my-asg", "DisableDynamicScaling": false, "MinCapacity": 1, "ServiceNamespace": "autoscaling", "MaxCapacity": 10 }, { "ScalingPolicyUpdateBehavior": "ReplaceExternalPolicies", "ScalableDimension": "dynamodb:table:ReadCapacityUnits", "TargetTrackingConfigurations": [ { "PredefinedScalingMetricSpecification": { "PredefinedScalingMetricType": "DynamoDBReadCapacityUtilization" }, "TargetValue": 50.0, "ScaleInCooldown": 60, "DisableScaleIn": false, "ScaleOutCooldown": 60 } ], "ResourceId": "table/my-table", "DisableDynamicScaling": false, "MinCapacity": 5, "ServiceNamespace": "dynamodb", "MaxCapacity": 10000 }, { "ScalingPolicyUpdateBehavior": "ReplaceExternalPolicies", "ScalableDimension": "dynamodb:table:WriteCapacityUnits", "TargetTrackingConfigurations": [ { "PredefinedScalingMetricSpecification": { "PredefinedScalingMetricType": "DynamoDBWriteCapacityUtilization" }, "TargetValue": 50.0, "ScaleInCooldown": 60, "DisableScaleIn": false, "ScaleOutCooldown": 60 } ], "ResourceId": "table/my-table", "DisableDynamicScaling": false, "MinCapacity": 5, "ServiceNamespace": "dynamodb", "MaxCapacity": 10000 } ], "ApplicationSource": { "TagFilters": [ { "Values": [ "my-application-id" ], "Key": "application" } ] }, "StatusStartTime": 1565388455.836, "ScalingPlanName": "scaling-plan-with-asg-and-ddb", "StatusMessage": "Scaling plan has been created and applied to all resources.", "StatusCode": "Active" } ] }

Weitere Informationen finden Sie unter Was ist AWS Auto Scaling? im Benutzerhandbuch zu AWS Auto Scaling.

Das folgende Codebeispiel zeigt, wie get-scaling-plan-resource-forecast-data verwendet wird.

AWS CLI

So rufen Sie Lastprognosedaten ab

In diesem Beispiel werden Lastprognosedaten für eine skalierbare Ressource (eine Auto-Scaling-Gruppe) abgerufen, die dem angegebenen Skalierungsplan zugeordnet ist.

aws autoscaling-plans get-scaling-plan-resource-forecast-data \ --scaling-plan-name my-scaling-plan \ --scaling-plan-version 1 \ --service-namespace "autoscaling" \ --resource-id autoScalingGroup/my-asg \ --scalable-dimension "autoscaling:autoScalingGroup:DesiredCapacity" \ --forecast-data-type "LoadForecast" \ --start-time "2019-08-30T00:00:00Z" \ --end-time "2019-09-06T00:00:00Z"

Ausgabe:

{ "Datapoints": [...] }

Weitere Informationen finden Sie unter Was ist AWS Auto Scaling? im Benutzerhandbuch zu AWS Auto Scaling.

Das folgende Codebeispiel zeigt, wie update-scaling-plan verwendet wird.

AWS CLI

So aktualisieren Sie einen Skalierungsplan

Im folgenden Beispiel für update-scaling-plan wird die Skalierungsmetrik für eine Auto-Scaling-Gruppe im angegebenen Skalierungsplan geändert.

aws autoscaling-plans update-scaling-plan \ --scaling-plan-name my-scaling-plan \ --scaling-plan-version 1 \ --scaling-instructions '{"ScalableDimension":"autoscaling:autoScalingGroup:DesiredCapacity","ResourceId":"autoScalingGroup/my-asg","ServiceNamespace":"autoscaling","TargetTrackingConfigurations":[{"PredefinedScalingMetricSpecification": {"PredefinedScalingMetricType":"ALBRequestCountPerTarget","ResourceLabel":"app/my-alb/f37c06a68c1748aa/targetgroup/my-target-group/6d4ea56ca2d6a18d"},"TargetValue":40.0}],"MinCapacity": 1,"MaxCapacity": 10}'

Mit diesem Befehl wird keine Ausgabe zurückgegeben.

Weitere Informationen finden Sie unter Was ist AWS Auto Scaling? im Benutzerhandbuch zu AWS Auto Scaling.