本文整理汇总了Java中com.amazonaws.services.ec2.model.BlockDeviceMapping.setDeviceName方法的典型用法代码示例。如果您正苦于以下问题:Java BlockDeviceMapping.setDeviceName方法的具体用法?Java BlockDeviceMapping.setDeviceName怎么用?Java BlockDeviceMapping.setDeviceName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.amazonaws.services.ec2.model.BlockDeviceMapping
的用法示例。
在下文中一共展示了BlockDeviceMapping.setDeviceName方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: createInstanceStoreMappings
import com.amazonaws.services.ec2.model.BlockDeviceMapping; //导入方法依赖的package包/类
/**
* Creates device mappings for the instance-store disks.
*/
private List<BlockDeviceMapping> createInstanceStoreMappings(List<DiskState> instanceStoreDisks,
List<String> usedDeviceNames,
List<String> usedVirtualNames,
String instanceType,
Integer capacityMBytes,
String platform,
String virtualizationType) {
List<BlockDeviceMapping> deviceMappings = new ArrayList<>();
if (!instanceStoreDisks.isEmpty()) {
this.logInfo(
() -> String.format("[AWSInstanceService] Ignores the size and type of the "
+ "additional disk. Instance-store type of additional disks are "
+ "provisioned with the capacity supported by %s", instanceType));
List<String> availableDeviceNames = AWSBlockDeviceNameMapper.getAvailableNames(AWSSupportedOS.get(platform),
AWSSupportedVirtualizationTypes.get(virtualizationType), AWSStorageType.INSTANCE_STORE, instanceType, usedDeviceNames);
List<String> availableVirtualNames = getAvailableVirtualNames(usedVirtualNames);
if (availableDeviceNames.size() >= instanceStoreDisks.size()
&& availableVirtualNames.size() >= instanceStoreDisks.size()) {
for (DiskState diskState : instanceStoreDisks) {
BlockDeviceMapping blockDeviceMapping = new BlockDeviceMapping();
String deviceName = availableDeviceNames.get(0);
blockDeviceMapping.setDeviceName(deviceName);
availableDeviceNames.remove(0);
usedDeviceNames.add(deviceName);
String virtualName = availableVirtualNames.get(0);
blockDeviceMapping.setVirtualName(virtualName);
availableVirtualNames.remove(0);
deviceMappings.add(blockDeviceMapping);
if (diskState.customProperties == null) {
diskState.customProperties = new HashMap<>();
}
diskState.customProperties.put(DEVICE_NAME, deviceName);
diskState.customProperties
.put(DEVICE_TYPE, AWSStorageType.INSTANCE_STORE.getName());
diskState.capacityMBytes = capacityMBytes;
}
} else {
String message = "Additional instance-store disks cannot be attached. "
+ "Not sufficient device names are available.";
this.logWarning(() -> "[AWSInstanceService] " + message);
throw new IllegalArgumentException(message);
}
}
return deviceMappings;
}
示例2: spotRequest
import com.amazonaws.services.ec2.model.BlockDeviceMapping; //导入方法依赖的package包/类
public void spotRequest() {
if (instances <= instancesSet.size()) {
logger.info("No more instances will be launched because there are already enough.");
return;
}
com.amazonaws.services.ec2.AmazonEC2 client = AmazonEC2.connect();
RequestSpotInstancesRequest requestRequest = new RequestSpotInstancesRequest();
requestRequest.setSpotPrice(Double.valueOf(maxPrice).toString());
// requestRequest.setInstanceCount(instances);
requestRequest.setInstanceCount(instances - instancesSet.size());
LaunchSpecification launchSpecification = new LaunchSpecification();
launchSpecification.setImageId(ami);
launchSpecification.setInstanceType(size);
if (userData != null)
launchSpecification.setUserData(Base64.encodeAsString(userData
.getBytes()));
BlockDeviceMapping blockDeviceMapping = new BlockDeviceMapping();
blockDeviceMapping.setDeviceName("/dev/sda1");
EbsBlockDevice ebs = new EbsBlockDevice();
ebs.setDeleteOnTermination(Boolean.TRUE);
ebs.setVolumeSize(diskSize);
blockDeviceMapping.setEbs(ebs);
ArrayList<BlockDeviceMapping> blockList = new ArrayList<BlockDeviceMapping>();
blockList.add(blockDeviceMapping);
launchSpecification.setBlockDeviceMappings(blockList);
ArrayList<String> securityGroups = new ArrayList<String>();
securityGroups.add(Configuration.SECURITY_GROUP_NAME);
launchSpecification.setSecurityGroups(securityGroups);
launchSpecification.setKeyName(keyName);
requestRequest.setLaunchSpecification(launchSpecification);
RequestSpotInstancesResult requestResult = client
.requestSpotInstances(requestRequest);
List<SpotInstanceRequest> reqs = requestResult
.getSpotInstanceRequests();
for (SpotInstanceRequest req : reqs)
instancesSet.add(new Instance(this, req.getInstanceId(), req
.getSpotInstanceRequestId()));
}
示例3: onDemandRequest
import com.amazonaws.services.ec2.model.BlockDeviceMapping; //导入方法依赖的package包/类
public void onDemandRequest() {
if (instances <= instancesSet.size()) {
logger.info("No more instances will be launched because there are already enough.");
return;
}
com.amazonaws.services.ec2.AmazonEC2 client = AmazonEC2.connect();
RunInstancesRequest request = new RunInstancesRequest();
// request.setMinCount(instances);
// request.setMaxCount(instances);
request.setMinCount(instances - instancesSet.size());
request.setMaxCount(instances - instancesSet.size());
request.setImageId(ami);
request.setInstanceType(size);
if (userData != null)
request.setUserData(Base64.encodeAsString(userData
.getBytes()));
BlockDeviceMapping blockDeviceMapping = new BlockDeviceMapping();
blockDeviceMapping.setDeviceName("/dev/sda1");
EbsBlockDevice ebs = new EbsBlockDevice();
ebs.setDeleteOnTermination(Boolean.TRUE);
ebs.setVolumeSize(diskSize);
blockDeviceMapping.setEbs(ebs);
ArrayList<BlockDeviceMapping> blockList = new ArrayList<BlockDeviceMapping>();
blockList.add(blockDeviceMapping);
request.setBlockDeviceMappings(blockList);
ArrayList<String> securityGroups = new ArrayList<String>();
securityGroups.add(Configuration.SECURITY_GROUP_NAME);
request.setSecurityGroups(securityGroups);
request.setKeyName(keyName);
RunInstancesResult requestResult = client.runInstances(request);
Reservation reservation = requestResult.getReservation();
reservation.getInstances();
for (com.amazonaws.services.ec2.model.Instance i : reservation.getInstances())
instancesSet.add(new Instance(this, i.getInstanceId(), null));
}