aws-cdk-lib.aws_ec2.CloudFormationInit

class CloudFormationInit

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

A CloudFormation-init configuration.

Example

declare const vpc: ec2.Vpc;
declare const instanceType: ec2.InstanceType;

new ec2.Instance(this, 'Instance', {
  vpc,
  instanceType,
  machineImage: ec2.MachineImage.latestAmazonLinux2022(),

  init: ec2.CloudFormationInit.fromElements(
    // Create a simple config file that runs a Python web server
    ec2.InitService.systemdConfigFile('simpleserver', {
      command: '/usr/bin/python3 -m http.server 8080',
      cwd: '/var/www/html',
    }),
    // Start the server using SystemD
    ec2.InitService.enable('simpleserver', {
      serviceManager: ec2.ServiceManager.SYSTEMD,
    }),
    // Drop an example file to show the web server working
    ec2.InitFile.fromString('/var/www/html/index.html', 'Hello! It\'s working!'),
  ),
});

Methods

NameDescription
addConfig(configName, config)Add a config with the given name to this CloudFormationInit object.
addConfigSet(configSetName, configNames?)Add a config set with the given name to this CloudFormationInit object.
attach(attachedResource, attachOptions)Attach the CloudFormation Init config to the given resource.
static fromConfig(config)Use an existing InitConfig object as the default and only config.
static fromConfigSets(props)Build a CloudFormationInit from config sets.
static fromElements(...elements)Build a new config from a set of Init Elements.

addConfig(configName, config)

public addConfig(configName: string, config: InitConfig): void

Parameters

  • configName string
  • config InitConfig

Add a config with the given name to this CloudFormationInit object.


addConfigSet(configSetName, configNames?)

public addConfigSet(configSetName: string, configNames?: string[]): void

Parameters

  • configSetName string
  • configNames string[]

Add a config set with the given name to this CloudFormationInit object.

The new configset will reference the given configs in the given order.


attach(attachedResource, attachOptions)

public attach(attachedResource: CfnResource, attachOptions: AttachInitOptions): void

Parameters

  • attachedResource CfnResource
  • attachOptions AttachInitOptions

Attach the CloudFormation Init config to the given resource.

As an app builder, use instance.applyCloudFormationInit() or autoScalingGroup.applyCloudFormationInit() to trigger this method.

This method does the following:

  • Renders the AWS::CloudFormation::Init object to the given resource's metadata, potentially adding a AWS::CloudFormation::Authentication object next to it if required.
  • Updates the instance role policy to be able to call the APIs required for cfn-init and cfn-signal to work, and potentially add permissions to download referenced asset and bucket resources.
  • Updates the given UserData with commands to execute the cfn-init script.

static fromConfig(config)

public static fromConfig(config: InitConfig): CloudFormationInit

Parameters

  • config InitConfig

Returns

  • CloudFormationInit

Use an existing InitConfig object as the default and only config.


static fromConfigSets(props)

public static fromConfigSets(props: ConfigSetProps): CloudFormationInit

Parameters

  • props ConfigSetProps

Returns

  • CloudFormationInit

Build a CloudFormationInit from config sets.


static fromElements(...elements)

public static fromElements(...elements: InitElement[]): CloudFormationInit

Parameters

  • elements InitElement

Returns

  • CloudFormationInit

Build a new config from a set of Init Elements.