当前位置: 首页>>代码示例>>Java>>正文


Java LaunchSpecification类代码示例

本文整理汇总了Java中com.amazonaws.services.ec2.model.LaunchSpecification的典型用法代码示例。如果您正苦于以下问题:Java LaunchSpecification类的具体用法?Java LaunchSpecification怎么用?Java LaunchSpecification使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


LaunchSpecification类属于com.amazonaws.services.ec2.model包,在下文中一共展示了LaunchSpecification类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: createSpotInstanceOffer

import com.amazonaws.services.ec2.model.LaunchSpecification; //导入依赖的package包/类
public List<SpotInstanceOfferResult> createSpotInstanceOffer(SpotInstanceOffer request)
{
    RequestSpotInstancesRequest spotRequest = new RequestSpotInstancesRequest(request.getOfferValue().toPlainString())
            .withValidFrom(request.getValidFrom())
            .withValidUntil(request.getValidUntil())
            .withType(SpotInstanceType.fromValue(request.getType().getName()))
            .withInstanceCount(request.getNumberOfInstances())
            .withLaunchSpecification(new LaunchSpecification()
                            .withInstanceType(request.getInstanceType().getName())
                            .withImageId(request.getImageId())
                            .withKeyName(request.getKeyName()));

    RequestSpotInstancesResult requestedSpotInstances = ec2_.requestSpotInstances(spotRequest);
    request.setStatus(new InstanceTemplateStatus().setStatus(Status.SUCCESS));

    return toSpotInstanceResults(request, requestedSpotInstances.getSpotInstanceRequests());
}
 
开发者ID:alessandroleite,项目名称:dohko,代码行数:18,代码来源:EC2.java

示例2: placeSpotRequests

import com.amazonaws.services.ec2.model.LaunchSpecification; //导入依赖的package包/类
@Override
public List<SpotInstanceRequest> placeSpotRequests(double bidPrice, Ec2ProvisioningTemplate template, int count)
        throws AmazonClientException {
    List<SpotInstanceRequest> requests = new ArrayList<>();
    for (int i = 0; i < count; i++) {
        String id = "sir-" + (System.currentTimeMillis() + count);
        SpotInstanceRequest request = new SpotInstanceRequest().withSpotInstanceRequestId(id)
                .withLaunchSpecification(new LaunchSpecification().withInstanceType(template.getInstanceType()))
                .withState(SpotInstanceState.Open).withSpotPrice(String.valueOf(bidPrice));

        if (!template.getTags().isEmpty()) {
            List<Tag> tags = new ArrayList<>();
            for (Entry<String, String> tag : template.getTags().entrySet()) {
                tags.add(new Tag(tag.getKey(), tag.getValue()));
            }
            request.withTags(tags);
        }
        this.spotRequests.put(id, request);
        requests.add(request);
    }
    return requests;
}
 
开发者ID:elastisys,项目名称:scale.cloudpool,代码行数:23,代码来源:FakeSpotClient.java

示例3: notEqualLaunchSpecification

import com.amazonaws.services.ec2.model.LaunchSpecification; //导入依赖的package包/类
public boolean notEqualLaunchSpecification(LaunchSpecification oldLS, LaunchSpecification newLS) {
    if (notEqual(oldLS.getImageId(), newLS.getImageId())) return true;
    if (notEqual(oldLS.getKeyName(), newLS.getKeyName())) return true;
    if (notEqualCollection(oldLS.getAllSecurityGroups(), newLS.getAllSecurityGroups())) return true;
    if (notEqualCollection(oldLS.getSecurityGroups(), newLS.getSecurityGroups())) return true;
    if (notEqual(oldLS.getUserData(), newLS.getUserData())) return true;
    if (notEqual(oldLS.getAddressingType(), newLS.getAddressingType())) return true;
    if (notEqual(oldLS.getInstanceType(), newLS.getInstanceType())) return true;
    if (notEqual(oldLS.getPlacement(), newLS.getPlacement())) return true;
    if (notEqual(oldLS.getKernelId(), newLS.getKernelId())) return true;
    if (notEqual(oldLS.getRamdiskId(), newLS.getRamdiskId())) return true;
    if (notEqualCollection(oldLS.getBlockDeviceMappings(), newLS.getBlockDeviceMappings())) return true;
    if (notEqual(oldLS.getMonitoringEnabled(), newLS.getMonitoringEnabled())) return true;
    if (notEqual(oldLS.getSubnetId(), newLS.getSubnetId())) return true;
    if (notEqualInstanceNetworkInterfaceSpecifications(oldLS.getNetworkInterfaces(), newLS.getNetworkInterfaces())) return true;
    if (notEqual(oldLS.getIamInstanceProfile(), newLS.getIamInstanceProfile())) return true;
    if (notEqual(oldLS.getEbsOptimized(), newLS.getEbsOptimized())) return true;

    return false;
}
 
开发者ID:veyronfei,项目名称:clouck,代码行数:21,代码来源:Ec2SpotInstanceRequest.java

示例4: createInstances

import com.amazonaws.services.ec2.model.LaunchSpecification; //导入依赖的package包/类
public void createInstances(int count, double priceLimitDollars) {
	AmazonEC2 ec2 = new AmazonEC2Client(getAwsCredentials());
	ec2.setEndpoint(getOrCry("ec2endpoint"));

	log.info("Requesting " + count + " instances of type "
			+ getOrCry("ec2instancetype") + " with price limit of "
			+ priceLimitDollars + " US$");
	log.debug(startupScript);

	try {
		// our bid
		RequestSpotInstancesRequest runInstancesRequest = new RequestSpotInstancesRequest()
				.withSpotPrice(Double.toString(priceLimitDollars))
				.withInstanceCount(count).withType("persistent");

		// increase volume size
		// BlockDeviceMapping mapping = new BlockDeviceMapping()
		// .withDeviceName("/dev/sda1").withEbs(
		// new EbsBlockDevice().withVolumeSize(Integer
		// .parseInt(getOrCry("ec2disksize"))));

		// what we want
		LaunchSpecification workerSpec = new LaunchSpecification()
				.withInstanceType(getOrCry("ec2instancetype"))
				.withImageId(getOrCry("ec2ami"))
				.withKeyName(getOrCry("ec2keypair"))
				// .withBlockDeviceMappings(mapping)
				.withUserData(
						new String(Base64.encodeBase64(startupScript
								.getBytes())));

		runInstancesRequest.setLaunchSpecification(workerSpec);

		// place the request
		ec2.requestSpotInstances(runInstancesRequest);
		log.info("Request placed, now use 'monitor' to check how many instances are running. Use 'shutdown' to cancel the request and terminate the corresponding instances.");
	} catch (Exception e) {
		log.warn("Failed to start instances - ", e);
	}
}
 
开发者ID:JulianEberius,项目名称:dwtc-extractor,代码行数:41,代码来源:Master.java

示例5: launch

import com.amazonaws.services.ec2.model.LaunchSpecification; //导入依赖的package包/类
public List<String> launch(String workerAMI, String instanceType, int num,
		double price, List<String> securityGroups, String keyName, String userData, String charset) throws UnsupportedEncodingException {
	RequestSpotInstancesRequest requestRequest = new RequestSpotInstancesRequest();
	requestRequest.setSpotPrice(Double.toString(price));
	requestRequest.setInstanceCount(Integer.valueOf(num));

	LaunchSpecification launchSpecification = new LaunchSpecification();
	launchSpecification.setImageId(workerAMI);
	launchSpecification.setInstanceType(instanceType);
	launchSpecification.setSecurityGroups(securityGroups);
	launchSpecification.setUserData(new String(Base64.encode(userData.getBytes(charset))));
	launchSpecification.setKeyName(keyName); //for test
	
	requestRequest.setLaunchSpecification(launchSpecification);
	RequestSpotInstancesResult requestResult = ec2
			.requestSpotInstances(requestRequest);
	List<SpotInstanceRequest> requestResponses = requestResult
			.getSpotInstanceRequests();

	List<String> spotInstanceRequestIds = new ArrayList<String>();

	for (SpotInstanceRequest requestResponse : requestResponses) {
		System.out.println("Created Spot Request: "
				+ requestResponse.getSpotInstanceRequestId());
		spotInstanceRequestIds.add(requestResponse
				.getSpotInstanceRequestId());
	}
	return spotInstanceRequestIds;
}
 
开发者ID:cs553-cloud-computing,项目名称:amazon-cloudengine,代码行数:30,代码来源:EC2.java

示例6: main

import com.amazonaws.services.ec2.model.LaunchSpecification; //导入依赖的package包/类
public static void main(String[] args) {
    String region = "us-east-1";

    AWSCredentials credentials = new BasicAWSCredentials(awsAccessKeyId, awsSecretAccessKey);

    AmazonEC2 api = AmazonEC2ClientBuilder.standard().withRegion(region)
            .withCredentials(new AWSStaticCredentialsProvider(credentials)).build();

    // no particular availability zone
    String availabilityZone = null;
    String instanceType = "t1.micro";
    String imageId = "ami-3cf8b154";
    List<String> securityGroups = Arrays.asList("webserver");
    String keyPair = "instancekey";

    String bootScript = Joiner.on("\n")
            .join(Arrays.asList("#!/bin/bash", "sudo apt-get update -qy", "sudo apt-get install -qy apache2"));
    int instanceCount = 50;
    String bidPrice = "0.001";

    SpotPlacement placement = new SpotPlacement().withAvailabilityZone(availabilityZone);
    LaunchSpecification launchSpec = new LaunchSpecification().withInstanceType(instanceType).withImageId(imageId)
            .withPlacement(placement).withSecurityGroups(securityGroups).withKeyName(keyPair)
            .withUserData(AmazonApiUtils.base64Encode(bootScript));
    RequestSpotInstancesRequest request = new RequestSpotInstancesRequest().withInstanceCount(instanceCount)
            .withType(SpotInstanceType.Persistent).withSpotPrice(bidPrice).withLaunchSpecification(launchSpec);
    RequestSpotInstancesResult result = api.requestSpotInstances(request);

    for (SpotInstanceRequest spotRequest : result.getSpotInstanceRequests()) {
        LOG.info("placed request: {}", spotRequest.getSpotInstanceRequestId());
    }
}
 
开发者ID:elastisys,项目名称:scale.cloudpool,代码行数:33,代码来源:PlaceMultiInstanceRequest.java

示例7: 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);
}
 
开发者ID:elastisys,项目名称:scale.cloudpool,代码行数:34,代码来源:PlaceSpotInstanceRequests.java

示例8: 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;
}
 
开发者ID:cloudera,项目名称:director-aws-plugin,代码行数:65,代码来源:EC2Provider.java

示例9: spotRequest

import com.amazonaws.services.ec2.model.LaunchSpecification; //导入依赖的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()));
	}
 
开发者ID:rickdesantis,项目名称:cloud-runner,代码行数:52,代码来源:VirtualMachine.java

示例10: createRequest

import com.amazonaws.services.ec2.model.LaunchSpecification; //导入依赖的package包/类
private AmazonWebServiceRequest createRequest(Pool pool, DelegateExecution execution, boolean spot)
    throws IOException {
    final String businessKey = execution.getProcessBusinessKey();

    final String securityGroupName = SecurityGroups.formatNameFromBusinessKey(businessKey);
    final String keyPairName = KeyPairs.formatNameFromBusinessKey(businessKey);

    final String instanceType = pool.getHardware().getType();
    final String imageId = getImageIdFromPoolConfigurationOrQueryImageTable(
        pool, pool.getProvider(), instanceType);

    final String userData = Resources.toString(Resources.getResource(RunInstances.class,
        "/org/apache/provisionr/amazon/userdata.sh"), Charsets.UTF_8);

    List<BlockDevice> blockDevices = pool.getHardware().getBlockDevices();
    List<BlockDeviceMapping> blockDeviceMappings = Lists.newArrayList();
    if (blockDevices != null && blockDevices.size() > 0) {
        for (BlockDevice device : blockDevices) {
            blockDeviceMappings.add(new BlockDeviceMapping()
                .withDeviceName(device.getName())
                .withEbs(new EbsBlockDevice()
                    .withVolumeSize(device.getSize())
                    .withDeleteOnTermination(true)
                ));
        }
    }

    if (spot) {
        Calendar validUntil = Calendar.getInstance();
        validUntil.add(Calendar.MINUTE, 10);

        final String spotPrice = checkNotNull(pool.getProvider().getOption(ProviderOptions.SPOT_BID),
            "The bid for spot instances was not specified");

        LaunchSpecification ls = new LaunchSpecification()
            .withInstanceType(instanceType)
            .withKeyName(keyPairName)
            .withImageId(imageId)
            .withBlockDeviceMappings(blockDeviceMappings)
            .withSecurityGroups(Lists.newArrayList(securityGroupName))
            .withUserData(Base64.encodeBytes(userData.getBytes(Charsets.UTF_8)));

        return new RequestSpotInstancesRequest()
            .withSpotPrice(spotPrice)
            .withLaunchSpecification(ls)
            .withLaunchGroup(businessKey)
            .withInstanceCount(pool.getExpectedSize())
            .withType(SpotInstanceType.OneTime)
            .withValidUntil(validUntil.getTime());

    } else {
        return new RunInstancesRequest()
            .withClientToken(businessKey)
            .withSecurityGroups(securityGroupName)
            .withKeyName(keyPairName)
            .withInstanceType(instanceType)
            .withImageId(imageId)
            .withBlockDeviceMappings(blockDeviceMappings)
            .withMinCount(pool.getMinSize())
            .withMaxCount(pool.getExpectedSize())
            .withUserData(Base64.encodeBytes(userData.getBytes(Charsets.UTF_8)));
    }
}
 
开发者ID:apache,项目名称:incubator-provisionr,代码行数:64,代码来源:RunInstances.java

示例11: spotRequest

import com.amazonaws.services.ec2.model.LaunchSpecification; //导入依赖的package包/类
/**
 * Create a {@link SpotInstanceRequest} that may be associated with an
 * {@link Instance}.
 *
 * @param id
 * @param state
 * @param instanceId
 * @return
 */
public static SpotInstanceRequest spotRequest(String id, String state, String instanceId, Tag... tags) {
    return new SpotInstanceRequest().withSpotInstanceRequestId(id)
            .withLaunchSpecification(new LaunchSpecification().withInstanceType(InstanceType.M1Medium)
                    .withPlacement(new SpotPlacement("us-east-1b")))
            .withState(state).withInstanceId(instanceId).withTags(tags);
}
 
开发者ID:elastisys,项目名称:scale.cloudpool,代码行数:16,代码来源:SpotTestUtil.java


注:本文中的com.amazonaws.services.ec2.model.LaunchSpecification类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。