[ aws . imagebuilder ]
Creates a new distribution configuration. Distribution configurations define and configure the outputs of your pipeline.
See also: AWS API Documentation
See ‘aws help’ for descriptions of global parameters.
create-distribution-configuration
--name <value>
[--description <value>]
--distributions <value>
[--tags <value>]
[--client-token <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
--name
(string)
The name of the distribution configuration.
--description
(string)
The description of the distribution configuration.
--distributions
(list)
The distributions of the distribution configuration.
(structure)
Defines the settings for a specific Region.
region -> (string)
The target Region.
amiDistributionConfiguration -> (structure)
The specific AMI settings; for example, launch permissions or AMI tags.
name -> (string)
The name of the output AMI.
description -> (string)
The description of the AMI distribution configuration. Minimum and maximum length are in characters.
targetAccountIds -> (list)
The ID of an account to which you want to distribute an image.
(string)
amiTags -> (map)
The tags to apply to AMIs distributed to this Region.
key -> (string)
value -> (string)
kmsKeyId -> (string)
The KMS key identifier used to encrypt the distributed image.
launchPermission -> (structure)
Launch permissions can be used to configure which Amazon Web Services accounts can use the AMI to launch instances.
userIds -> (list)
The Amazon Web Services account ID.
(string)
userGroups -> (list)
The name of the group.
(string)
organizationArns -> (list)
The ARN for an Amazon Web Services Organization that you want to share your AMI with. For more information, see What is Organizations? .
(string)
organizationalUnitArns -> (list)
The ARN for an Organizations organizational unit (OU) that you want to share your AMI with. For more information about key concepts for Organizations, see Organizations terminology and concepts .
(string)
containerDistributionConfiguration -> (structure)
Container distribution settings for encryption, licensing, and sharing in a specific Region.
description -> (string)
The description of the container distribution configuration.
containerTags -> (list)
Tags that are attached to the container distribution configuration.
(string)
targetRepository -> (structure)
The destination repository for the container distribution configuration.
service -> (string)
Specifies the service in which this image was registered.
repositoryName -> (string)
The name of the container repository where the output container image is stored. This name is prefixed by the repository location.
licenseConfigurationArns -> (list)
The License Manager Configuration to associate with the AMI in the specified Region.
(string)
launchTemplateConfigurations -> (list)
A group of launchTemplateConfiguration settings that apply to image distribution for specified accounts.
(structure)
Identifies an Amazon EC2 launch template to use for a specific account.
launchTemplateId -> (string)
Identifies the Amazon EC2 launch template to use.
accountId -> (string)
The account ID that this configuration applies to.
setDefaultVersion -> (boolean)
Set the specified Amazon EC2 launch template as the default launch template for the specified account.
s3ExportConfiguration -> (structure)
Configure export settings to deliver disk images created from your image build, using a file format that is compatible with your VMs in that Region.
roleName -> (string)
The name of the role that grants VM Import/Export permission to export images to your S3 bucket.
diskImageFormat -> (string)
Export the updated image to one of the following supported disk image formats:
Virtual Hard Disk (VHD) – Compatible with Citrix Xen and Microsoft Hyper-V virtualization products.
Stream-optimized ESX Virtual Machine Disk (VMDK) – Compatible with VMware ESX and VMware vSphere versions 4, 5, and 6.
Raw – Raw format.
s3Bucket -> (string)
The S3 bucket in which to store the output disk images for your VM.
s3Prefix -> (string)
The Amazon S3 path for the bucket where the output disk images for your VM are stored.
JSON Syntax:
[
{
"region": "string",
"amiDistributionConfiguration": {
"name": "string",
"description": "string",
"targetAccountIds": ["string", ...],
"amiTags": {"string": "string"
...},
"kmsKeyId": "string",
"launchPermission": {
"userIds": ["string", ...],
"userGroups": ["string", ...],
"organizationArns": ["string", ...],
"organizationalUnitArns": ["string", ...]
}
},
"containerDistributionConfiguration": {
"description": "string",
"containerTags": ["string", ...],
"targetRepository": {
"service": "ECR",
"repositoryName": "string"
}
},
"licenseConfigurationArns": ["string", ...],
"launchTemplateConfigurations": [
{
"launchTemplateId": "string",
"accountId": "string",
"setDefaultVersion": true|false
}
...
],
"s3ExportConfiguration": {
"roleName": "string",
"diskImageFormat": "VMDK"|"RAW"|"VHD",
"s3Bucket": "string",
"s3Prefix": "string"
}
}
...
]
--tags
(map)
The tags of the distribution configuration.
key -> (string)
value -> (string)
Shorthand Syntax:
KeyName1=string,KeyName2=string
JSON Syntax:
{"string": "string"
...}
--client-token
(string)
The idempotency token of the distribution configuration.
--cli-input-json
| --cli-input-yaml
(string)
Reads arguments from the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton
. If other arguments are provided on the command line, those values will override the JSON-provided values. It is not possible to pass arbitrary binary values using a JSON-provided value as the string will be taken literally. This may not be specified along with --cli-input-yaml
.
--generate-cli-skeleton
(string)
Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input
, prints a sample input JSON that can be used as an argument for --cli-input-json
. Similarly, if provided yaml-input
it will print a sample input YAML that can be used with --cli-input-yaml
. If provided with the value output
, it validates the command inputs and returns a sample output JSON for that command.
See ‘aws help’ for descriptions of global parameters.
To create a distribution configuration
The following create-distribution-configuration
example creates a distribution configuration using a JSON file.
aws imagebuilder create-distribution-configuration \
--cli-input-json file:/create-distribution-configuration.json
Contents of create-distribution-configuration.json
:
{
"name": "MyExampleDistribution",
"description": "Copies AMI to eu-west-1",
"distributions": [
{
"region": "us-west-2",
"amiDistributionConfiguration": {
"name": "Name {{imagebuilder:buildDate}}",
"description": "An example image name with parameter references",
"amiTags": {
"KeyName": "{{ssm:parameter_name}}"
},
"launchPermission": {
"userIds": [
"123456789012"
]
}
}
},
{
"region": "eu-west-1",
"amiDistributionConfiguration": {
"name": "My {{imagebuilder:buildVersion}} image {{imagebuilder:buildDate}}",
"amiTags": {
"KeyName": "Value"
},
"launchPermission": {
"userIds": [
"123456789012"
]
}
}
}
]
}
Output:
{
"requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
"clientToken": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"distributionConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:distribution-configuration/myexampledistribution"
}
For more information, see Setting Up and Managing an EC2 Image Builder Image Pipeline Using the AWS CLI in the EC2 Image Builder Users Guide.
requestId -> (string)
The request ID that uniquely identifies this request.
clientToken -> (string)
The idempotency token used to make this request idempotent.
distributionConfigurationArn -> (string)
The Amazon Resource Name (ARN) of the distribution configuration that was created by this request.