# SsmParameterImageOptions

Properties for GenericSsmParameterImage.

Extends: SsmParameterImageOptions
Used as props by: ResolveSsmParameterAtLaunchImage

- Source: [`aws-ec2/lib/machine-image/machine-image.ts`](https://github.com/aws/aws-cdk/blob/v2.274.0/packages/aws-cdk-lib/aws-ec2/lib/machine-image/machine-image.ts#L274)
- Type last changed: v2.201.0 · 13 Jun 2025

## Example

```ts
// Pick the right Amazon Linux edition. All arguments shown are optional
// and will default to these values when omitted.
const amznLinux = ec2.MachineImage.latestAmazonLinux({
  generation: ec2.AmazonLinuxGeneration.AMAZON_LINUX,
  edition: ec2.AmazonLinuxEdition.STANDARD,
  virtualization: ec2.AmazonLinuxVirt.HVM,
  storage: ec2.AmazonLinuxStorage.GENERAL_PURPOSE,
  cpuType: ec2.AmazonLinuxCpuType.X86_64,
});

// Pick a Windows edition to use
const windows = ec2.MachineImage.latestWindows(ec2.WindowsVersion.WINDOWS_SERVER_2019_ENGLISH_FULL_BASE);

// Read AMI id from SSM parameter store
const ssm = ec2.MachineImage.fromSsmParameter('/my/ami', { os: ec2.OperatingSystemType.LINUX });

// Look up the most recent image matching a set of AMI filters.
// In this case, look up the NAT instance AMI, by using a wildcard
// in the 'name' field:
const natAmi = ec2.MachineImage.lookup({
  name: 'amzn-ami-vpc-nat-*',
  owners: ['amazon'],
});

// For other custom (Linux) images, instantiate a `GenericLinuxImage` with
// a map giving the AMI to in for each region:
const linux = ec2.MachineImage.genericLinux({
  'us-east-1': 'ami-97785bed',
  'eu-west-1': 'ami-12345678',
  // ...
});

// For other custom (Windows) images, instantiate a `GenericWindowsImage` with
// a map giving the AMI to in for each region:
const genericWindows = ec2.MachineImage.genericWindows({
  'us-east-1': 'ami-97785bed',
  'eu-west-1': 'ami-12345678',
  // ...
});
```

## Properties

- `additionalCacheKey`: string — Adds an additional discriminator to the `cdk.context.json` cache key.

  **Default:** no additional cache key

- `cachedInContext`: boolean = false — Whether the AMI ID is cached to be stable between deployments.

  By default, the newest image is used on each deployment. This will cause
  instances to be replaced whenever a new version is released, and may cause
  downtime if there aren't enough running instances in the AutoScalingGroup
  to reschedule the tasks on.

  If set to true, the AMI ID will be cached in `cdk.context.json` and the
  same value will be used on future runs. Your instances will not be replaced
  but your AMI version will grow old over time. To refresh the AMI lookup,
  you will have to evict the value from the cache using the `cdk context`
  command. See https://docs.aws.amazon.com/cdk/latest/guide/context.html for
  more information.

  Can not be set to `true` in environment-agnostic stacks.

- `os`: [OperatingSystemType](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.OperatingSystemType.html) = OperatingSystemType.LINUX — Operating system.

- `parameterVersion`: string — The version of the SSM parameter.

  **Default:** no version specified.

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

  **Default:** UserData appropriate for the OS
