Class UserData
Instance User Data.
Namespace: Amazon.CDK.AWS.EC2
Assembly: Amazon.CDK.Lib.dll
Syntax (csharp)
public abstract class UserData : DeputyBase
Syntax (vb)
Public MustInherit Class UserData Inherits DeputyBase
Remarks
ExampleMetadata: infused
Examples
Cluster cluster;
var userData = UserData.ForLinux();
userData.AddCommands("set -o xtrace", $"/etc/eks/bootstrap.sh {cluster.clusterName}");
var lt = new CfnLaunchTemplate(this, "LaunchTemplate", new CfnLaunchTemplateProps {
LaunchTemplateData = new LaunchTemplateDataProperty {
ImageId = "some-ami-id", // custom AMI
InstanceType = "t3.small",
UserData = Fn.Base64(userData.Render())
}
});
cluster.AddNodegroupCapacity("extra-ng", new NodegroupOptions {
LaunchTemplateSpec = new LaunchTemplateSpec {
Id = lt.Ref,
Version = lt.AttrLatestVersionNumber
}
});
Synopsis
Constructors
| UserData() | Instance User Data. |
Methods
| AddCommands(params string[]) | Add one or more commands to the user data. |
| AddExecuteFileCommand(IExecuteFileOptions) | Adds commands to execute a file. |
| AddOnExitCommands(params string[]) | Add one or more commands to the user data that will run when the script exits. |
| AddS3DownloadCommand(IS3DownloadOptions) | 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. |
| Custom(string) | Create a userdata object with custom content. |
| ForLinux(ILinuxUserDataOptions?) | Create a userdata object for Linux hosts. |
| ForOperatingSystem(OperatingSystemType) | Instance User Data. |
| ForWindows(IWindowsUserDataOptions?) | Create a userdata object for Windows hosts. |
| Render() | Render the UserData for use in a construct. |
Constructors
UserData()
Instance User Data.
protected UserData()
Remarks
ExampleMetadata: infused
Examples
Cluster cluster;
var userData = UserData.ForLinux();
userData.AddCommands("set -o xtrace", $"/etc/eks/bootstrap.sh {cluster.clusterName}");
var lt = new CfnLaunchTemplate(this, "LaunchTemplate", new CfnLaunchTemplateProps {
LaunchTemplateData = new LaunchTemplateDataProperty {
ImageId = "some-ami-id", // custom AMI
InstanceType = "t3.small",
UserData = Fn.Base64(userData.Render())
}
});
cluster.AddNodegroupCapacity("extra-ng", new NodegroupOptions {
LaunchTemplateSpec = new LaunchTemplateSpec {
Id = lt.Ref,
Version = lt.AttrLatestVersionNumber
}
});
Methods
AddCommands(params string[])
Add one or more commands to the user data.
public abstract void AddCommands(params string[] commands)
Parameters
- commands string[]
Remarks
ExampleMetadata: infused
AddExecuteFileCommand(IExecuteFileOptions)
Adds commands to execute a file.
public abstract void AddExecuteFileCommand(IExecuteFileOptions @params)
Parameters
- params IExecuteFileOptions
Remarks
ExampleMetadata: infused
AddOnExitCommands(params string[])
Add one or more commands to the user data that will run when the script exits.
public abstract void AddOnExitCommands(params string[] commands)
Parameters
- commands string[]
Remarks
ExampleMetadata: infused
AddS3DownloadCommand(IS3DownloadOptions)
Adds commands to download a file from S3.
public abstract string AddS3DownloadCommand(IS3DownloadOptions @params)
Parameters
- params IS3DownloadOptions
Returns
: The local path that the file will be downloaded to
Remarks
ExampleMetadata: infused
AddSignalOnExitCommand(Resource)
Adds a command which will send a cfn-signal when the user data script ends.
public abstract void AddSignalOnExitCommand(Resource resource)
Parameters
- resource Resource
Remarks
ExampleMetadata: infused
Custom(string)
Create a userdata object with custom content.
public static UserData Custom(string content)
Parameters
- content string
Returns
Remarks
ExampleMetadata: infused
ForLinux(ILinuxUserDataOptions?)
Create a userdata object for Linux hosts.
public static UserData ForLinux(ILinuxUserDataOptions? options = null)
Parameters
- options ILinuxUserDataOptions
Returns
Remarks
ExampleMetadata: infused
ForOperatingSystem(OperatingSystemType)
Instance User Data.
public static UserData ForOperatingSystem(OperatingSystemType os)
Parameters
Returns
Remarks
ExampleMetadata: infused
Examples
Cluster cluster;
var userData = UserData.ForLinux();
userData.AddCommands("set -o xtrace", $"/etc/eks/bootstrap.sh {cluster.clusterName}");
var lt = new CfnLaunchTemplate(this, "LaunchTemplate", new CfnLaunchTemplateProps {
LaunchTemplateData = new LaunchTemplateDataProperty {
ImageId = "some-ami-id", // custom AMI
InstanceType = "t3.small",
UserData = Fn.Base64(userData.Render())
}
});
cluster.AddNodegroupCapacity("extra-ng", new NodegroupOptions {
LaunchTemplateSpec = new LaunchTemplateSpec {
Id = lt.Ref,
Version = lt.AttrLatestVersionNumber
}
});
ForWindows(IWindowsUserDataOptions?)
Create a userdata object for Windows hosts.
public static UserData ForWindows(IWindowsUserDataOptions? options = null)
Parameters
- options IWindowsUserDataOptions
Returns
Remarks
ExampleMetadata: infused
Render()
Render the UserData for use in a construct.
public abstract string Render()
Returns
Remarks
ExampleMetadata: infused