CreateDistribution - Amazon Lightsail

CreateDistribution

Creates an Amazon Lightsail content delivery network (CDN) distribution.

A distribution is a globally distributed network of caching servers that improve the performance of your website or web application hosted on a Lightsail instance. For more information, see Content delivery networks in Amazon Lightsail.

Request Syntax

{ "bundleId": "string", "cacheBehaviors": [ { "behavior": "string", "path": "string" } ], "cacheBehaviorSettings": { "allowedHTTPMethods": "string", "cachedHTTPMethods": "string", "defaultTTL": number, "forwardedCookies": { "cookiesAllowList": [ "string" ], "option": "string" }, "forwardedHeaders": { "headersAllowList": [ "string" ], "option": "string" }, "forwardedQueryStrings": { "option": boolean, "queryStringsAllowList": [ "string" ] }, "maximumTTL": number, "minimumTTL": number }, "certificateName": "string", "defaultCacheBehavior": { "behavior": "string" }, "distributionName": "string", "ipAddressType": "string", "origin": { "name": "string", "protocolPolicy": "string", "regionName": "string", "responseTimeout": number }, "tags": [ { "key": "string", "value": "string" } ], "viewerMinimumTlsProtocolVersion": "string" }

Request Parameters

For information about the parameters that are common to all actions, see Common Parameters.

The request accepts the following data in JSON format.

bundleId

The bundle ID to use for the distribution.

A distribution bundle describes the specifications of your distribution, such as the monthly cost and monthly network transfer quota.

Use the GetDistributionBundles action to get a list of distribution bundle IDs that you can specify.

Type: String

Required: Yes

cacheBehaviors

An array of objects that describe the per-path cache behavior for the distribution.

Type: Array of CacheBehaviorPerPath objects

Required: No

cacheBehaviorSettings

An object that describes the cache behavior settings for the distribution.

Type: CacheSettings object

Required: No

certificateName

The name of the SSL/TLS certificate that you want to attach to the distribution.

Use the GetCertificates action to get a list of certificate names that you can specify.

Type: String

Pattern: \w[\w\-]*\w

Required: No

defaultCacheBehavior

An object that describes the default cache behavior for the distribution.

Type: CacheBehavior object

Required: Yes

distributionName

The name for the distribution.

Type: String

Pattern: \w[\w\-]*\w

Required: Yes

ipAddressType

The IP address type for the distribution.

The possible values are ipv4 for IPv4 only, and dualstack for IPv4 and IPv6.

The default value is dualstack.

Type: String

Valid Values: dualstack | ipv4 | ipv6

Required: No

origin

An object that describes the origin resource for the distribution, such as a Lightsail instance, bucket, or load balancer.

The distribution pulls, caches, and serves content from the origin.

Type: InputOrigin object

Required: Yes

tags

The tag keys and optional values to add to the distribution during create.

Use the TagResource action to tag a resource after it's created.

Type: Array of Tag objects

Required: No

viewerMinimumTlsProtocolVersion

The minimum TLS protocol version for the SSL/TLS certificate.

Type: String

Valid Values: TLSv1.1_2016 | TLSv1.2_2018 | TLSv1.2_2019 | TLSv1.2_2021

Required: No

Response Syntax

{ "distribution": { "ableToUpdateBundle": boolean, "alternativeDomainNames": [ "string" ], "arn": "string", "bundleId": "string", "cacheBehaviors": [ { "behavior": "string", "path": "string" } ], "cacheBehaviorSettings": { "allowedHTTPMethods": "string", "cachedHTTPMethods": "string", "defaultTTL": number, "forwardedCookies": { "cookiesAllowList": [ "string" ], "option": "string" }, "forwardedHeaders": { "headersAllowList": [ "string" ], "option": "string" }, "forwardedQueryStrings": { "option": boolean, "queryStringsAllowList": [ "string" ] }, "maximumTTL": number, "minimumTTL": number }, "certificateName": "string", "createdAt": number, "defaultCacheBehavior": { "behavior": "string" }, "domainName": "string", "ipAddressType": "string", "isEnabled": boolean, "location": { "availabilityZone": "string", "regionName": "string" }, "name": "string", "origin": { "name": "string", "protocolPolicy": "string", "regionName": "string", "resourceType": "string", "responseTimeout": number }, "originPublicDNS": "string", "resourceType": "string", "status": "string", "supportCode": "string", "tags": [ { "key": "string", "value": "string" } ], "viewerMinimumTlsProtocolVersion": "string" }, "operation": { "createdAt": number, "errorCode": "string", "errorDetails": "string", "id": "string", "isTerminal": boolean, "location": { "availabilityZone": "string", "regionName": "string" }, "operationDetails": "string", "operationType": "string", "resourceName": "string", "resourceType": "string", "status": "string", "statusChangedAt": number } }

Response Elements

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

distribution

An object that describes the distribution created.

Type: LightsailDistribution object

operation

An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.

Type: Operation object

Errors

For information about the errors that are common to all actions, see Common Errors.

AccessDeniedException

Lightsail throws this exception when the user cannot be authenticated or uses invalid credentials to access a resource.

HTTP Status Code: 400

InvalidInputException

Lightsail throws this exception when user input does not conform to the validation rules of an input field.

Note

Domain and distribution APIs are only available in the N. Virginia (us-east-1) AWS Region. Please set your AWS Region configuration to us-east-1 to create, view, or edit these resources.

HTTP Status Code: 400

NotFoundException

Lightsail throws this exception when it cannot find a resource.

HTTP Status Code: 400

OperationFailureException

Lightsail throws this exception when an operation fails to execute.

HTTP Status Code: 400

ServiceException

A general service exception.

HTTP Status Code: 500

UnauthenticatedException

Lightsail throws this exception when the user has not been authenticated.

HTTP Status Code: 400

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: