本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用同步配置启动实例
您可以使用该 LaunchInstances API 同步启动 Auto Scaling 组中特定数量的实例。API 在您指定的可用区或子网中启动实例,并立即返回实例 IDs 或错误信息。
先决条件
在使用 LaunchInstances API 之前,您必须具备以下条件:
-
使用启动模板的 Auto Scaling 组(不支持启动配置)
-
您必须拥有以下 IAM 操作的权限:
-
autoscaling:LaunchInstances -
ec2:CreateFleet -
ec2:DescribeLaunchTemplateVersions
-
使用同步配置启动实例
您可以通过启动具有同步配置功能的实例 AWS CLI。
AWS CLI
要使用同步配置启动实例,请执行以下操作:
aws autoscaling launch-instances \ --auto-scaling-group-namegroup-name\ --requested-capacitynumber\ [--availability-zoneszone-name] \ [--subnet-idssubnet-id] \ [--availability-zone-idszone-id] \ [--retry-strategynone|retry-with-group-configuration] \ [--client-tokentoken]
示例
在特定可用区启动实例
aws autoscaling launch-instances \ --auto-scaling-group-namemy-asg\ --requested-capacity3\ --availability-zonesus-east-1a\ --retry-strategyretry-with-group-configuration
在特定子网中启动实例
aws autoscaling launch-instances \ --auto-scaling-group-namemy-asg\ --requested-capacity2\ --subnet-idssubnet-12345678\ --retry-strategynone\ --client-tokenmy-unique-token-123
处理回复
成功响应的示例:
{ "AutoScalingGroupName": "my-asg", "ClientToken": "my-unique-token-123", "Instances": [ { "InstanceType": "m5.xlarge", "AvailabilityZone": "us-east-1a", "AvailabilityZoneId": "use1-az1", "SubnetId": "subnet-12345678", "MarketType": "OnDemand", "InstanceIds": ["i-0123456789abcdef0", "i-0fedcba9876543210"] } ], "Errors": [] }
有错误的响应示例
{ "AutoScalingGroupName": "my-asg", "ClientToken": "my-unique-token-123", "Instances": [], "Errors": [ { "InstanceType": "m5.large", "AvailabilityZone": "us-east-1a", "AvailabilityZoneId": "use1-az1", "SubnetId": "subnet-12345678", "MarketType": "OnDemand", "ErrorCode": "InsufficientInstanceCapacity", "ErrorMessage": "There is not enough capacity to fulfill your request for instance type 'm5.large' in 'us-east-1a'" } ] }
处理启动失败和重试
当 LaunchInstances API 遇到故障时,您可以使用等效令牌和适当的重试策略来实现重试策略。
您可以使用 client-token 参数来重试请求。您也可以使用以下重试策略:
-
RetryStrategy: none(默认)-如果 API 调用失败,Auto Scaling 组的所需容量将保持不变,并且不会自动重试。 -
RetryStrategy: retry-with-group-configuration-如果 API 调用失败,Auto Scaling 组的所需容量将按请求的数量增加,Auto Scaling 将使用该组的标准配置和流程自动重试启动实例。
的重试行为RetryStrategy: retry-with-group-configuration取决于失败类型:
-
验证错误:由于操作无法继续,因此未增加所需容量。例如,无效的参数或不支持的配置。
-
容量错误:所需容量已增加,Auto Scaling 将使用组的正常扩展流程重试异步启动实例。
使用客户端令牌实现等性
该client-token参数可确保执行等性操作,并允许安全重试启动请求。
关键行为:
-
客户令牌的有效期从初始请求算起 8 小时
-
在 8 小时内使用相同的客户端令牌重试会返回缓存的响应,而不是启动新实例
-
8 小时后,相同的客户端令牌将启动新的启动操作