Show / Hide Table of Contents

Class ApplyCloudFormationInitOptions

Options for applying CloudFormation init to an instance or instance group.

Inheritance
System.Object
ApplyCloudFormationInitOptions
Implements
IApplyCloudFormationInitOptions
Namespace: Amazon.CDK.AWS.EC2
Assembly: Amazon.CDK.AWS.EC2.dll
Syntax (csharp)
public class ApplyCloudFormationInitOptions : Object, IApplyCloudFormationInitOptions
Syntax (vb)
Public Class ApplyCloudFormationInitOptions
    Inherits Object
    Implements IApplyCloudFormationInitOptions
Remarks

ExampleMetadata: infused

Examples
Vpc vpc;
InstanceType instanceType;
IMachineImage machineImage;


new Instance(this, "Instance", new InstanceProps {
    Vpc = vpc,
    InstanceType = instanceType,
    MachineImage = machineImage,

    // Showing the most complex setup, if you have simpler requirements
    // you can use `CloudFormationInit.fromElements()`.
    Init = CloudFormationInit.FromConfigSets(new ConfigSetProps {
        ConfigSets = new Dictionary<string, string[]> {
            // Applies the configs below in this order
            { "default", new [] { "yumPreinstall", "config" } }
        },
        Configs = new Dictionary<string, InitConfig> {
            { "yumPreinstall", new InitConfig(new [] { InitPackage.Yum("git") }) },
            { "config", new InitConfig(new [] { InitFile.FromObject("/etc/stack.json", new Dictionary<string, object> {
                { "stackId", Stack.Of(this).StackId },
                { "stackName", Stack.Of(this).StackName },
                { "region", Stack.Of(this).Region }
            }), InitGroup.FromName("my-group"), InitUser.FromName("my-user"), InitPackage.Rpm("http://mirrors.ukfast.co.uk/sites/dl.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/r/rubygem-git-1.5.0-2.el8.noarch.rpm") }) }
        }
    }),
    InitOptions = new ApplyCloudFormationInitOptions {
        // Optional, which configsets to activate (['default'] by default)
        ConfigSets = new [] { "default" },

        // Optional, how long the installation is expected to take (5 minutes by default)
        Timeout = Duration.Minutes(30),

        // Optional, whether to include the --url argument when running cfn-init and cfn-signal commands (false by default)
        IncludeUrl = true,

        // Optional, whether to include the --role argument when running cfn-init and cfn-signal commands (false by default)
        IncludeRole = true
    }
});

Synopsis

Constructors

ApplyCloudFormationInitOptions()

Properties

ConfigSets

ConfigSet to activate.

EmbedFingerprint

Force instance replacement by embedding a config fingerprint.

IgnoreFailures

Don't fail the instance creation when cfn-init fails.

IncludeRole

Include --role argument when running cfn-init and cfn-signal commands.

IncludeUrl

Include --url argument when running cfn-init and cfn-signal commands.

PrintLog

Print the results of running cfn-init to the Instance System Log.

Timeout

Timeout waiting for the configuration to be applied.

Constructors

ApplyCloudFormationInitOptions()

public ApplyCloudFormationInitOptions()

Properties

ConfigSets

ConfigSet to activate.

public string[] ConfigSets { get; set; }
Property Value

System.String[]

Remarks

Default: ['default']

EmbedFingerprint

Force instance replacement by embedding a config fingerprint.

public Nullable<bool> EmbedFingerprint { get; set; }
Property Value

System.Nullable<System.Boolean>

Remarks

If true (the default), a hash of the config will be embedded into the UserData, so that if the config changes, the UserData changes.

    If false, no hash will be embedded, and if the CloudFormation Init config changes nothing will happen to the running instance. If a config update introduces errors, you will not notice until after the CloudFormation deployment successfully finishes and the next instance fails to launch.

    Default: true

    IgnoreFailures

    Don't fail the instance creation when cfn-init fails.

    public Nullable<bool> IgnoreFailures { get; set; }
    Property Value

    System.Nullable<System.Boolean>

    Remarks

    You can use this to prevent CloudFormation from rolling back when instances fail to start up, to help in debugging.

    Default: false

    IncludeRole

    Include --role argument when running cfn-init and cfn-signal commands.

    public Nullable<bool> IncludeRole { get; set; }
    Property Value

    System.Nullable<System.Boolean>

    Remarks

    This will be the IAM instance profile attached to the EC2 instance

    Default: false

    IncludeUrl

    Include --url argument when running cfn-init and cfn-signal commands.

    public Nullable<bool> IncludeUrl { get; set; }
    Property Value

    System.Nullable<System.Boolean>

    Remarks

    This will be the cloudformation endpoint in the deployed region e.g. https://cloudformation.us-east-1.amazonaws.com

    Default: false

    PrintLog

    Print the results of running cfn-init to the Instance System Log.

    public Nullable<bool> PrintLog { get; set; }
    Property Value

    System.Nullable<System.Boolean>

    Remarks

    By default, the output of running cfn-init is written to a log file on the instance. Set this to true to print it to the System Log (visible from the EC2 Console), false to not print it.

    (Be aware that the system log is refreshed at certain points in time of the instance life cycle, and successful execution may not always show up).

    Default: true

    Timeout

    Timeout waiting for the configuration to be applied.

    public Duration Timeout { get; set; }
    Property Value

    Duration

    Remarks

    Default: Duration.minutes(5)

    Implements

    IApplyCloudFormationInitOptions
    Back to top Generated by DocFX