aws-cdk-lib.aws_ec2.MultipartUserData

class MultipartUserData

LanguageType name
.NETAmazon.CDK.AWS.EC2.MultipartUserData
Gogithub.com/aws/aws-cdk-go/awscdk/v2/awsec2#MultipartUserData
Javasoftware.amazon.awscdk.services.ec2.MultipartUserData
Pythonaws_cdk.aws_ec2.MultipartUserData
TypeScript (source)aws-cdk-lib » aws_ec2 » MultipartUserData

Extends UserData

Mime multipart user data.

This class represents MIME multipart user data, as described in. Specifying Multiple User Data Blocks Using a MIME Multi Part Archive

Example

const bootHookConf = ec2.UserData.forLinux();
bootHookConf.addCommands('cloud-init-per once docker_options echo \'OPTIONS="${OPTIONS} --storage-opt dm.basesize=40G"\' >> /etc/sysconfig/docker');

const setupCommands = ec2.UserData.forLinux();
setupCommands.addCommands('sudo yum install awscli && echo Packages installed らと > /var/tmp/setup');

const multipartUserData = new ec2.MultipartUserData();
// The docker has to be configured at early stage, so content type is overridden to boothook
multipartUserData.addPart(ec2.MultipartBody.fromUserData(bootHookConf, 'text/cloud-boothook; charset="us-ascii"'));
// Execute the rest of setup
multipartUserData.addPart(ec2.MultipartBody.fromUserData(setupCommands));

new ec2.LaunchTemplate(this, '', {
  userData: multipartUserData,
  blockDevices: [
    // Block device configuration rest
  ]
});

Initializer

new MultipartUserData(opts?: MultipartUserDataOptions)

Parameters

  • opts MultipartUserDataOptions

Methods

NameDescription
addCommands(...commands)Add one or more commands to the user data.
addExecuteFileCommand(params)Adds commands to execute a file.
addOnExitCommands(...commands)Add one or more commands to the user data that will run when the script exits.
addPart(part)Adds a part to the list of parts.
addS3DownloadCommand(params)Adds commands to download a file from S3.
addSignalOnExitCommand(resource)Adds a command which will send a cfn-signal when the user data script ends.
addUserDataPart(userData, contentType?, makeDefault?)Adds a multipart part based on a UserData object.
render()Render the UserData for use in a construct.

addCommands(...commands)

public addCommands(...commands: string[]): void

Parameters

  • commands string

Add one or more commands to the user data.


addExecuteFileCommand(params)

public addExecuteFileCommand(params: ExecuteFileOptions): void

Parameters

  • params ExecuteFileOptions

Adds commands to execute a file.


addOnExitCommands(...commands)

public addOnExitCommands(...commands: string[]): void

Parameters

  • commands string

Add one or more commands to the user data that will run when the script exits.


addPart(part)

public addPart(part: MultipartBody): void

Parameters

  • part MultipartBody

Adds a part to the list of parts.


addS3DownloadCommand(params)

public addS3DownloadCommand(params: S3DownloadOptions): string

Parameters

  • params S3DownloadOptions

Returns

  • string

Adds commands to download a file from S3.


addSignalOnExitCommand(resource)

public addSignalOnExitCommand(resource: Resource): void

Parameters

  • resource Resource

Adds a command which will send a cfn-signal when the user data script ends.


addUserDataPart(userData, contentType?, makeDefault?)

public addUserDataPart(userData: UserData, contentType?: string, makeDefault?: boolean): void

Parameters

  • userData UserData
  • contentType string
  • makeDefault boolean

Adds a multipart part based on a UserData object.

If makeDefault is true, then the UserData added by this method will also be the target of calls to the add*Command methods on this MultipartUserData object.

If makeDefault is false, then this is the same as calling:

declare const multiPart: ec2.MultipartUserData;
declare const userData: ec2.UserData;
declare const contentType: string;

multiPart.addPart(ec2.MultipartBody.fromUserData(userData, contentType));

An undefined makeDefault defaults to either:

  • true if no default UserData has been set yet; or
  • false if there is no default UserData set.

render()

public render(): string

Returns

  • string

Render the UserData for use in a construct.