Amazon AppConfig

2024/03/07 - Amazon AppConfig - 4 updated api methods

Changes  AWS AppConfig now supports dynamic parameters, which enhance the functionality of AppConfig Extensions by allowing you to provide parameter values to your Extensions at the time you deploy your configuration.

CreateExtension (updated) Link ¶
Changes (both)
{'Parameters': {'Dynamic': 'boolean'}}

Creates an AppConfig extension. An extension augments your ability to inject logic or behavior at different points during the AppConfig workflow of creating or deploying a configuration.

You can create your own extensions or use the Amazon Web Services authored extensions provided by AppConfig. For an AppConfig extension that uses Lambda, you must create a Lambda function to perform any computation and processing defined in the extension. If you plan to create custom versions of the Amazon Web Services authored notification extensions, you only need to specify an Amazon Resource Name (ARN) in the Uri field for the new extension version.

  • For a custom EventBridge notification extension, enter the ARN of the EventBridge default events in the Uri field.

  • For a custom Amazon SNS notification extension, enter the ARN of an Amazon SNS topic in the Uri field.

  • For a custom Amazon SQS notification extension, enter the ARN of an Amazon SQS message queue in the Uri field.

For more information about extensions, see Extending workflows in the AppConfig User Guide.

See also: AWS API Documentation

Request Syntax

client.create_extension(
    Name='string',
    Description='string',
    Actions={
        'string': [
            {
                'Name': 'string',
                'Description': 'string',
                'Uri': 'string',
                'RoleArn': 'string'
            },
        ]
    },
    Parameters={
        'string': {
            'Description': 'string',
            'Required': True|False,
            'Dynamic': True|False
        }
    },
    Tags={
        'string': 'string'
    },
    LatestVersionNumber=123
)
type Name:

string

param Name:

[REQUIRED]

A name for the extension. Each extension name in your account must be unique. Extension versions use the same name.

type Description:

string

param Description:

Information about the extension.

type Actions:

dict

param Actions:

[REQUIRED]

The actions defined in the extension.

  • (string) --

    • (list) --

      • (dict) --

        An action defines the tasks that the extension performs during the AppConfig workflow. Each action includes an action point such as ON_CREATE_HOSTED_CONFIGURATION, PRE_DEPLOYMENT, or ON_DEPLOYMENT. Each action also includes a name, a URI to an Lambda function, and an Amazon Resource Name (ARN) for an Identity and Access Management assume role. You specify the name, URI, and ARN for each action point defined in the extension. You can specify the following actions for an extension:

        • PRE_CREATE_HOSTED_CONFIGURATION_VERSION

        • PRE_START_DEPLOYMENT

        • ON_DEPLOYMENT_START

        • ON_DEPLOYMENT_STEP

        • ON_DEPLOYMENT_BAKING

        • ON_DEPLOYMENT_COMPLETE

        • ON_DEPLOYMENT_ROLLED_BACK

        • Name (string) --

          The action name.

        • Description (string) --

          Information about the action.

        • Uri (string) --

          The extension URI associated to the action point in the extension definition. The URI can be an Amazon Resource Name (ARN) for one of the following: an Lambda function, an Amazon Simple Queue Service queue, an Amazon Simple Notification Service topic, or the Amazon EventBridge default event bus.

        • RoleArn (string) --

          An Amazon Resource Name (ARN) for an Identity and Access Management assume role.

type Parameters:

dict

param Parameters:

The parameters accepted by the extension. You specify parameter values when you associate the extension to an AppConfig resource by using the CreateExtensionAssociation API action. For Lambda extension actions, these parameters are included in the Lambda request object.

  • (string) --

    • (dict) --

      A value such as an Amazon Resource Name (ARN) or an Amazon Simple Notification Service topic entered in an extension when invoked. Parameter values are specified in an extension association. For more information about extensions, see Extending workflows in the AppConfig User Guide.

      • Description (string) --

        Information about the parameter.

      • Required (boolean) --

        A parameter value must be specified in the extension association.

      • Dynamic (boolean) --

        Indicates whether this parameter's value can be supplied at the extension's action point instead of during extension association. Dynamic parameters can't be marked Required.

type Tags:

dict

param Tags:

Adds one or more tags for the specified extension. Tags are metadata that help you categorize resources in different ways, for example, by purpose, owner, or environment. Each tag consists of a key and an optional value, both of which you define.

  • (string) --

    • (string) --

type LatestVersionNumber:

integer

param LatestVersionNumber:

You can omit this field when you create an extension. When you create a new version, specify the most recent current version number. For example, you create version 3, enter 2 for this field.

rtype:

dict

returns:

Response Syntax

{
    'Id': 'string',
    'Name': 'string',
    'VersionNumber': 123,
    'Arn': 'string',
    'Description': 'string',
    'Actions': {
        'string': [
            {
                'Name': 'string',
                'Description': 'string',
                'Uri': 'string',
                'RoleArn': 'string'
            },
        ]
    },
    'Parameters': {
        'string': {
            'Description': 'string',
            'Required': True|False,
            'Dynamic': True|False
        }
    }
}

Response Structure

  • (dict) --

    • Id (string) --

      The system-generated ID of the extension.

    • Name (string) --

      The extension name.

    • VersionNumber (integer) --

      The extension version number.

    • Arn (string) --

      The system-generated Amazon Resource Name (ARN) for the extension.

    • Description (string) --

      Information about the extension.

    • Actions (dict) --

      The actions defined in the extension.

      • (string) --

        • (list) --

          • (dict) --

            An action defines the tasks that the extension performs during the AppConfig workflow. Each action includes an action point such as ON_CREATE_HOSTED_CONFIGURATION, PRE_DEPLOYMENT, or ON_DEPLOYMENT. Each action also includes a name, a URI to an Lambda function, and an Amazon Resource Name (ARN) for an Identity and Access Management assume role. You specify the name, URI, and ARN for each action point defined in the extension. You can specify the following actions for an extension:

            • PRE_CREATE_HOSTED_CONFIGURATION_VERSION

            • PRE_START_DEPLOYMENT

            • ON_DEPLOYMENT_START

            • ON_DEPLOYMENT_STEP

            • ON_DEPLOYMENT_BAKING

            • ON_DEPLOYMENT_COMPLETE

            • ON_DEPLOYMENT_ROLLED_BACK

            • Name (string) --

              The action name.

            • Description (string) --

              Information about the action.

            • Uri (string) --

              The extension URI associated to the action point in the extension definition. The URI can be an Amazon Resource Name (ARN) for one of the following: an Lambda function, an Amazon Simple Queue Service queue, an Amazon Simple Notification Service topic, or the Amazon EventBridge default event bus.

            • RoleArn (string) --

              An Amazon Resource Name (ARN) for an Identity and Access Management assume role.

    • Parameters (dict) --

      The parameters accepted by the extension. You specify parameter values when you associate the extension to an AppConfig resource by using the CreateExtensionAssociation API action. For Lambda extension actions, these parameters are included in the Lambda request object.

      • (string) --

        • (dict) --

          A value such as an Amazon Resource Name (ARN) or an Amazon Simple Notification Service topic entered in an extension when invoked. Parameter values are specified in an extension association. For more information about extensions, see Extending workflows in the AppConfig User Guide.

          • Description (string) --

            Information about the parameter.

          • Required (boolean) --

            A parameter value must be specified in the extension association.

          • Dynamic (boolean) --

            Indicates whether this parameter's value can be supplied at the extension's action point instead of during extension association. Dynamic parameters can't be marked Required.

GetExtension (updated) Link ¶
Changes (response)
{'Parameters': {'Dynamic': 'boolean'}}

Returns information about an AppConfig extension.

See also: AWS API Documentation

Request Syntax

client.get_extension(
    ExtensionIdentifier='string',
    VersionNumber=123
)
type ExtensionIdentifier:

string

param ExtensionIdentifier:

[REQUIRED]

The name, the ID, or the Amazon Resource Name (ARN) of the extension.

type VersionNumber:

integer

param VersionNumber:

The extension version number. If no version number was defined, AppConfig uses the highest version.

rtype:

dict

returns:

Response Syntax

{
    'Id': 'string',
    'Name': 'string',
    'VersionNumber': 123,
    'Arn': 'string',
    'Description': 'string',
    'Actions': {
        'string': [
            {
                'Name': 'string',
                'Description': 'string',
                'Uri': 'string',
                'RoleArn': 'string'
            },
        ]
    },
    'Parameters': {
        'string': {
            'Description': 'string',
            'Required': True|False,
            'Dynamic': True|False
        }
    }
}

Response Structure

  • (dict) --

    • Id (string) --

      The system-generated ID of the extension.

    • Name (string) --

      The extension name.

    • VersionNumber (integer) --

      The extension version number.

    • Arn (string) --

      The system-generated Amazon Resource Name (ARN) for the extension.

    • Description (string) --

      Information about the extension.

    • Actions (dict) --

      The actions defined in the extension.

      • (string) --

        • (list) --

          • (dict) --

            An action defines the tasks that the extension performs during the AppConfig workflow. Each action includes an action point such as ON_CREATE_HOSTED_CONFIGURATION, PRE_DEPLOYMENT, or ON_DEPLOYMENT. Each action also includes a name, a URI to an Lambda function, and an Amazon Resource Name (ARN) for an Identity and Access Management assume role. You specify the name, URI, and ARN for each action point defined in the extension. You can specify the following actions for an extension:

            • PRE_CREATE_HOSTED_CONFIGURATION_VERSION

            • PRE_START_DEPLOYMENT

            • ON_DEPLOYMENT_START

            • ON_DEPLOYMENT_STEP

            • ON_DEPLOYMENT_BAKING

            • ON_DEPLOYMENT_COMPLETE

            • ON_DEPLOYMENT_ROLLED_BACK

            • Name (string) --

              The action name.

            • Description (string) --

              Information about the action.

            • Uri (string) --

              The extension URI associated to the action point in the extension definition. The URI can be an Amazon Resource Name (ARN) for one of the following: an Lambda function, an Amazon Simple Queue Service queue, an Amazon Simple Notification Service topic, or the Amazon EventBridge default event bus.

            • RoleArn (string) --

              An Amazon Resource Name (ARN) for an Identity and Access Management assume role.

    • Parameters (dict) --

      The parameters accepted by the extension. You specify parameter values when you associate the extension to an AppConfig resource by using the CreateExtensionAssociation API action. For Lambda extension actions, these parameters are included in the Lambda request object.

      • (string) --

        • (dict) --

          A value such as an Amazon Resource Name (ARN) or an Amazon Simple Notification Service topic entered in an extension when invoked. Parameter values are specified in an extension association. For more information about extensions, see Extending workflows in the AppConfig User Guide.

          • Description (string) --

            Information about the parameter.

          • Required (boolean) --

            A parameter value must be specified in the extension association.

          • Dynamic (boolean) --

            Indicates whether this parameter's value can be supplied at the extension's action point instead of during extension association. Dynamic parameters can't be marked Required.

StartDeployment (updated) Link ¶
Changes (request)
{'DynamicExtensionParameters': {'string': 'string'}}

Starts a deployment.

See also: AWS API Documentation

Request Syntax

client.start_deployment(
    ApplicationId='string',
    EnvironmentId='string',
    DeploymentStrategyId='string',
    ConfigurationProfileId='string',
    ConfigurationVersion='string',
    Description='string',
    Tags={
        'string': 'string'
    },
    KmsKeyIdentifier='string',
    DynamicExtensionParameters={
        'string': 'string'
    }
)
type ApplicationId:

string

param ApplicationId:

[REQUIRED]

The application ID.

type EnvironmentId:

string

param EnvironmentId:

[REQUIRED]

The environment ID.

type DeploymentStrategyId:

string

param DeploymentStrategyId:

[REQUIRED]

The deployment strategy ID.

type ConfigurationProfileId:

string

param ConfigurationProfileId:

[REQUIRED]

The configuration profile ID.

type ConfigurationVersion:

string

param ConfigurationVersion:

[REQUIRED]

The configuration version to deploy. If deploying an AppConfig hosted configuration version, you can specify either the version number or version label. For all other configurations, you must specify the version number.

type Description:

string

param Description:

A description of the deployment.

type Tags:

dict

param Tags:

Metadata to assign to the deployment. Tags help organize and categorize your AppConfig resources. Each tag consists of a key and an optional value, both of which you define.

  • (string) --

    • (string) --

type KmsKeyIdentifier:

string

param KmsKeyIdentifier:

The KMS key identifier (key ID, key alias, or key ARN). AppConfig uses this ID to encrypt the configuration data using a customer managed key.

type DynamicExtensionParameters:

dict

param DynamicExtensionParameters:

A map of dynamic extension parameter names to values to pass to associated extensions with PRE_START_DEPLOYMENT actions.

  • (string) --

    • (string) --

rtype:

dict

returns:

Response Syntax

{
    'ApplicationId': 'string',
    'EnvironmentId': 'string',
    'DeploymentStrategyId': 'string',
    'ConfigurationProfileId': 'string',
    'DeploymentNumber': 123,
    'ConfigurationName': 'string',
    'ConfigurationLocationUri': 'string',
    'ConfigurationVersion': 'string',
    'Description': 'string',
    'DeploymentDurationInMinutes': 123,
    'GrowthType': 'LINEAR'|'EXPONENTIAL',
    'GrowthFactor': ...,
    'FinalBakeTimeInMinutes': 123,
    'State': 'BAKING'|'VALIDATING'|'DEPLOYING'|'COMPLETE'|'ROLLING_BACK'|'ROLLED_BACK',
    'EventLog': [
        {
            'EventType': 'PERCENTAGE_UPDATED'|'ROLLBACK_STARTED'|'ROLLBACK_COMPLETED'|'BAKE_TIME_STARTED'|'DEPLOYMENT_STARTED'|'DEPLOYMENT_COMPLETED',
            'TriggeredBy': 'USER'|'APPCONFIG'|'CLOUDWATCH_ALARM'|'INTERNAL_ERROR',
            'Description': 'string',
            'ActionInvocations': [
                {
                    'ExtensionIdentifier': 'string',
                    'ActionName': 'string',
                    'Uri': 'string',
                    'RoleArn': 'string',
                    'ErrorMessage': 'string',
                    'ErrorCode': 'string',
                    'InvocationId': 'string'
                },
            ],
            'OccurredAt': datetime(2015, 1, 1)
        },
    ],
    'PercentageComplete': ...,
    'StartedAt': datetime(2015, 1, 1),
    'CompletedAt': datetime(2015, 1, 1),
    'AppliedExtensions': [
        {
            'ExtensionId': 'string',
            'ExtensionAssociationId': 'string',
            'VersionNumber': 123,
            'Parameters': {
                'string': 'string'
            }
        },
    ],
    'KmsKeyArn': 'string',
    'KmsKeyIdentifier': 'string',
    'VersionLabel': 'string'
}

Response Structure

  • (dict) --

    • ApplicationId (string) --

      The ID of the application that was deployed.

    • EnvironmentId (string) --

      The ID of the environment that was deployed.

    • DeploymentStrategyId (string) --

      The ID of the deployment strategy that was deployed.

    • ConfigurationProfileId (string) --

      The ID of the configuration profile that was deployed.

    • DeploymentNumber (integer) --

      The sequence number of the deployment.

    • ConfigurationName (string) --

      The name of the configuration.

    • ConfigurationLocationUri (string) --

      Information about the source location of the configuration.

    • ConfigurationVersion (string) --

      The configuration version that was deployed.

    • Description (string) --

      The description of the deployment.

    • DeploymentDurationInMinutes (integer) --

      Total amount of time the deployment lasted.

    • GrowthType (string) --

      The algorithm used to define how percentage grew over time.

    • GrowthFactor (float) --

      The percentage of targets to receive a deployed configuration during each interval.

    • FinalBakeTimeInMinutes (integer) --

      The amount of time that AppConfig monitored for alarms before considering the deployment to be complete and no longer eligible for automatic rollback.

    • State (string) --

      The state of the deployment.

    • EventLog (list) --

      A list containing all events related to a deployment. The most recent events are displayed first.

      • (dict) --

        An object that describes a deployment event.

        • EventType (string) --

          The type of deployment event. Deployment event types include the start, stop, or completion of a deployment; a percentage update; the start or stop of a bake period; and the start or completion of a rollback.

        • TriggeredBy (string) --

          The entity that triggered the deployment event. Events can be triggered by a user, AppConfig, an Amazon CloudWatch alarm, or an internal error.

        • Description (string) --

          A description of the deployment event. Descriptions include, but are not limited to, the following:

          • The Amazon Web Services account or the Amazon CloudWatch alarm ARN that initiated a rollback.

          • The percentage of hosts that received the deployment.

          • A recommendation to attempt a new deployment (in the case of an internal error).

        • ActionInvocations (list) --

          The list of extensions that were invoked as part of the deployment.

          • (dict) --

            An extension that was invoked as part of a deployment event.

            • ExtensionIdentifier (string) --

              The name, the ID, or the Amazon Resource Name (ARN) of the extension.

            • ActionName (string) --

              The name of the action.

            • Uri (string) --

              The extension URI associated to the action point in the extension definition. The URI can be an Amazon Resource Name (ARN) for one of the following: an Lambda function, an Amazon Simple Queue Service queue, an Amazon Simple Notification Service topic, or the Amazon EventBridge default event bus.

            • RoleArn (string) --

              An Amazon Resource Name (ARN) for an Identity and Access Management assume role.

            • ErrorMessage (string) --

              The error message when an extension invocation fails.

            • ErrorCode (string) --

              The error code when an extension invocation fails.

            • InvocationId (string) --

              A system-generated ID for this invocation.

        • OccurredAt (datetime) --

          The date and time the event occurred.

    • PercentageComplete (float) --

      The percentage of targets for which the deployment is available.

    • StartedAt (datetime) --

      The time the deployment started.

    • CompletedAt (datetime) --

      The time the deployment completed.

    • AppliedExtensions (list) --

      A list of extensions that were processed as part of the deployment. The extensions that were previously associated to the configuration profile, environment, or the application when StartDeployment was called.

      • (dict) --

        An extension that was invoked during a deployment.

        • ExtensionId (string) --

          The system-generated ID of the extension.

        • ExtensionAssociationId (string) --

          The system-generated ID for the association.

        • VersionNumber (integer) --

          The extension version number.

        • Parameters (dict) --

          One or more parameters for the actions called by the extension.

          • (string) --

            • (string) --

    • KmsKeyArn (string) --

      The Amazon Resource Name of the Key Management Service key used to encrypt configuration data. You can encrypt secrets stored in Secrets Manager, Amazon Simple Storage Service (Amazon S3) objects encrypted with SSE-KMS, or secure string parameters stored in Amazon Web Services Systems Manager Parameter Store.

    • KmsKeyIdentifier (string) --

      The Key Management Service key identifier (key ID, key alias, or key ARN) provided when the resource was created or updated.

    • VersionLabel (string) --

      A user-defined label for an AppConfig hosted configuration version.

UpdateExtension (updated) Link ¶
Changes (both)
{'Parameters': {'Dynamic': 'boolean'}}

Updates an AppConfig extension. For more information about extensions, see Extending workflows in the AppConfig User Guide.

See also: AWS API Documentation

Request Syntax

client.update_extension(
    ExtensionIdentifier='string',
    Description='string',
    Actions={
        'string': [
            {
                'Name': 'string',
                'Description': 'string',
                'Uri': 'string',
                'RoleArn': 'string'
            },
        ]
    },
    Parameters={
        'string': {
            'Description': 'string',
            'Required': True|False,
            'Dynamic': True|False
        }
    },
    VersionNumber=123
)
type ExtensionIdentifier:

string

param ExtensionIdentifier:

[REQUIRED]

The name, the ID, or the Amazon Resource Name (ARN) of the extension.

type Description:

string

param Description:

Information about the extension.

type Actions:

dict

param Actions:

The actions defined in the extension.

  • (string) --

    • (list) --

      • (dict) --

        An action defines the tasks that the extension performs during the AppConfig workflow. Each action includes an action point such as ON_CREATE_HOSTED_CONFIGURATION, PRE_DEPLOYMENT, or ON_DEPLOYMENT. Each action also includes a name, a URI to an Lambda function, and an Amazon Resource Name (ARN) for an Identity and Access Management assume role. You specify the name, URI, and ARN for each action point defined in the extension. You can specify the following actions for an extension:

        • PRE_CREATE_HOSTED_CONFIGURATION_VERSION

        • PRE_START_DEPLOYMENT

        • ON_DEPLOYMENT_START

        • ON_DEPLOYMENT_STEP

        • ON_DEPLOYMENT_BAKING

        • ON_DEPLOYMENT_COMPLETE

        • ON_DEPLOYMENT_ROLLED_BACK

        • Name (string) --

          The action name.

        • Description (string) --

          Information about the action.

        • Uri (string) --

          The extension URI associated to the action point in the extension definition. The URI can be an Amazon Resource Name (ARN) for one of the following: an Lambda function, an Amazon Simple Queue Service queue, an Amazon Simple Notification Service topic, or the Amazon EventBridge default event bus.

        • RoleArn (string) --

          An Amazon Resource Name (ARN) for an Identity and Access Management assume role.

type Parameters:

dict

param Parameters:

One or more parameters for the actions called by the extension.

  • (string) --

    • (dict) --

      A value such as an Amazon Resource Name (ARN) or an Amazon Simple Notification Service topic entered in an extension when invoked. Parameter values are specified in an extension association. For more information about extensions, see Extending workflows in the AppConfig User Guide.

      • Description (string) --

        Information about the parameter.

      • Required (boolean) --

        A parameter value must be specified in the extension association.

      • Dynamic (boolean) --

        Indicates whether this parameter's value can be supplied at the extension's action point instead of during extension association. Dynamic parameters can't be marked Required.

type VersionNumber:

integer

param VersionNumber:

The extension version number.

rtype:

dict

returns:

Response Syntax

{
    'Id': 'string',
    'Name': 'string',
    'VersionNumber': 123,
    'Arn': 'string',
    'Description': 'string',
    'Actions': {
        'string': [
            {
                'Name': 'string',
                'Description': 'string',
                'Uri': 'string',
                'RoleArn': 'string'
            },
        ]
    },
    'Parameters': {
        'string': {
            'Description': 'string',
            'Required': True|False,
            'Dynamic': True|False
        }
    }
}

Response Structure

  • (dict) --

    • Id (string) --

      The system-generated ID of the extension.

    • Name (string) --

      The extension name.

    • VersionNumber (integer) --

      The extension version number.

    • Arn (string) --

      The system-generated Amazon Resource Name (ARN) for the extension.

    • Description (string) --

      Information about the extension.

    • Actions (dict) --

      The actions defined in the extension.

      • (string) --

        • (list) --

          • (dict) --

            An action defines the tasks that the extension performs during the AppConfig workflow. Each action includes an action point such as ON_CREATE_HOSTED_CONFIGURATION, PRE_DEPLOYMENT, or ON_DEPLOYMENT. Each action also includes a name, a URI to an Lambda function, and an Amazon Resource Name (ARN) for an Identity and Access Management assume role. You specify the name, URI, and ARN for each action point defined in the extension. You can specify the following actions for an extension:

            • PRE_CREATE_HOSTED_CONFIGURATION_VERSION

            • PRE_START_DEPLOYMENT

            • ON_DEPLOYMENT_START

            • ON_DEPLOYMENT_STEP

            • ON_DEPLOYMENT_BAKING

            • ON_DEPLOYMENT_COMPLETE

            • ON_DEPLOYMENT_ROLLED_BACK

            • Name (string) --

              The action name.

            • Description (string) --

              Information about the action.

            • Uri (string) --

              The extension URI associated to the action point in the extension definition. The URI can be an Amazon Resource Name (ARN) for one of the following: an Lambda function, an Amazon Simple Queue Service queue, an Amazon Simple Notification Service topic, or the Amazon EventBridge default event bus.

            • RoleArn (string) --

              An Amazon Resource Name (ARN) for an Identity and Access Management assume role.

    • Parameters (dict) --

      The parameters accepted by the extension. You specify parameter values when you associate the extension to an AppConfig resource by using the CreateExtensionAssociation API action. For Lambda extension actions, these parameters are included in the Lambda request object.

      • (string) --

        • (dict) --

          A value such as an Amazon Resource Name (ARN) or an Amazon Simple Notification Service topic entered in an extension when invoked. Parameter values are specified in an extension association. For more information about extensions, see Extending workflows in the AppConfig User Guide.

          • Description (string) --

            Information about the parameter.

          • Required (boolean) --

            A parameter value must be specified in the extension association.

          • Dynamic (boolean) --

            Indicates whether this parameter's value can be supplied at the extension's action point instead of during extension association. Dynamic parameters can't be marked Required.