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

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

Introduction

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

Prototype


public CreateLaunchConfigurationRequest withIamInstanceProfile(String iamInstanceProfile) 

Source Link

Document

The name or the Amazon Resource Name (ARN) of the instance profile associated with the IAM role 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/* ww  w.  j a v a2  s .c  o 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);
}