本文整理汇总了Java中com.amazonaws.services.ec2.model.RunInstancesRequest.setSecurityGroups方法的典型用法代码示例。如果您正苦于以下问题:Java RunInstancesRequest.setSecurityGroups方法的具体用法?Java RunInstancesRequest.setSecurityGroups怎么用?Java RunInstancesRequest.setSecurityGroups使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.amazonaws.services.ec2.model.RunInstancesRequest
的用法示例。
在下文中一共展示了RunInstancesRequest.setSecurityGroups方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: prepareEC2RequestNode
import com.amazonaws.services.ec2.model.RunInstancesRequest; //导入方法依赖的package包/类
/**
* Prepares the request.
* @param targetProperties the target properties
* @param userData the user data to pass
* @return a request
* @throws UnsupportedEncodingException
*/
private RunInstancesRequest prepareEC2RequestNode( Map<String,String> targetProperties, String userData )
throws UnsupportedEncodingException {
RunInstancesRequest runInstancesRequest = new RunInstancesRequest();
String flavor = targetProperties.get(Ec2Constants.VM_INSTANCE_TYPE);
if( Utils.isEmptyOrWhitespaces( flavor ))
flavor = "t1.micro";
runInstancesRequest.setInstanceType( flavor );
runInstancesRequest.setImageId( targetProperties.get( Ec2Constants.AMI_VM_NODE ));
runInstancesRequest.setMinCount( 1 );
runInstancesRequest.setMaxCount( 1 );
runInstancesRequest.setKeyName( targetProperties.get(Ec2Constants.SSH_KEY_NAME));
String secGroup = targetProperties.get(Ec2Constants.SECURITY_GROUP_NAME);
if( Utils.isEmptyOrWhitespaces(secGroup))
secGroup = "default";
runInstancesRequest.setSecurityGroups(Collections.singletonList(secGroup));
String availabilityZone = targetProperties.get(Ec2Constants.AVAILABILITY_ZONE);
if(! Utils.isEmptyOrWhitespaces(availabilityZone))
runInstancesRequest.setPlacement(new Placement(availabilityZone));
// The following part enables to transmit data to the VM.
// When the VM is up, it will be able to read this data.
String encodedUserData = new String( Base64.encodeBase64( userData.getBytes( StandardCharsets.UTF_8 )), "UTF-8" );
runInstancesRequest.setUserData( encodedUserData );
return runInstancesRequest;
}
示例2: onDemandRequest
import com.amazonaws.services.ec2.model.RunInstancesRequest; //导入方法依赖的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));
}