Utilizzo UpdateAutoScalingGroup con un AWS SDK o una CLI - Amazon EC2 Auto Scaling

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo UpdateAutoScalingGroup con un AWS SDK o una CLI

Gli esempi di codice seguenti mostrano come utilizzare UpdateAutoScalingGroup.

Gli esempi di operazioni sono estratti di codice da programmi più grandi e devono essere eseguiti nel contesto. È possibile visualizzare questa operazione nel contesto nei seguenti esempi di codice:

.NET
SDK per .NET (v4)
Nota

C'è altro da fare. GitHub Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel Repository di esempi di codice AWS.

/// <summary> /// Update the capacity of an Auto Scaling group. /// </summary> /// <param name="groupName">The name of the Auto Scaling group.</param> /// <param name="launchTemplateName">The name of the EC2 launch template.</param> /// <param name="maxSize">The maximum number of instances that can be /// created for the Auto Scaling group.</param> /// <returns>A Boolean value indicating the success of the action.</returns> public async Task<bool> UpdateAutoScalingGroupAsync( string groupName, string launchTemplateName, int maxSize) { var templateSpecification = new LaunchTemplateSpecification { LaunchTemplateName = launchTemplateName, }; var groupRequest = new UpdateAutoScalingGroupRequest { MaxSize = maxSize, AutoScalingGroupName = groupName, LaunchTemplate = templateSpecification, }; var response = await _amazonAutoScaling.UpdateAutoScalingGroupAsync(groupRequest); if (response.HttpStatusCode == System.Net.HttpStatusCode.OK) { Console.WriteLine($"You successfully updated the Auto Scaling group {groupName}."); return true; } else { return false; } }
C++
SDK per C++
Nota

C'è altro su GitHub. Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel Repository di esempi di codice AWS.

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::UpdateAutoScalingGroupRequest request; request.SetAutoScalingGroupName(groupName); request.SetMaxSize(3); Aws::AutoScaling::Model::UpdateAutoScalingGroupOutcome outcome = autoScalingClient.UpdateAutoScalingGroup(request); if (!outcome.IsSuccess()) { std::cerr << "Error with AutoScaling::UpdateAutoScalingGroup. " << outcome.GetError().GetMessage() << std::endl; }
CLI
AWS CLI

Esempio 1: come aggiornare i limiti di dimensione di un gruppo Auto Scaling

Questo esempio aggiorna il gruppo Auto Scaling specificato in base a una dimensione minima di 2 e una dimensione massima di 10.

aws autoscaling update-auto-scaling-group \ --auto-scaling-group-name my-asg \ --min-size 2 \ --max-size 10

Questo comando non produce alcun output.

Per ulteriori informazioni, consulta Impostazione dei limiti di capacità per il gruppo Auto Scaling nella Guida per l’utente di Amazon EC2 Auto Scaling.

Esempio 2: come aggiungere i controlli dell’integrità di Elastic Load Balancing e specificare le zone di disponibilità e le sottoreti da utilizzare

Questo esempio aggiorna il gruppo Auto Scaling specificato per aggiungere i controlli dell’integrità di Elastic Load Balancing. Questo comando aggiorna anche il valore di --vpc-zone-identifier con un elenco di sottoreti IDs in più zone di disponibilità.

aws autoscaling update-auto-scaling-group \ --auto-scaling-group-name my-asg \ --health-check-type ELB \ --health-check-grace-period 600 \ --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782"

Questo comando non produce alcun output.

Per ulteriori informazioni, consulta Elastic Load Balancing e Amazon EC2 Auto Scaling nella Guida per l’utente di Amazon EC2 Auto Scaling.

Esempio 3: come aggiornare il gruppo di posizionamento e la policy di terminazione

Questo esempio aggiorna il gruppo di posizionamento e la policy di terminazione da utilizzare.

aws autoscaling update-auto-scaling-group \ --auto-scaling-group-name my-asg \ --placement-group my-placement-group \ --termination-policies "OldestInstance"

Questo comando non produce alcun output.

Per ulteriori informazioni, consulta Gruppi Auto Scaling nella Guida per l’utente di Amazon EC2 Auto Scaling.

Esempio 4: come utilizzare la versione più recente del modello di avvio

Questo esempio aggiorna il gruppo Auto Scaling specificato per utilizzare la versione più recente del modello di avvio specificato.

aws autoscaling update-auto-scaling-group \ --auto-scaling-group-name my-asg \ --launch-template LaunchTemplateId=lt-1234567890abcde12,Version='$Latest'

Questo comando non produce alcun output.

Per ulteriori informazioni, consulta Modelli di avvio nella Guida per l’utente di Amazon EC2 Auto Scaling.

Esempio 5: come utilizzare una versione specifica del modello di avvio

Questo esempio aggiorna il gruppo Auto Scaling specificato per utilizzare una versione specifica di un modello di avvio anziché la versione più recente o predefinita.

aws autoscaling update-auto-scaling-group \ --auto-scaling-group-name my-asg \ --launch-template LaunchTemplateName=my-template-for-auto-scaling,Version='2'

Questo comando non produce alcun output.

Per ulteriori informazioni, consulta Modelli di avvio nella Guida per l’utente di Amazon EC2 Auto Scaling.

Esempio 6: come definire una policy di istanze miste e abilitare il ribilanciamento della capacità

Questo esempio aggiorna il gruppo Auto Scaling specificato per utilizzare una policy di istanze miste e consentire il ribilanciamento della capacità. Questa struttura consente di specificare gruppi con capacità spot e on demand e utilizzare modelli di avvio diversi per architetture diverse.

aws autoscaling update-auto-scaling-group \ --cli-input-json file://~/config.json

Contenuto di config.json:

{ "AutoScalingGroupName": "my-asg", "CapacityRebalance": true, "MixedInstancesPolicy": { "LaunchTemplate": { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template-for-x86", "Version": "$Latest" }, "Overrides": [ { "InstanceType": "c6g.large", "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template-for-arm", "Version": "$Latest" } }, { "InstanceType": "c5.large" }, { "InstanceType": "c5a.large" } ] }, "InstancesDistribution": { "OnDemandPercentageAboveBaseCapacity": 50, "SpotAllocationStrategy": "capacity-optimized" } } }

Questo comando non produce alcun output.

Per ulteriori informazioni, consulta Gruppi Auto Scaling con più tipi di istanze e opzioni di acquisto nella Guida per l’utente di Amazon EC2 Auto Scaling.

Java
SDK per Java 2.x
Nota

C'è altro su GitHub. Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel Repository di esempi di codice AWS.

public static void updateAutoScalingGroup(AutoScalingClient autoScalingClient, String groupName, String launchTemplateName) { try { AutoScalingWaiter waiter = autoScalingClient.waiter(); LaunchTemplateSpecification templateSpecification = LaunchTemplateSpecification.builder() .launchTemplateName(launchTemplateName) .build(); UpdateAutoScalingGroupRequest groupRequest = UpdateAutoScalingGroupRequest.builder() .maxSize(3) .autoScalingGroupName(groupName) .launchTemplate(templateSpecification) .build(); autoScalingClient.updateAutoScalingGroup(groupRequest); DescribeAutoScalingGroupsRequest groupsRequest = DescribeAutoScalingGroupsRequest.builder() .autoScalingGroupNames(groupName) .build(); WaiterResponse<DescribeAutoScalingGroupsResponse> waiterResponse = waiter .waitUntilGroupInService(groupsRequest); waiterResponse.matched().response().ifPresent(System.out::println); System.out.println("You successfully updated the auto scaling group " + groupName); } catch (AutoScalingException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
Kotlin
SDK per Kotlin
Nota

C'è altro su GitHub. Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel Repository di esempi di codice AWS.

suspend fun updateAutoScalingGroup( groupName: String, launchTemplateNameVal: String, serviceLinkedRoleARNVal: String, ) { val templateSpecification = LaunchTemplateSpecification { launchTemplateName = launchTemplateNameVal } val groupRequest = UpdateAutoScalingGroupRequest { maxSize = 3 serviceLinkedRoleArn = serviceLinkedRoleARNVal autoScalingGroupName = groupName launchTemplate = templateSpecification } val groupsRequestWaiter = DescribeAutoScalingGroupsRequest { autoScalingGroupNames = listOf(groupName) } AutoScalingClient { region = "us-east-1" }.use { autoScalingClient -> autoScalingClient.updateAutoScalingGroup(groupRequest) autoScalingClient.waitUntilGroupExists(groupsRequestWaiter) println("You successfully updated the Auto Scaling group $groupName") } }
PHP
SDK per PHP
Nota

C'è altro su. GitHub Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel Repository di esempi di codice AWS.

public function updateAutoScalingGroup($autoScalingGroupName, $args) { if (array_key_exists('MaxSize', $args)) { $maxSize = ['MaxSize' => $args['MaxSize']]; } else { $maxSize = []; } if (array_key_exists('MinSize', $args)) { $minSize = ['MinSize' => $args['MinSize']]; } else { $minSize = []; } $parameters = ['AutoScalingGroupName' => $autoScalingGroupName]; $parameters = array_merge($parameters, $minSize, $maxSize); return $this->autoScalingClient->updateAutoScalingGroup($parameters); }
PowerShell
Strumenti per PowerShell V4

Esempio 1: questo esempio imposta le dimensioni minima e massima del gruppo Auto Scaling specificato.

Update-ASAutoScalingGroup -AutoScalingGroupName my-asg -MaxSize 5 -MinSize 1

Esempio 2: questo esempio aggiorna il tempo di raffreddamento predefinito del gruppo Auto Scaling specificato.

Update-ASAutoScalingGroup -AutoScalingGroupName my-asg -DefaultCooldown 10

Esempio 3: questo esempio aggiorna le zone di disponibilità del gruppo Auto Scaling specificato.

Update-ASAutoScalingGroup -AutoScalingGroupName my-asg -AvailabilityZone @("us-west-2a", "us-west-2b")

Esempio 4: questo esempio aggiorna il gruppo Auto Scaling specificato in modo da utilizzare i controlli dell’integrità di Elastic Load Balancing.

Update-ASAutoScalingGroup -AutoScalingGroupName my-asg -HealthCheckType ELB -HealthCheckGracePeriod 60
  • Per i dettagli sull'API, vedere UpdateAutoScalingGroupin AWS Strumenti per PowerShell Cmdlet Reference (V4).

Strumenti per V5 PowerShell

Esempio 1: questo esempio imposta le dimensioni minima e massima del gruppo Auto Scaling specificato.

Update-ASAutoScalingGroup -AutoScalingGroupName my-asg -MaxSize 5 -MinSize 1

Esempio 2: questo esempio aggiorna il tempo di raffreddamento predefinito del gruppo Auto Scaling specificato.

Update-ASAutoScalingGroup -AutoScalingGroupName my-asg -DefaultCooldown 10

Esempio 3: questo esempio aggiorna le zone di disponibilità del gruppo Auto Scaling specificato.

Update-ASAutoScalingGroup -AutoScalingGroupName my-asg -AvailabilityZone @("us-west-2a", "us-west-2b")

Esempio 4: questo esempio aggiorna il gruppo Auto Scaling specificato in modo da utilizzare i controlli dell’integrità di Elastic Load Balancing.

Update-ASAutoScalingGroup -AutoScalingGroupName my-asg -HealthCheckType ELB -HealthCheckGracePeriod 60
  • Per i dettagli sull'API, vedere UpdateAutoScalingGroupin AWS Strumenti per PowerShell Cmdlet Reference (V5).

Python
SDK per Python (Boto3)
Nota

C'è altro su. GitHub Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel Repository di esempi di codice AWS.

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 update_group(self, group_name: str, **kwargs: Any) -> None: """ Updates an Auto Scaling group. :param group_name: The name of the group to update. :param kwargs: Keyword arguments to pass through to the service. :return: None :raises ClientError: If there is an error updating the Auto Scaling group. """ try: self.autoscaling_client.update_auto_scaling_group( AutoScalingGroupName=group_name, **kwargs ) logger.info(f"Successfully updated Auto Scaling group {group_name}.") except ClientError as err: error_code = err.response["Error"]["Code"] logger.error(f"Failed to update Auto Scaling group {group_name}.") if error_code == "ResourceInUse": logger.error( "The Auto Scaling group '%s' is currently in use and cannot be modified. Please try again later.", group_name, ) elif error_code == "ScalingActivityInProgress": logger.error( f"A scaling activity is currently in progress for the Auto Scaling group '{group_name}'." "Please wait for the activity to complete before attempting to update the group." ) logger.error(f"Full error:\n\t{err}") raise
Rust
SDK per Rust
Nota

C'è altro da fare. GitHub Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel Repository di esempi di codice AWS.

async fn update_group(client: &Client, name: &str, size: i32) -> Result<(), Error> { client .update_auto_scaling_group() .auto_scaling_group_name(name) .max_size(size) .send() .await?; println!("Updated AutoScaling group"); Ok(()) }
SAP ABAP
SDK per SAP ABAP
Nota

C'è altro da fare. GitHub Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel Repository di esempi di codice AWS.

" Example: iv_group_name = 'my-auto-scaling-group' " Example: iv_max_size = 5 TRY. ao_asc->updateautoscalinggroup( iv_autoscalinggroupname = iv_group_name iv_maxsize = iv_max_size iv_minsize = iv_min_size ). MESSAGE 'Auto Scaling group updated successfully' TYPE 'I'. CATCH /aws1/cx_ascresrccontionfault INTO DATA(lo_contention). RAISE EXCEPTION lo_contention. CATCH /aws1/cx_ascscaactivityinprg00 INTO DATA(lo_activity_in_progress). RAISE EXCEPTION lo_activity_in_progress. CATCH /aws1/cx_rt_generic INTO DATA(lo_generic_exception). RAISE EXCEPTION lo_generic_exception. ENDTRY.

Per un elenco completo delle guide per sviluppatori AWS SDK e degli esempi di codice, consulta. Utilizzo di questo servizio con un SDK AWS Questo argomento include anche informazioni su come iniziare e dettagli sulle versioni precedenti dell’SDK.