本文整理匯總了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
}