# AttachInitOptions

Options for attaching a CloudFormationInit to a resource.

- Source: [`aws-ec2/lib/cfn-init.ts`](https://github.com/aws/aws-cdk/blob/v2.274.0/packages/aws-cdk-lib/aws-ec2/lib/cfn-init.ts#L370)

## Example

```ts
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import * as cdk from 'aws-cdk-lib';
import { aws_ec2 as ec2 } from 'aws-cdk-lib';
import { aws_iam as iam } from 'aws-cdk-lib';

declare const cfnResource: cdk.CfnResource;
declare const role: iam.Role;
declare const userData: ec2.UserData;
const attachInitOptions: ec2.AttachInitOptions = {
  instanceRole: role,
  platform: ec2.OperatingSystemType.LINUX,
  userData: userData,

  // the properties below are optional
  configSets: ['configSets'],
  embedFingerprint: false,
  ignoreFailures: false,
  includeRole: false,
  includeUrl: false,
  printLog: false,
  signalResource: cfnResource,
};
```

## Properties

- `configSets`: string[] = ['default'] — ConfigSet to activate.

- `embedFingerprint`: boolean = true — Whether to embed a hash into the userData.

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

  If `false`, no such hash will be embedded, and if the CloudFormation Init
  config changes nothing will happen to the running instance.

- `ignoreFailures`: boolean = false — Don't fail the instance creation when cfn-init fails.

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

- `includeRole`: boolean = false — Include --role argument when running cfn-init and cfn-signal commands.

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

- `includeUrl`: boolean = false — Include --url argument when running cfn-init and cfn-signal commands.

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

- `instanceRole`: [IRole](/cdk/api/v2/docs/aws-cdk-lib.aws_iam.IRole.html) (required) — Instance role of the consuming instance or fleet.

- `platform`: [OperatingSystemType](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.OperatingSystemType.html) (required) — OS Platform the init config will be used for.

- `printLog`: boolean = true — Print the results of running cfn-init to the Instance System Log.

  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).

- `signalResource`: [CfnResource](/cdk/api/v2/docs/aws-cdk-lib.CfnResource.html) — When provided, signals this resource instead of the attached resource.

  **Default:** if this property is undefined cfn-signal signals the attached resource

  You can use this to support signaling LaunchTemplate while attaching AutoScalingGroup

- `userData`: [UserData](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.UserData.html) (required) — UserData to add commands to.
