本文整理汇总了Java中com.amazonaws.services.ec2.model.LaunchSpecification.withIamInstanceProfile方法的典型用法代码示例。如果您正苦于以下问题:Java LaunchSpecification.withIamInstanceProfile方法的具体用法?Java LaunchSpecification.withIamInstanceProfile怎么用?Java LaunchSpecification.withIamInstanceProfile使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.amazonaws.services.ec2.model.LaunchSpecification
的用法示例。
在下文中一共展示了LaunchSpecification.withIamInstanceProfile方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: call
import com.amazonaws.services.ec2.model.LaunchSpecification; //导入方法依赖的package包/类
@Override
public List<SpotInstanceRequest> call() {
LaunchSpecification spec = new LaunchSpecification();
spec.withInstanceType(this.instanceTemplate.getInstanceType());
spec.withImageId(this.instanceTemplate.getAmiId());
InstanceNetworkInterfaceSpecification nic = new InstanceNetworkInterfaceSpecification();
nic.withDeviceIndex(0);
// select a subnet at random
nic.withSubnetId(randomSubnet());
nic.withAssociatePublicIpAddress(this.instanceTemplate.isAssignPublicIp());
nic.withGroups(this.instanceTemplate.getSecurityGroupIds());
spec.withNetworkInterfaces(nic);
spec.withKeyName(this.instanceTemplate.getKeyPair());
spec.withIamInstanceProfile(
new IamInstanceProfileSpecification().withArn(this.instanceTemplate.getIamInstanceProfileARN()));
spec.withUserData(this.instanceTemplate.getEncodedUserData());
spec.withEbsOptimized(this.instanceTemplate.isEbsOptimized());
RequestSpotInstancesRequest spotRequest = new RequestSpotInstancesRequest().withInstanceCount(this.count)
.withType(SpotInstanceType.Persistent).withSpotPrice(this.bidPrice).withLaunchSpecification(spec);
RequestSpotInstancesResult result = getClient().getApi().requestSpotInstances(spotRequest);
List<String> spotRequestIds = result.getSpotInstanceRequests().stream()
.map(SpotInstanceRequest::getSpotInstanceRequestId).collect(Collectors.toList());
if (!this.instanceTemplate.getTags().isEmpty()) {
tagRequests(spotRequestIds);
}
return awaitSpotRequests(spotRequestIds);
}
示例2: newRequestSpotInstanceRequest
import com.amazonaws.services.ec2.model.LaunchSpecification; //导入方法依赖的package包/类
/**
* Builds a {@code RequestSpotInstancesRequest}.
*
* @return the {@code RequestSpotInstancesRequest}
*/
@VisibleForTesting
protected RequestSpotInstancesRequest newRequestSpotInstanceRequest(String virtualInstanceId) {
String image = template.getImage();
String type = template.getType();
InstanceNetworkInterfaceSpecification network =
getInstanceNetworkInterfaceSpecification(template);
List<BlockDeviceMapping> deviceMappings = getBlockDeviceMappings(template);
LaunchSpecification launchSpecification = new LaunchSpecification()
.withImageId(image)
.withInstanceType(type)
.withNetworkInterfaces(network)
.withBlockDeviceMappings(deviceMappings)
.withEbsOptimized(template.isEbsOptimized());
if (template.getIamProfileName().isPresent()) {
launchSpecification.withIamInstanceProfile(new IamInstanceProfileSpecification()
.withName(template.getIamProfileName().get()));
}
if (template.getKeyName().isPresent()) {
launchSpecification.withKeyName(template.getKeyName().get());
}
SpotPlacement placement = null;
if (template.getAvailabilityZone().isPresent()) {
placement = new SpotPlacement().withAvailabilityZone(template.getAvailabilityZone().get());
}
if (template.getPlacementGroup().isPresent()) {
placement = (placement == null) ?
new SpotPlacement().withGroupName(template.getPlacementGroup().get())
: placement.withGroupName(template.getPlacementGroup().get());
}
launchSpecification.withPlacement(placement);
Optional<String> userData = template.getUserData();
if (userData.isPresent()) {
launchSpecification.withUserData(userData.get());
}
LOG.info(">> Spot instance request type: {}, image: {}", type, image);
RequestSpotInstancesRequest request = new RequestSpotInstancesRequest()
.withSpotPrice(template.getSpotBidUSDPerHour().get().toString())
.withLaunchSpecification(launchSpecification)
.withInstanceCount(1)
.withClientToken(determineClientToken(virtualInstanceId, requestExpirationTime.getTime()))
.withValidUntil(requestExpirationTime);
Optional<Integer> blockDurationMinutes = template.getBlockDurationMinutes();
if (blockDurationMinutes.isPresent()) {
request.withBlockDurationMinutes(blockDurationMinutes.get());
}
return request;
}