PUT Distribution Config

Description

This action sets the configuration for a distribution. You use this when updating the configuration. You must follow a particular process when updating a distribution's configuration. For more information, go to Updating a Distribution's Configuration in the Amazon CloudFront Developer Guide.

To set a distribution's configuration, you do a PUT on the 2009-12-01/distribution/<distribution ID>/config resource. The request body must include an XML document with a DistributionConfig element. The new DistributionConfig configuration replaces the existing configuration; they are not merged. This distinction is important to remember when adding an additional CNAME alias to a distribution that already has one. Make sure to include the original CNAME alias in the DistributionConfig object, or else your update erases the original CNAME alias and just adds the new one.

If you try to change configuration items that cannot be changed (the origin and the caller reference), CloudFront returns an IllegalUpdate error.

Requests

Syntax

PUT /2009-12-01/distribution/<distribution ID>/config HTTP/1.1
Host: cloudfront.amazonaws.com
If-Match: [value from ETag header in previous GET response]
Authorization: [AWS authentication string]
[Other required headers]			

<?xml version="1.0" encoding="UTF-8"?>
<DistributionConfig xmlns="http://cloudfront.amazonaws.com/doc/2009-12-01/">
   ...
   See the description of the DistributionConfig element 
   for required and optional child elements
   ...
</DistributionConfig>

Headers

The following table lists the special request header the action uses in addition to the common request headers all actions use (for more information, see Common REST Headers).

NameDescriptionRequired

If-Match

The value of the ETag header you received when retrieving the distribution's configuration. For example: E2QWRUHAPOMQZL

Type: String

Yes

Request Elements

Name Description Required

DistributionConfig

The distribution's configuration information. For more information, see DistributionConfig Complex Type.

Type: DistributionConfig complex type

Yes

Responses

Syntax

200 OK
ETag: [ETag value to use later when doing a DELETE]
x-amz-request-id: [Request ID]
			
<?xml version="1.0" encoding="UTF-8"?>
<Distribution xmlns="http://cloudfront.amazonaws.com/doc/2009-12-01/">
   ...
   See the description of the Distribution element
   for a list of child elements that can appear here
   ...
</Distribution>

Headers

NameDescription

ETag

The current version of the configuration. For example: E2QWRUHAPOMQZL. For information about using the ETag header value, go to Deleting a Distribution in the Amazon CloudFront Developer Guide.

Type: String

Elements

NameDescription

Distribution

The distribution's information. For more information, see Distribution Complex Type.

Type: Distribution datatype

Special Errors

The following table lists the special errors returned in addition to the common errors all actions return (for more information, see Errors).

ErrorDescriptionHTTP Status Code

CNAMEAlreadyExists

One or more of the CNAMEs you provided are already associated with a different distribution.

409

IllegalUpdate

Origin and CallerReference cannot be updated.

400

InvalidIfMatchVersion

The If-Match version is missing or not valid for the distribution.

400

InvalidOriginAccessIdentity

The origin access identity is not valid or doesn't exist.

400

MissingBody

This operation requires a body. Ensure that the body is present and the Content-Type header is set.

400

NoSuchDistribution

The specified distribution does not exist.

404

PreconditionFailed

The precondition given in one or more of the request-header fields evaluated to false.

412

TooManyDistributionCNAMEs

Your request contains more CNAMEs than are allowed per distribution.

400

TooManyTrustedSigners

Your request contains more trusted signers than are allowed per distribution.

400

TrustedSignerDoesNotExist

One or more of your trusted signers do not exist.

400

Examples

The following example request updates the configuration for the EDFDVBD632BHDS5 distribution.

Sample Request

PUT /2009-12-01/distribution/EDFDVBD632BHDS5/config HTTP/1.1
Host: cloudfront.amazonaws.com
Authorization: AWS O39F6A430S6FJNPPGDR2:frJIUN8DYpKDtOLEXAMPLE=
Date: Thu, 19 Nov 2009 19:37:58 GMT
If-Match: E2QWRUHAPOMQZL
[Other required headers]

<?xml version="1.0" encoding="UTF-8"?>
<DistributionConfig xmlns="http://cloudfront.amazonaws.com/doc/2009-12-01/">
   <Origin>mybucket.s3.amazonaws.com</Origin>
   <CallerReference>20091130090000</CallerReference>
   <CNAME>beagles.com</CNAME>
   <Comment>A different comment</Comment>
   <Enabled>true</Enabled>
   <Logging>
      <Bucket>mylogs.s3.amazonaws.com</Bucket>
      <Prefix>myprefix/</Prefix>
   </Logging>
</DistributionConfig>

Sample Response

200 OK
ETag: E9LHASXUMDPRTF
x-amz-request-id: request_id
			
<?xml version="1.0" encoding="UTF-8"?>
<Distribution xmlns="http://cloudfront.amazonaws.com/doc/2009-12-01/">
   <Id>EDFDVBD632BHDS5</Id>
   <Status>InProgress</Status>
   <LastModifiedTime>2009-11-19T19:37:58Z</LastModifiedTime>
   <DomainName>d604721fxaaqy9.cloudfront.net</DomainName>
   <DistributionConfig>
      <Origin>mybucket.s3.amazonaws.com</Origin>
      <CallerReference>20091130090000</CallerReference>
      <CNAME>beagles.com</CNAME>
      <Comment>A different comment</Comment>
      <Enabled>true</Enabled>
      <Logging>
         <Bucket>mylogs.s3.amazonaws.com</Bucket>
         <Prefix>myprefix/</Prefix>
      </Logging>
   </DistributionConfig>
</Distribution>

Related Actions