Weitere AWS SDK-Beispiele sind im GitHub Repo AWS Doc SDK Examples
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verwendung CreateAutoScalingGroup mit einem AWS SDK oder CLI
Die folgenden Code-Beispiele zeigen, wie CreateAutoScalingGroup verwendet wird.
Aktionsbeispiele sind Codeauszüge aus größeren Programmen und müssen im Kontext ausgeführt werden. Sie können diese Aktion in den folgenden Codebeispielen im Kontext sehen:
- .NET
-
- SDK for .NET (v4)
-
Anmerkung
Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-
einrichten und ausführen. /// <summary> /// Create a new Amazon EC2 Auto Scaling group. /// </summary> /// <param name="groupName">The name to use for the new Auto Scaling /// group.</param> /// <param name="launchTemplateName">The name of the Amazon EC2 Auto Scaling /// launch template to use to create instances in the group.</param> /// <returns>A Boolean value indicating the success of the action.</returns> public async Task<bool> CreateAutoScalingGroupAsync( string groupName, string launchTemplateName, string availabilityZone) { var templateSpecification = new LaunchTemplateSpecification { LaunchTemplateName = launchTemplateName, }; var zoneList = new List<string> { availabilityZone, }; var request = new CreateAutoScalingGroupRequest { AutoScalingGroupName = groupName, AvailabilityZones = zoneList, LaunchTemplate = templateSpecification, MaxSize = 6, MinSize = 1 }; try { var response = await _amazonAutoScaling.CreateAutoScalingGroupAsync(request); Console.WriteLine($"{groupName} Auto Scaling Group created"); return response.HttpStatusCode == System.Net.HttpStatusCode.OK; } catch (AlreadyExistsException) { Console.WriteLine($"{groupName} Auto Scaling Group already exists."); return true; } }-
Einzelheiten zur API finden Sie CreateAutoScalingGroupin der AWS SDK for .NET API-Referenz.
-
- C++
-
- SDK für C++
-
Anmerkung
Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-
einrichten und ausführen. Aws::Client::ClientConfiguration clientConfig; // Optional: Set to the AWS Region (overrides config file). // clientConfig.region = "us-east-1"; Aws::AutoScaling::AutoScalingClient autoScalingClient(clientConfig); Aws::AutoScaling::Model::CreateAutoScalingGroupRequest request; request.SetAutoScalingGroupName(groupName); Aws::Vector<Aws::String> availabilityGroupZones; availabilityGroupZones.push_back( availabilityZones[availabilityZoneChoice - 1].GetZoneName()); request.SetAvailabilityZones(availabilityGroupZones); request.SetMaxSize(1); request.SetMinSize(1); Aws::AutoScaling::Model::LaunchTemplateSpecification launchTemplateSpecification; launchTemplateSpecification.SetLaunchTemplateName(templateName); request.SetLaunchTemplate(launchTemplateSpecification); Aws::AutoScaling::Model::CreateAutoScalingGroupOutcome outcome = autoScalingClient.CreateAutoScalingGroup(request); if (outcome.IsSuccess()) { std::cout << "Created Auto Scaling group '" << groupName << "'..." << std::endl; } else if (outcome.GetError().GetErrorType() == Aws::AutoScaling::AutoScalingErrors::ALREADY_EXISTS_FAULT) { std::cout << "Auto Scaling group '" << groupName << "' already exists." << std::endl; } else { std::cerr << "Error with AutoScaling::CreateAutoScalingGroup. " << outcome.GetError().GetMessage() << std::endl; }-
Einzelheiten zur API finden Sie CreateAutoScalingGroupin der AWS SDK für C++ API-Referenz.
-
- CLI
-
- AWS CLI
-
Beispiel 1: So erstellen Sie eine Auto-Scaling-Gruppe
Im folgenden Beispiel für
create-auto-scaling-groupwird eine Auto-Scaling-Gruppe in Subnetzen in mehreren Availability Zones innerhalb einer Region erstellt. Die Instances werden mit der Standardversion der angegebenen Startvorlage gestartet. Bitte beachten Sie, dass für die meisten anderen Einstellungen, wie z. B. die Beendigungsrichtlinien und die Konfiguration der Zustandsprüfung, die Standardeinstellungen verwendet werden.aws autoscaling create-auto-scaling-group \ --auto-scaling-group-namemy-asg\ --launch-templateLaunchTemplateId=lt-1234567890abcde12\ --min-size1\ --max-size5\ --vpc-zone-identifier"subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782"Mit diesem Befehl wird keine Ausgabe zurückgegeben.
Weitere Informationen finden Sie unter Auto Scaling Scaling-Gruppen im Amazon EC2 Auto Scaling Scaling-Benutzerhandbuch.
Beispiel 2: So fügen Sie einen Application Load Balancer, einen Network Load Balancer oder einen Gateway Load Balancer hinzu
Dieses Beispiel gibt den ARN einer Zielgruppe für einen Load Balancer an, der den erwarteten Datenverkehr unterstützt. Der Typ der Zustandsprüfung gibt
ELBan, sodass die Auto-Scaling-Gruppe eine Instance ersetzt, wenn Elastic Load Balancing diese als fehlerhaft meldet. Der Befehl definiert außerdem eine Wartefrist für die Zustandsprüfung von600Sekunden. Die Wartefrist trägt dazu bei, ein vorzeitiges Beenden neu gestarteter Instances zu verhindern.aws autoscaling create-auto-scaling-group \ --auto-scaling-group-namemy-asg\ --launch-templateLaunchTemplateId=lt-1234567890abcde12\ --target-group-arnsarn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/943f017f100becff\ --health-check-typeELB\ --health-check-grace-period600\ --min-size1\ --max-size5\ --vpc-zone-identifier"subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782"Mit diesem Befehl wird keine Ausgabe zurückgegeben.
Weitere Informationen finden Sie unter Elastic Load Balancing und Amazon EC2 Auto Scaling im Amazon EC2 Auto Scaling Scaling-Benutzerhandbuch.
Beispiel 3: So geben Sie eine Platzierungsgruppe an und verwenden die neueste Version der Startvorlage
Dieses Beispiel startet Instances in einer Platzierungsgruppe innerhalb einer einzelnen Availability Zone. Dies kann für Gruppen mit niedriger Latenz und HPC-Workloads nützlich sein. Außerdem werden in diesem Beispiel die minimale Größe, die maximale Größe und die gewünschte Kapazität der Gruppe angegeben.
aws autoscaling create-auto-scaling-group \ --auto-scaling-group-namemy-asg\ --launch-template LaunchTemplateId=lt-1234567890abcde12,Version='$Latest' \ --min-size 1 \ --max-size 5 \ --desired-capacity3\ --placement-groupmy-placement-group\ --vpc-zone-identifier"subnet-6194ea3b"Mit diesem Befehl wird keine Ausgabe zurückgegeben.
Weitere Informationen finden Sie unter Platzierungsgruppen im EC2 Amazon-Benutzerhandbuch für Linux-Instances.
Beispiel 4: So geben Sie eine Auto-Scaling-Gruppe mit einer einzelnen Instance an und verwenden eine bestimmte Version der Startvorlage
Dieses Beispiel erstellt eine Auto-Scaling-Gruppe mit einer minimalen und maximalen Kapazität von
1, um sicherzustellen, dass eine Instance ausgeführt wird. Der Befehl gibt außerdem Version 1 einer Startvorlage an, in der die ID einer vorhandenen ENI angegeben ist. Wenn Sie eine Startvorlage verwenden, die eine vorhandene ENI für eth0 angibt, müssen Sie für die Auto-Scaling-Gruppe eine Availability Zone angeben, die mit der Netzwerkschnittstelle übereinstimmt, ohne in der Anforderung zusätzlich eine Subnetz-ID anzugeben.aws autoscaling create-auto-scaling-group \ --auto-scaling-group-namemy-asg-single-instance\ --launch-template LaunchTemplateName=my-template-for-auto-scaling,Version='1' \ --min-size1\ --max-size 1 \ --availability-zonesus-west-2aMit diesem Befehl wird keine Ausgabe zurückgegeben.
Weitere Informationen finden Sie unter Auto Scaling Scaling-Gruppen im Amazon EC2 Auto Scaling Scaling-Benutzerhandbuch.
Beispiel 5: So geben Sie eine andere Beendigungsrichtlinie an
In diesem Beispiel wird eine Auto-Scaling-Gruppe mithilfe einer Startkonfiguration erstellt und die Beendigungsrichtlinie so festgelegt, dass die ältesten Instances zuerst beendet werden. Der Befehl weist außerdem der Gruppe und ihren Instances ein Tag mit dem Schlüssel
Roleund dem WertWebServerzu.aws autoscaling create-auto-scaling-group \ --auto-scaling-group-namemy-asg\ --launch-configuration-namemy-lc\ --min-size1\ --max-size5\ --termination-policies"OldestInstance"\ --tags"ResourceId=my-asg,ResourceType=auto-scaling-group,Key=Role,Value=WebServer,PropagateAtLaunch=true"\ --vpc-zone-identifier"subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782"Mit diesem Befehl wird keine Ausgabe zurückgegeben.
Weitere Informationen finden Sie unter Arbeiten mit Amazon EC2 Auto Scaling Scaling-Kündigungsrichtlinien im Amazon EC2 Auto Scaling Scaling-Benutzerhandbuch.
Beispiel 6: So geben Sie einen Start-Lebenszyklus-Hook an
Das folgende Beispiel erstellt eine Auto-Scaling-Gruppe mit einem Lebenszyklus-Hook, der eine benutzerdefinierte Aktion beim Starten einer Instance unterstützt.
aws autoscaling create-auto-scaling-group \ --cli-input-jsonfile://~/config.jsonInhalt der
config.json-Datei:{ "AutoScalingGroupName": "my-asg", "LaunchTemplate": { "LaunchTemplateId": "lt-1234567890abcde12" }, "LifecycleHookSpecificationList": [{ "LifecycleHookName": "my-launch-hook", "LifecycleTransition": "autoscaling:EC2_INSTANCE_LAUNCHING", "NotificationTargetARN": "arn:aws:sqs:us-west-2:123456789012:my-sqs-queue", "RoleARN": "arn:aws:iam::123456789012:role/my-notification-role", "NotificationMetadata": "SQS message metadata", "HeartbeatTimeout": 4800, "DefaultResult": "ABANDON" }], "MinSize": 1, "MaxSize": 5, "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782", "Tags": [{ "ResourceType": "auto-scaling-group", "ResourceId": "my-asg", "PropagateAtLaunch": true, "Value": "test", "Key": "environment" }] }Mit diesem Befehl wird keine Ausgabe zurückgegeben.
Weitere Informationen finden Sie unter Amazon EC2 Auto Scaling Lifecycle Hooks im Amazon EC2 Auto Scaling Scaling-Benutzerhandbuch.
Beispiel 7: So geben Sie einen Beendigungs-Lebenszyklus-Hook an
Das folgende Beispiel erstellt eine Auto-Scaling-Gruppe mit einem Lebenszyklus-Hook, der eine benutzerdefinierte Aktion beim Beenden einer Instance unterstützt.
aws autoscaling create-auto-scaling-group \ --cli-input-jsonfile://~/config.jsonInhalt von
config.json:{ "AutoScalingGroupName": "my-asg", "LaunchTemplate": { "LaunchTemplateId": "lt-1234567890abcde12" }, "LifecycleHookSpecificationList": [{ "LifecycleHookName": "my-termination-hook", "LifecycleTransition": "autoscaling:EC2_INSTANCE_TERMINATING", "HeartbeatTimeout": 120, "DefaultResult": "CONTINUE" }], "MinSize": 1, "MaxSize": 5, "TargetGroupARNs": [ "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067" ], "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" }Mit diesem Befehl wird keine Ausgabe zurückgegeben.
Weitere Informationen finden Sie unter Amazon EC2 Auto Scaling Lifecycle Hooks im Amazon EC2 Auto Scaling Scaling-Benutzerhandbuch.
Beispiel 8: So geben Sie eine benutzerdefinierte Beendigungsrichtlinie an
In diesem Beispiel wird eine Auto Scaling-Gruppe erstellt, die eine benutzerdefinierte Richtlinie zur Beendigung von Lambda-Funktionen spezifiziert, die Amazon EC2 Auto Scaling mitteilt, welche Instances sicher im großen Maßstab beendet werden können.
aws autoscaling create-auto-scaling-group \ --auto-scaling-group-namemy-asg-single-instance\ --launch-templateLaunchTemplateName=my-template-for-auto-scaling\ --min-size1\ --max-size5\ --termination-policies"arn:aws:lambda:us-west-2:123456789012:function:HelloFunction:prod"\ --vpc-zone-identifier"subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782"Mit diesem Befehl wird keine Ausgabe zurückgegeben.
Weitere Informationen finden Sie unter Erstellen einer benutzerdefinierten Kündigungsrichtlinie mit Lambda im Amazon EC2 Auto Scaling Scaling-Benutzerhandbuch.
-
Einzelheiten zur API finden Sie unter CreateAutoScalingGroup AWS CLI
Befehlsreferenz.
-
- Java
-
- SDK für Java 2.x
-
Anmerkung
Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-
einrichten und ausführen. import software.amazon.awssdk.core.waiters.WaiterResponse; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.autoscaling.AutoScalingClient; import software.amazon.awssdk.services.autoscaling.model.AutoScalingException; import software.amazon.awssdk.services.autoscaling.model.CreateAutoScalingGroupRequest; import software.amazon.awssdk.services.autoscaling.model.DescribeAutoScalingGroupsRequest; import software.amazon.awssdk.services.autoscaling.model.DescribeAutoScalingGroupsResponse; import software.amazon.awssdk.services.autoscaling.model.LaunchTemplateSpecification; import software.amazon.awssdk.services.autoscaling.waiters.AutoScalingWaiter; /** * Before running this SDK for Java (v2) code example, set up your development * environment, including your credentials. * * For more information, see the following documentation: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class CreateAutoScalingGroup { public static void main(String[] args) { final String usage = """ Usage: <groupName> <launchTemplateName> <serviceLinkedRoleARN> <vpcZoneId> Where: groupName - The name of the Auto Scaling group. launchTemplateName - The name of the launch template.\s vpcZoneId - A subnet Id for a virtual private cloud (VPC) where instances in the Auto Scaling group can be created. """; if (args.length != 3) { System.out.println(usage); System.exit(1); } String groupName = args[0]; String launchTemplateName = args[1]; String vpcZoneId = args[2]; AutoScalingClient autoScalingClient = AutoScalingClient.builder() .region(Region.US_EAST_1) .build(); createAutoScalingGroup(autoScalingClient, groupName, launchTemplateName, vpcZoneId); autoScalingClient.close(); } public static void createAutoScalingGroup(AutoScalingClient autoScalingClient, String groupName, String launchTemplateName, String vpcZoneId) { try { AutoScalingWaiter waiter = autoScalingClient.waiter(); LaunchTemplateSpecification templateSpecification = LaunchTemplateSpecification.builder() .launchTemplateName(launchTemplateName) .build(); CreateAutoScalingGroupRequest request = CreateAutoScalingGroupRequest.builder() .autoScalingGroupName(groupName) .availabilityZones("us-east-1a") .launchTemplate(templateSpecification) .maxSize(1) .minSize(1) .vpcZoneIdentifier(vpcZoneId) .build(); autoScalingClient.createAutoScalingGroup(request); DescribeAutoScalingGroupsRequest groupsRequest = DescribeAutoScalingGroupsRequest.builder() .autoScalingGroupNames(groupName) .build(); WaiterResponse<DescribeAutoScalingGroupsResponse> waiterResponse = waiter .waitUntilGroupExists(groupsRequest); waiterResponse.matched().response().ifPresent(System.out::println); System.out.println("Auto Scaling Group created"); } catch (AutoScalingException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } }-
Einzelheiten zur API finden Sie CreateAutoScalingGroupin der AWS SDK for Java 2.x API-Referenz.
-
- Kotlin
-
- SDK für Kotlin
-
Anmerkung
Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-
einrichten und ausführen. suspend fun createAutoScalingGroup( groupName: String, launchTemplateNameVal: String, serviceLinkedRoleARNVal: String, vpcZoneIdVal: String, ) { val templateSpecification = LaunchTemplateSpecification { launchTemplateName = launchTemplateNameVal } val request = CreateAutoScalingGroupRequest { autoScalingGroupName = groupName availabilityZones = listOf("us-east-1a") launchTemplate = templateSpecification maxSize = 1 minSize = 1 vpcZoneIdentifier = vpcZoneIdVal serviceLinkedRoleArn = serviceLinkedRoleARNVal } // This object is required for the waiter call. val groupsRequestWaiter = DescribeAutoScalingGroupsRequest { autoScalingGroupNames = listOf(groupName) } AutoScalingClient { region = "us-east-1" }.use { autoScalingClient -> autoScalingClient.createAutoScalingGroup(request) autoScalingClient.waitUntilGroupExists(groupsRequestWaiter) println("$groupName was created!") } }-
Einzelheiten zur API finden Sie CreateAutoScalingGroup
in der API-Referenz zum AWS SDK für Kotlin.
-
- PHP
-
- SDK für PHP
-
Anmerkung
Es gibt noch mehr dazu. GitHub Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-
einrichten und ausführen. public function createAutoScalingGroup( $autoScalingGroupName, $availabilityZones, $minSize, $maxSize, $launchTemplateId ) { return $this->autoScalingClient->createAutoScalingGroup([ 'AutoScalingGroupName' => $autoScalingGroupName, 'AvailabilityZones' => $availabilityZones, 'MinSize' => $minSize, 'MaxSize' => $maxSize, 'LaunchTemplate' => [ 'LaunchTemplateId' => $launchTemplateId, ], ]); }-
Einzelheiten zur API finden Sie CreateAutoScalingGroupin der AWS SDK für PHP API-Referenz.
-
- PowerShell
-
- Tools für PowerShell V4
-
Beispiel 1: In diesem Beispiel wird eine Auto-Scaling-Gruppe mit dem angegebenen Namen und den angegebenen Attributen erstellt. Die standardmäßige gewünschte Kapazität entspricht der minimalen Größe. Daher startet diese Auto-Scaling-Gruppe zwei Instances – jeweils eine in jeder der angegebenen beiden Availability Zones.
New-ASAutoScalingGroup -AutoScalingGroupName my-asg -LaunchConfigurationName my-lc -MinSize 2 -MaxSize 6 -AvailabilityZone @("us-west-2a", "us-west-2b")-
Einzelheiten zur API finden Sie unter CreateAutoScalingGroup AWS -Tools für PowerShellCmdlet-Referenz (V4).
-
- Tools für V5 PowerShell
-
Beispiel 1: In diesem Beispiel wird eine Auto-Scaling-Gruppe mit dem angegebenen Namen und den angegebenen Attributen erstellt. Die standardmäßige gewünschte Kapazität entspricht der minimalen Größe. Daher startet diese Auto-Scaling-Gruppe zwei Instances – jeweils eine in jeder der angegebenen beiden Availability Zones.
New-ASAutoScalingGroup -AutoScalingGroupName my-asg -LaunchConfigurationName my-lc -MinSize 2 -MaxSize 6 -AvailabilityZone @("us-west-2a", "us-west-2b")-
Einzelheiten zur API finden Sie unter CreateAutoScalingGroup AWS -Tools für PowerShellCmdlet-Referenz (V5).
-
- Python
-
- SDK für Python (Boto3)
-
Anmerkung
Es gibt noch mehr dazu. GitHub Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-
einrichten und ausführen. class AutoScalingWrapper: """Encapsulates Amazon EC2 Auto Scaling actions.""" def __init__(self, autoscaling_client): """ :param autoscaling_client: A Boto3 Amazon EC2 Auto Scaling client. """ self.autoscaling_client = autoscaling_client def create_group( self, group_name: str, group_zones: List[str], launch_template_name: str, min_size: int, max_size: int, ) -> None: """ Creates an Auto Scaling group. :param group_name: The name to give to the group. :param group_zones: The Availability Zones in which instances can be created. :param launch_template_name: The name of an existing Amazon EC2 launch template. The launch template specifies the configuration of instances that are created by auto scaling activities. :param min_size: The minimum number of active instances in the group. :param max_size: The maximum number of active instances in the group. :return: None :raises ClientError: If there is an error creating the Auto Scaling group. """ try: self.autoscaling_client.create_auto_scaling_group( AutoScalingGroupName=group_name, AvailabilityZones=group_zones, LaunchTemplate={ "LaunchTemplateName": launch_template_name, "Version": "$Default", }, MinSize=min_size, MaxSize=max_size, ) # Wait for the group to exist. waiter = self.autoscaling_client.get_waiter("group_exists") waiter.wait(AutoScalingGroupNames=[group_name]) logger.info(f"Successfully created Auto Scaling group {group_name}.") except ClientError as err: error_code = err.response["Error"]["Code"] logger.error(f"Failed to create Auto Scaling group {group_name}.") if error_code == "AlreadyExistsFault": logger.error( f"An Auto Scaling group with the name '{group_name}' already exists. " "Please use a different name or update the existing group.", ) elif error_code == "LimitExceededFault": logger.error( "The request failed because you have reached the limit " "on the number of Auto Scaling groups or launch configurations. " "Consider deleting unused resources or request a limit increase. " "\nSee Auto Scaling Service Quota documentation here:" "\n\thttps://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-quotas.html" ) logger.error(f"Full error:\n\t{err}") raise-
Einzelheiten zur API finden Sie CreateAutoScalingGroupin AWS SDK for Python (Boto3) API Reference.
-
- Rust
-
- SDK für Rust
-
Anmerkung
Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-
einrichten und ausführen. async fn create_group(client: &Client, name: &str, id: &str) -> Result<(), Error> { client .create_auto_scaling_group() .auto_scaling_group_name(name) .instance_id(id) .min_size(1) .max_size(5) .send() .await?; println!("Created AutoScaling group"); Ok(()) }-
Einzelheiten zur API finden Sie CreateAutoScalingGroup
in der API-Referenz zum AWS SDK für Rust.
-