CloudFront / Client / create_function

create_function#

CloudFront.Client.create_function(**kwargs)#

Creates a CloudFront function.

To create a function, you provide the function code and some configuration information about the function. The response contains an Amazon Resource Name (ARN) that uniquely identifies the function.

When you create a function, it’s in the DEVELOPMENT stage. In this stage, you can test the function with TestFunction, and update it with UpdateFunction.

When you’re ready to use your function with a CloudFront distribution, use PublishFunction to copy the function from the DEVELOPMENT stage to LIVE. When it’s live, you can attach the function to a distribution’s cache behavior, using the function’s ARN.

See also: AWS API Documentation

Request Syntax

response = client.create_function(
    Name='string',
    FunctionConfig={
        'Comment': 'string',
        'Runtime': 'cloudfront-js-1.0'|'cloudfront-js-2.0',
        'KeyValueStoreAssociations': {
            'Quantity': 123,
            'Items': [
                {
                    'KeyValueStoreARN': 'string'
                },
            ]
        }
    },
    FunctionCode=b'bytes'
)
Parameters:
  • Name (string) –

    [REQUIRED]

    A name to identify the function.

  • FunctionConfig (dict) –

    [REQUIRED]

    Configuration information about the function, including an optional comment and the function’s runtime.

    • Comment (string) – [REQUIRED]

      A comment to describe the function.

    • Runtime (string) – [REQUIRED]

      The function’s runtime environment version.

    • KeyValueStoreAssociations (dict) –

      The configuration for the key value store associations.

      • Quantity (integer) – [REQUIRED]

        The quantity of key value store associations.

      • Items (list) –

        The items of the key value store association.

        • (dict) –

          The key value store association.

          • KeyValueStoreARN (string) – [REQUIRED]

            The Amazon Resource Name (ARN) of the key value store association.

  • FunctionCode (bytes) –

    [REQUIRED]

    The function code. For more information about writing a CloudFront function, see Writing function code for CloudFront Functions in the Amazon CloudFront Developer Guide.

Return type:

dict

Returns:

Response Syntax

{
    'FunctionSummary': {
        'Name': 'string',
        'Status': 'string',
        'FunctionConfig': {
            'Comment': 'string',
            'Runtime': 'cloudfront-js-1.0'|'cloudfront-js-2.0',
            'KeyValueStoreAssociations': {
                'Quantity': 123,
                'Items': [
                    {
                        'KeyValueStoreARN': 'string'
                    },
                ]
            }
        },
        'FunctionMetadata': {
            'FunctionARN': 'string',
            'Stage': 'DEVELOPMENT'|'LIVE',
            'CreatedTime': datetime(2015, 1, 1),
            'LastModifiedTime': datetime(2015, 1, 1)
        }
    },
    'Location': 'string',
    'ETag': 'string'
}

Response Structure

  • (dict) –

    • FunctionSummary (dict) –

      Contains configuration information and metadata about a CloudFront function.

      • Name (string) –

        The name of the CloudFront function.

      • Status (string) –

        The status of the CloudFront function.

      • FunctionConfig (dict) –

        Contains configuration information about a CloudFront function.

        • Comment (string) –

          A comment to describe the function.

        • Runtime (string) –

          The function’s runtime environment version.

        • KeyValueStoreAssociations (dict) –

          The configuration for the key value store associations.

          • Quantity (integer) –

            The quantity of key value store associations.

          • Items (list) –

            The items of the key value store association.

            • (dict) –

              The key value store association.

              • KeyValueStoreARN (string) –

                The Amazon Resource Name (ARN) of the key value store association.

      • FunctionMetadata (dict) –

        Contains metadata about a CloudFront function.

        • FunctionARN (string) –

          The Amazon Resource Name (ARN) of the function. The ARN uniquely identifies the function.

        • Stage (string) –

          The stage that the function is in, either DEVELOPMENT or LIVE.

          When a function is in the DEVELOPMENT stage, you can test the function with TestFunction, and update it with UpdateFunction.

          When a function is in the LIVE stage, you can attach the function to a distribution’s cache behavior, using the function’s ARN.

        • CreatedTime (datetime) –

          The date and time when the function was created.

        • LastModifiedTime (datetime) –

          The date and time when the function was most recently updated.

    • Location (string) –

      The URL of the CloudFront function. Use the URL to manage the function with the CloudFront API.

    • ETag (string) –

      The version identifier for the current version of the CloudFront function.

Exceptions

  • CloudFront.Client.exceptions.FunctionAlreadyExists

  • CloudFront.Client.exceptions.UnsupportedOperation

  • CloudFront.Client.exceptions.FunctionSizeLimitExceeded

  • CloudFront.Client.exceptions.InvalidArgument

  • CloudFront.Client.exceptions.TooManyFunctions