Interface IApplyCloudFormationInitOptions
Options for applying CloudFormation init to an instance or instance group.
Namespace: Amazon.CDK.AWS.EC2
Assembly: Amazon.CDK.AWS.EC2.dll
Syntax (csharp)
public interface IApplyCloudFormationInitOptions
Syntax (vb)
Public Interface 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
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. |
Properties
ConfigSets
ConfigSet to activate.
virtual string[] ConfigSets { get; }
Property Value
System.String[]
Remarks
Default: ['default']
EmbedFingerprint
Force instance replacement by embedding a config fingerprint.
virtual Nullable<bool> EmbedFingerprint { get; }
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.
virtual Nullable<bool> IgnoreFailures { get; }
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.
virtual Nullable<bool> IncludeRole { get; }
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.
virtual Nullable<bool> IncludeUrl { get; }
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.
virtual Nullable<bool> PrintLog { get; }
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.
virtual Duration Timeout { get; }
Property Value
Remarks
Default: Duration.minutes(5)