AWS 文档 AWS SDK示例 GitHub 存储库中还有更多SDK示例
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
RequestSpotFleet
与 a 一起使用 CLI
以下代码示例演示如何使用 RequestSpotFleet
。
- CLI
-
- AWS CLI
-
请求子网中价格最低的 Spot 队列
此示例命令创建一个 Spot 队列请求,其中包含两个仅因子网而异的启动规格。竞价型队列以最低价格启动指定子网中的实例。如果实例以默认方式启动VPC,则默认情况下它们会收到一个公有 IP 地址。如果实例以非默认方式启动VPC,则默认情况下它们不会收到公有 IP 地址。
请注意,您不能在竞价型队列请求中指定来自同一可用区的不同子网。
命令:
aws ec2 request-spot-fleet --spot-fleet-request-config
file://config.json
config.json:
{ "SpotPrice": "0.04", "TargetCapacity": 2, "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "KeyName": "my-key-pair", "SecurityGroups": [ { "GroupId": "sg-1a2b3c4d" } ], "InstanceType": "m3.medium", "SubnetId": "subnet-1a2b3c4d, subnet-3c4d5e6f", "IamInstanceProfile": { "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" } } ] }
输出:
{ "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" }
请求可用区内价格最低的 Spot 队列
此示例命令创建具有两个启动规格的 Spot 队列请求,这两个启动规格仅因可用区而异。竞价型队列以最低价格在指定可用区启动实例。如果您的账户VPC仅支持EC2,Amazon EC2 将在可用区的默认子网中启动竞价型实例。如果您的账户支持 EC2-Classic,则亚马逊EC2会在可用区中启动 EC2-Classic中的实例。
命令:
aws ec2 request-spot-fleet --spot-fleet-request-config
file://config.json
config.json:
{ "SpotPrice": "0.04", "TargetCapacity": 2, "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "KeyName": "my-key-pair", "SecurityGroups": [ { "GroupId": "sg-1a2b3c4d" } ], "InstanceType": "m3.medium", "Placement": { "AvailabilityZone": "us-west-2a, us-west-2b" }, "IamInstanceProfile": { "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" } } ] }
在子网中启动竞价型实例并为其分配公有 IP 地址
此示例命令为以非VPC默认方式启动的实例分配公有地址。请注意,在指定网络接口时,必须使用该网络接口包括子网 ID 和安全组 ID。
命令:
aws ec2 request-spot-fleet --spot-fleet-request-config
file://config.json
config.json:
{ "SpotPrice": "0.04", "TargetCapacity": 2, "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "KeyName": "my-key-pair", "InstanceType": "m3.medium", "NetworkInterfaces": [ { "DeviceIndex": 0, "SubnetId": "subnet-1a2b3c4d", "Groups": [ "sg-1a2b3c4d" ], "AssociatePublicIpAddress": true } ], "IamInstanceProfile": { "Arn": "arn:aws:iam::880185128111:instance-profile/my-iam-role" } } ] }
使用多元化分配策略请求 Spot 队列
此示例命令创建一个 Spot 队列请求,该请求使用多元化分配策略启动 30 个实例。启动规格因实例类型而异。竞价型队列按启动规格分配实例,因此每种类型有 10 个实例。
命令:
aws ec2 request-spot-fleet --spot-fleet-request-config
file://config.json
config.json:
{ "SpotPrice": "0.70", "TargetCapacity": 30, "AllocationStrategy": "diversified", "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "InstanceType": "c4.2xlarge", "SubnetId": "subnet-1a2b3c4d" }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "m3.2xlarge", "SubnetId": "subnet-1a2b3c4d" }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "r3.2xlarge", "SubnetId": "subnet-1a2b3c4d" } ] }
有关更多信息,请参阅 Amazon 弹性计算云用户指南中的竞价型队列请求。
-
有关API详细信息,请参阅 “RequestSpotFleet AWS CLI
命令参考”。
-
- PowerShell
-
- 用于 PowerShell
-
示例 1:此示例在可用区中为指定实例类型创建价格最低的竞价型队列请求。如果您的账户VPC仅支持EC2,则竞价型队列会在具有默认子网的价格最低的可用区启动实例。如果您的账户支持 EC2-Classic,则竞价型队列会在价格最低的可用区中启动 EC2-Classic 中的实例。请注意,您支付的价格不会超过请求的指定竞价价格。
$sg = New-Object Amazon.EC2.Model.GroupIdentifier $sg.GroupId = "sg-12345678" $lc = New-Object Amazon.EC2.Model.SpotFleetLaunchSpecification $lc.ImageId = "ami-12345678" $lc.InstanceType = "m3.medium" $lc.SecurityGroups.Add($sg) Request-EC2SpotFleet -SpotFleetRequestConfig_SpotPrice 0.04 ` -SpotFleetRequestConfig_TargetCapacity 2 ` -SpotFleetRequestConfig_IamFleetRole arn:aws:iam::123456789012:role/my-spot-fleet-role ` -SpotFleetRequestConfig_LaunchSpecification $lc
-
有关API详细信息,请参阅 AWS Tools for PowerShell Cmdlet 参考RequestSpotFleet中的。
-