Example usage for com.amazonaws.services.autoscaling.model CreateLaunchConfigurationRequest withBlockDeviceMappings

List of usage examples for com.amazonaws.services.autoscaling.model CreateLaunchConfigurationRequest withBlockDeviceMappings

Introduction

In this page you can find the example usage for com.amazonaws.services.autoscaling.model CreateLaunchConfigurationRequest withBlockDeviceMappings.

Prototype


public CreateLaunchConfigurationRequest withBlockDeviceMappings(
        java.util.Collection<BlockDeviceMapping> blockDeviceMappings) 

Source Link

Document

A block device mapping, which specifies the block devices for the instance.

Usage

From source file:gobblin.aws.AWSSdkClient.java

License:Apache License

/***
 * Create a launch configuration that can be later used to create {@link AmazonAutoScaling} groups
 *
 * @param launchConfigName Desired launch config name
 * @param imageId AMI image id to use//from www.ja  v  a  2 s  .co  m
 * @param instanceType EC2 instance type to use
 * @param keyName Key name
 * @param securityGroups Security groups to apply
 * @param kernelId Optional kernel id
 * @param ramdiskId Optional ram disk id
 * @param blockDeviceMapping Optional EBS device mapping
 * @param iamInstanceProfile Optional IAM instance profile
 * @param instanceMonitoring Optional instance monitoring
 * @param userData User data (eg. shell script to execute at instance boot under this launch config)
 */
public void createLaunchConfig(String launchConfigName, String imageId, String instanceType, String keyName,
        String securityGroups, Optional<String> kernelId, Optional<String> ramdiskId,
        Optional<BlockDeviceMapping> blockDeviceMapping, Optional<String> iamInstanceProfile,
        Optional<InstanceMonitoring> instanceMonitoring, String userData) {

    final AmazonAutoScaling autoScaling = getAmazonAutoScalingClient();

    CreateLaunchConfigurationRequest createLaunchConfigurationRequest = new CreateLaunchConfigurationRequest()
            .withLaunchConfigurationName(launchConfigName).withImageId(imageId).withInstanceType(instanceType)
            .withSecurityGroups(SPLITTER.splitToList(securityGroups)).withKeyName(keyName)
            .withUserData(userData);
    if (kernelId.isPresent()) {
        createLaunchConfigurationRequest = createLaunchConfigurationRequest.withKernelId(kernelId.get());
    }
    if (ramdiskId.isPresent()) {
        createLaunchConfigurationRequest = createLaunchConfigurationRequest.withRamdiskId(ramdiskId.get());
    }
    if (blockDeviceMapping.isPresent()) {
        createLaunchConfigurationRequest = createLaunchConfigurationRequest
                .withBlockDeviceMappings(blockDeviceMapping.get());
    }
    if (iamInstanceProfile.isPresent()) {
        createLaunchConfigurationRequest = createLaunchConfigurationRequest
                .withIamInstanceProfile(iamInstanceProfile.get());
    }
    if (instanceMonitoring.isPresent()) {
        createLaunchConfigurationRequest = createLaunchConfigurationRequest
                .withInstanceMonitoring(instanceMonitoring.get());
    }

    autoScaling.createLaunchConfiguration(createLaunchConfigurationRequest);

    LOGGER.info("Created Launch Configuration: " + launchConfigName);
}