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, anddualstack
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
-
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 tous-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: