本文整理汇总了Golang中github.com/aws/aws-sdk-go/service/ec2.EC2.RequestSpotInstances方法的典型用法代码示例。如果您正苦于以下问题:Golang EC2.RequestSpotInstances方法的具体用法?Golang EC2.RequestSpotInstances怎么用?Golang EC2.RequestSpotInstances使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/aws/aws-sdk-go/service/ec2.EC2
的用法示例。
在下文中一共展示了EC2.RequestSpotInstances方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: RequestSpotInstances
// Creates a Spot instance request by using Price, imageId, instance and zone.
// Other input parameters can be configured by uncommenting the appropriate portion of the code
func (p *Parameters) RequestSpotInstances(svc *ec2.EC2, imageId string) (string, error) {
paramsForReq := &ec2.RequestSpotInstancesInput{
SpotPrice: aws.String(p.Price), // Required
// AvailabilityZoneGroup: aws.String(p.Zone),
// BlockDurationMinutes: aws.Int64(1),
// ClientToken: aws.String("String"),
// DryRun: aws.Bool(true),
// InstanceCount: aws.Int64(1),
// LaunchGroup: aws.String("String"),
LaunchSpecification: &ec2.RequestSpotLaunchSpecification{
// AddressingType: aws.String("String"),
// BlockDeviceMappings: []*ec2.BlockDeviceMapping{
// {// Required
// DeviceName: aws.String("String"),
// Ebs: &ec2.EbsBlockDevice{
// DeleteOnTermination: aws.Bool(true),
// Encrypted: aws.Bool(true),
// Iops: aws.Int64(1),
// SnapshotId: aws.String("String"),
// VolumeSize: aws.Int64(1),
// VolumeType: aws.String("VolumeType"),
// },
// NoDevice: aws.String("String"),
// VirtualName: aws.String("String"),
// },
// // More values...
// },
// EbsOptimized: aws.Bool(true),
// IamInstanceProfile: &ec2.IamInstanceProfileSpecification{
// Arn: aws.String("String"),
// Name: aws.String("String"),
// },
ImageId: aws.String(imageId),
InstanceType: aws.String(p.Instance),
// KernelId: aws.String("String"),
// KeyName: aws.String("String"),
// Monitoring: &ec2.RunInstancesMonitoringEnabled{
// Enabled: aws.Bool(true), // Required
// },
// NetworkInterfaces: []*ec2.InstanceNetworkInterfaceSpecification{
// {// Required
// AssociatePublicIpAddress: aws.Bool(true),
// DeleteOnTermination: aws.Bool(true),
// Description: aws.String("String"),
// DeviceIndex: aws.Int64(1),
// Groups: []*string{
// aws.String("String"), // Required
// // More values...
// },
// NetworkInterfaceId: aws.String("String"),
// PrivateIpAddress: aws.String("String"),
// PrivateIpAddresses: []*ec2.PrivateIpAddressSpecification{
// {// Required
// PrivateIpAddress: aws.String("String"), // Required
// Primary: aws.Bool(true),
// },
// // More values...
// },
// SecondaryPrivateIpAddressCount: aws.Int64(1),
// SubnetId: aws.String("String"),
// },
// // More values...
// },
Placement: &ec2.SpotPlacement{
AvailabilityZone: aws.String(p.Zone),
// GroupName: aws.String("String"),
},
// RamdiskId: aws.String("String"),
// SecurityGroupIds: []*string{
// aws.String("String"), // Required
// // More values...
// },
// SecurityGroups: []*string{
// aws.String("String"), // Required
// // More values...
// },
// SubnetId: aws.String("String"),
// UserData: aws.String("String"),
},
// Type: aws.String(p.Instance),
// ValidFrom: aws.Time(time.Now()),
// ValidUntil: aws.Time(time.Now()),
}
resp, err := svc.RequestSpotInstances(paramsForReq)
if err != nil {
return "", err
}
return fmt.Sprintln(resp), nil
}