[ aws . imagebuilder ]

create-distribution-configuration

Description

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.

Synopsis

  create-distribution-configuration
--name <value>
[--description <value>]
--distributions <value>
[--tags <value>]
[--client-token <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]

Options

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

fastLaunchConfigurations -> (list)

The Windows faster-launching configurations to use for AMI distribution.

(structure)

Define and configure faster launching for output Windows AMIs.

enabled -> (boolean)

A Boolean that represents the current state of faster launching for the Windows AMI. Set to true to start using Windows faster launching, or false to stop using it.

snapshotConfiguration -> (structure)

Configuration settings for managing the number of snapshots that are created from pre-provisioned instances for the Windows AMI when faster launching is enabled.

targetResourceCount -> (integer)

The number of pre-provisioned snapshots to keep on hand for a fast-launch enabled Windows AMI.

maxParallelLaunches -> (integer)

The maximum number of parallel instances that are launched for creating resources.

launchTemplate -> (structure)

The launch template that the fast-launch enabled Windows AMI uses when it launches Windows instances to create pre-provisioned snapshots.

launchTemplateId -> (string)

The ID of the launch template to use for faster launching for a Windows AMI.

launchTemplateName -> (string)

The name of the launch template to use for faster launching for a Windows AMI.

launchTemplateVersion -> (string)

The version of the launch template to use for faster launching for a Windows AMI.

accountId -> (string)

The owner account ID for the fast-launch enabled Windows AMI.

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"
    },
    "fastLaunchConfigurations": [
      {
        "enabled": true|false,
        "snapshotConfiguration": {
          "targetResourceCount": integer
        },
        "maxParallelLaunches": integer,
        "launchTemplate": {
          "launchTemplateId": "string",
          "launchTemplateName": "string",
          "launchTemplateVersion": "string"
        },
        "accountId": "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.

Examples

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.

Output

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.