CloudFront / Client / create_continuous_deployment_policy

create_continuous_deployment_policy#

CloudFront.Client.create_continuous_deployment_policy(**kwargs)#

Creates a continuous deployment policy that distributes traffic for a custom domain name to two different CloudFront distributions.

To use a continuous deployment policy, first use CopyDistribution to create a staging distribution, then use UpdateDistribution to modify the staging distribution’s configuration.

After you create and update a staging distribution, you can use a continuous deployment policy to incrementally move traffic to the staging distribution. This workflow enables you to test changes to a distribution’s configuration before moving all of your domain’s production traffic to the new configuration.

See also: AWS API Documentation

Request Syntax

response = client.create_continuous_deployment_policy(
    ContinuousDeploymentPolicyConfig={
        'StagingDistributionDnsNames': {
            'Quantity': 123,
            'Items': [
                'string',
            ]
        },
        'Enabled': True|False,
        'TrafficConfig': {
            'SingleWeightConfig': {
                'Weight': ...,
                'SessionStickinessConfig': {
                    'IdleTTL': 123,
                    'MaximumTTL': 123
                }
            },
            'SingleHeaderConfig': {
                'Header': 'string',
                'Value': 'string'
            },
            'Type': 'SingleWeight'|'SingleHeader'
        }
    }
)
Parameters:

ContinuousDeploymentPolicyConfig (dict) –

[REQUIRED]

Contains the configuration for a continuous deployment policy.

  • StagingDistributionDnsNames (dict) – [REQUIRED]

    The CloudFront domain name of the staging distribution. For example: d111111abcdef8.cloudfront.net.

    • Quantity (integer) – [REQUIRED]

      The number of CloudFront domain names in your staging distribution.

    • Items (list) –

      The CloudFront domain name of the staging distribution.

      • (string) –

  • Enabled (boolean) – [REQUIRED]

    A Boolean that indicates whether this continuous deployment policy is enabled (in effect). When this value is true, this policy is enabled and in effect. When this value is false, this policy is not enabled and has no effect.

  • TrafficConfig (dict) –

    Contains the parameters for routing production traffic from your primary to staging distributions.

    • SingleWeightConfig (dict) –

      Contains the percentage of traffic to send to the staging distribution.

      • Weight (float) – [REQUIRED]

        The percentage of traffic to send to a staging distribution, expressed as a decimal number between 0 and .15.

      • SessionStickinessConfig (dict) –

        Session stickiness provides the ability to define multiple requests from a single viewer as a single session. This prevents the potentially inconsistent experience of sending some of a given user’s requests to your staging distribution, while others are sent to your primary distribution. Define the session duration using TTL values.

        • IdleTTL (integer) – [REQUIRED]

          The amount of time after which you want sessions to cease if no requests are received. Allowed values are 300–3600 seconds (5–60 minutes).

          The value must be less than or equal to MaximumTTL.

        • MaximumTTL (integer) – [REQUIRED]

          The maximum amount of time to consider requests from the viewer as being part of the same session. Allowed values are 300–3600 seconds (5–60 minutes).

          The value must be less than or equal to IdleTTL.

    • SingleHeaderConfig (dict) –

      Determines which HTTP requests are sent to the staging distribution.

      • Header (string) – [REQUIRED]

        The request header name that you want CloudFront to send to your staging distribution. The header must contain the prefix aws-cf-cd-.

      • Value (string) – [REQUIRED]

        The request header value.

    • Type (string) – [REQUIRED]

      The type of traffic configuration.

Return type:

dict

Returns:

Response Syntax

{
    'ContinuousDeploymentPolicy': {
        'Id': 'string',
        'LastModifiedTime': datetime(2015, 1, 1),
        'ContinuousDeploymentPolicyConfig': {
            'StagingDistributionDnsNames': {
                'Quantity': 123,
                'Items': [
                    'string',
                ]
            },
            'Enabled': True|False,
            'TrafficConfig': {
                'SingleWeightConfig': {
                    'Weight': ...,
                    'SessionStickinessConfig': {
                        'IdleTTL': 123,
                        'MaximumTTL': 123
                    }
                },
                'SingleHeaderConfig': {
                    'Header': 'string',
                    'Value': 'string'
                },
                'Type': 'SingleWeight'|'SingleHeader'
            }
        }
    },
    'Location': 'string',
    'ETag': 'string'
}

Response Structure

  • (dict) –

    • ContinuousDeploymentPolicy (dict) –

      A continuous deployment policy.

      • Id (string) –

        The identifier of the continuous deployment policy.

      • LastModifiedTime (datetime) –

        The date and time the continuous deployment policy was last modified.

      • ContinuousDeploymentPolicyConfig (dict) –

        Contains the configuration for a continuous deployment policy.

        • StagingDistributionDnsNames (dict) –

          The CloudFront domain name of the staging distribution. For example: d111111abcdef8.cloudfront.net.

          • Quantity (integer) –

            The number of CloudFront domain names in your staging distribution.

          • Items (list) –

            The CloudFront domain name of the staging distribution.

            • (string) –

        • Enabled (boolean) –

          A Boolean that indicates whether this continuous deployment policy is enabled (in effect). When this value is true, this policy is enabled and in effect. When this value is false, this policy is not enabled and has no effect.

        • TrafficConfig (dict) –

          Contains the parameters for routing production traffic from your primary to staging distributions.

          • SingleWeightConfig (dict) –

            Contains the percentage of traffic to send to the staging distribution.

            • Weight (float) –

              The percentage of traffic to send to a staging distribution, expressed as a decimal number between 0 and .15.

            • SessionStickinessConfig (dict) –

              Session stickiness provides the ability to define multiple requests from a single viewer as a single session. This prevents the potentially inconsistent experience of sending some of a given user’s requests to your staging distribution, while others are sent to your primary distribution. Define the session duration using TTL values.

              • IdleTTL (integer) –

                The amount of time after which you want sessions to cease if no requests are received. Allowed values are 300–3600 seconds (5–60 minutes).

                The value must be less than or equal to MaximumTTL.

              • MaximumTTL (integer) –

                The maximum amount of time to consider requests from the viewer as being part of the same session. Allowed values are 300–3600 seconds (5–60 minutes).

                The value must be less than or equal to IdleTTL.

          • SingleHeaderConfig (dict) –

            Determines which HTTP requests are sent to the staging distribution.

            • Header (string) –

              The request header name that you want CloudFront to send to your staging distribution. The header must contain the prefix aws-cf-cd-.

            • Value (string) –

              The request header value.

          • Type (string) –

            The type of traffic configuration.

    • Location (string) –

      The location of the continuous deployment policy.

    • ETag (string) –

      The version identifier for the current version of the continuous deployment policy.

Exceptions

  • CloudFront.Client.exceptions.AccessDenied

  • CloudFront.Client.exceptions.InvalidArgument

  • CloudFront.Client.exceptions.InconsistentQuantities

  • CloudFront.Client.exceptions.ContinuousDeploymentPolicyAlreadyExists

  • CloudFront.Client.exceptions.TooManyContinuousDeploymentPolicies

  • CloudFront.Client.exceptions.StagingDistributionInUse