本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用同步佈建啟動執行個體
您可以使用 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 遇到失敗時,您可以使用冪等字符和適當的重試政策來實作重試策略。
您可以使用用戶端字符參數重試請求。您也可以使用下列重試策略:
-
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 小時後,相同的用戶端字符將啟動新的啟動操作