interface DistributionConfigurationProps
| Language | Type name |
|---|---|
.NET | Amazon.CDK.AWS.ImageBuilder.Alpha.DistributionConfigurationProps |
Go | github.com/aws/aws-cdk-go/awsimagebuilderalpha/v2#DistributionConfigurationProps |
Java | software.amazon.awscdk.services.imagebuilder.alpha.DistributionConfigurationProps |
Python | aws_cdk.aws_imagebuilder_alpha.DistributionConfigurationProps |
TypeScript (source) | @aws-cdk/aws-imagebuilder-alpha ยป DistributionConfigurationProps |
Properties for creating a Distribution Configuration resource.
Example
const distributionConfiguration = new imagebuilder.DistributionConfiguration(this, 'DistributionConfiguration', {
distributionConfigurationName: 'test-distribution-configuration',
description: 'A Distribution Configuration',
amiDistributions: [
{
// Distribute AMI to us-east-2 and publish the AMI ID to an SSM parameter
region: 'us-east-2',
ssmParameters: [
{
parameter: ssm.StringParameter.fromStringParameterAttributes(this, 'CrossRegionParameter', {
parameterName: '/imagebuilder/ami',
forceDynamicReference: true
})
}
]
}
]
});
// For AMI-based image builds - add an AMI distribution in the current region
distributionConfiguration.addAmiDistributions({
amiName: 'imagebuilder-{{ imagebuilder:buildDate }}',
amiDescription: 'Build AMI',
amiKmsKey: kms.Key.fromLookup(this, 'ComponentKey', { aliasName: 'alias/distribution-encryption-key' }),
// Copy the AMI to different accounts
amiTargetAccountIds: ['123456789012', '098765432109'],
// Add launch permissions on the AMI
amiLaunchPermission: {
organizationArns: [
this.formatArn({ region: '', service: 'organizations', resource: 'organization', resourceName: 'o-1234567abc' })
],
organizationalUnitArns: [
this.formatArn({
region: '',
service: 'organizations',
resource: 'ou',
resourceName: 'o-1234567abc/ou-a123-b4567890'
})
],
isPublicUserGroup: true,
accountIds: ['234567890123']
},
// Attach tags to the AMI
amiTags: {
Environment: 'production',
Version: '{{ imagebuilder:buildVersion }}'
},
// Optional - publish the distributed AMI ID to an SSM parameter
ssmParameters: [
{
parameter: ssm.StringParameter.fromStringParameterAttributes(this, 'Parameter', {
parameterName: '/imagebuilder/ami',
forceDynamicReference: true
})
},
{
amiAccount: '098765432109',
dataType: ssm.ParameterDataType.TEXT,
parameter: ssm.StringParameter.fromStringParameterAttributes(this, 'CrossAccountParameter', {
parameterName: 'imagebuilder-prod-ami',
forceDynamicReference: true
})
}
],
// Optional - create a new launch template version with the distributed AMI ID
launchTemplates: [
{
launchTemplate: ec2.LaunchTemplate.fromLaunchTemplateAttributes(this, 'LaunchTemplate', {
launchTemplateId: 'lt-1234'
}),
setDefaultVersion: true
},
{
accountId: '123456789012',
launchTemplate: ec2.LaunchTemplate.fromLaunchTemplateAttributes(this, 'CrossAccountLaunchTemplate', {
launchTemplateId: 'lt-5678'
}),
setDefaultVersion: true
}
],
// Optional - enable Fast Launch on an imported launch template
fastLaunchConfigurations: [
{
enabled: true,
launchTemplate: ec2.LaunchTemplate.fromLaunchTemplateAttributes(this, 'FastLaunchLT', {
launchTemplateName: 'fast-launch-lt'
}),
maxParallelLaunches: 10,
targetSnapshotCount: 2
}
],
// Optional - license configurations to apply to the AMI
licenseConfigurationArns: [
'arn:aws:license-manager:us-west-2:123456789012:license-configuration:lic-abcdefghijklmnopqrstuvwxyz'
]
});
Properties
| Name | Type | Description |
|---|---|---|
| ami | Ami[] | The list of target regions and associated AMI distribution settings where the built AMI will be distributed. |
| container | Container[] | The list of target regions and associated container distribution settings where the built container will be distributed. |
| description? | string | The description of the distribution configuration. |
| distribution | string | The name of the distribution configuration. |
| tags? | { [string]: string } | The tags to apply to the distribution configuration. |
amiDistributions?
Type:
Ami[]
(optional, default: None if container distributions are provided. Otherwise, at least one AMI or container distribution must
be provided)
The list of target regions and associated AMI distribution settings where the built AMI will be distributed.
AMI
distributions may also be added with the addAmiDistributions method.
containerDistributions?
Type:
Container[]
(optional, default: None if AMI distributions are provided. Otherwise, at least one AMI or container distribution must be
provided)
The list of target regions and associated container distribution settings where the built container will be distributed.
Container distributions may also be added with the addContainerDistributions method.
description?
Type:
string
(optional, default: None)
The description of the distribution configuration.
distributionConfigurationName?
Type:
string
(optional, default: A name is generated)
The name of the distribution configuration.
tags?
Type:
{ [string]: string }
(optional, default: None)
The tags to apply to the distribution configuration.

.NET
Go
Java
Python
TypeScript (