Example usage for com.amazonaws.services.autoscaling AmazonAutoScaling createLaunchConfiguration

List of usage examples for com.amazonaws.services.autoscaling AmazonAutoScaling createLaunchConfiguration

Introduction

In this page you can find the example usage for com.amazonaws.services.autoscaling AmazonAutoScaling createLaunchConfiguration.

Prototype

CreateLaunchConfigurationResult createLaunchConfiguration(
        CreateLaunchConfigurationRequest createLaunchConfigurationRequest);

Source Link

Document

Creates a launch configuration.

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  ww  w . j a v a2s  .  c om*/
 * @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);
}