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.
Uri
field.Uri
field.Uri
field.For more information about extensions, see Extending workflows in the AppConfig User Guide .
See also: AWS API Documentation
create-extension
--name <value>
[--description <value>]
--actions <value>
[--parameters <value>]
[--tags <value>]
[--latest-version-number <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
[--cli-binary-format <value>]
[--no-cli-pager]
[--cli-auto-prompt]
[--no-cli-auto-prompt]
--name
(string)
A name for the extension. Each extension name in your account must be unique. Extension versions use the same name.
--description
(string)
Information about the extension.
--actions
(map)
The actions defined in the extension.
key -> (string)
value -> (list)
(structure)
An action defines the tasks that the extension performs during the AppConfig workflow. Each action includes an action point, as shown in the following list:
PRE_CREATE_HOSTED_CONFIGURATION_VERSION
PRE_START_DEPLOYMENT
AT_DEPLOYMENT_TICK
ON_DEPLOYMENT_START
ON_DEPLOYMENT_STEP
ON_DEPLOYMENT_BAKING
ON_DEPLOYMENT_COMPLETE
ON_DEPLOYMENT_ROLLED_BACK
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.
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.
Shorthand Syntax:
KeyName1=[{Name=string,Description=string,Uri=string,RoleArn=string},{Name=string,Description=string,Uri=string,RoleArn=string}],KeyName2=[{Name=string,Description=string,Uri=string,RoleArn=string},{Name=string,Description=string,Uri=string,RoleArn=string}]
Where valid key names are:
PRE_CREATE_HOSTED_CONFIGURATION_VERSION
PRE_START_DEPLOYMENT
AT_DEPLOYMENT_TICK
ON_DEPLOYMENT_START
ON_DEPLOYMENT_STEP
ON_DEPLOYMENT_BAKING
ON_DEPLOYMENT_COMPLETE
ON_DEPLOYMENT_ROLLED_BACK
JSON Syntax:
{"PRE_CREATE_HOSTED_CONFIGURATION_VERSION"|"PRE_START_DEPLOYMENT"|"AT_DEPLOYMENT_TICK"|"ON_DEPLOYMENT_START"|"ON_DEPLOYMENT_STEP"|"ON_DEPLOYMENT_BAKING"|"ON_DEPLOYMENT_COMPLETE"|"ON_DEPLOYMENT_ROLLED_BACK": [
{
"Name": "string",
"Description": "string",
"Uri": "string",
"RoleArn": "string"
}
...
]
...}
--parameters
(map)
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.key -> (string)
value -> (structure)
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 markedRequired
.
Shorthand Syntax:
KeyName1=Description=string,Required=boolean,Dynamic=boolean,KeyName2=Description=string,Required=boolean,Dynamic=boolean
JSON Syntax:
{"string": {
"Description": "string",
"Required": true|false,
"Dynamic": true|false
}
...}
--tags
(map)
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.
key -> (string)
value -> (string)
Shorthand Syntax:
KeyName1=string,KeyName2=string
JSON Syntax:
{"string": "string"
...}
--latest-version-number
(integer)
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.
--cli-input-json
| --cli-input-yaml
(string)
Reads arguments from the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton
. If other arguments are provided on the command line, those values will override the JSON-provided values. It is not possible to pass arbitrary binary values using a JSON-provided value as the string will be taken literally. This may not be specified along with --cli-input-yaml
.
--generate-cli-skeleton
(string)
Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input
, prints a sample input JSON that can be used as an argument for --cli-input-json
. Similarly, if provided yaml-input
it will print a sample input YAML that can be used with --cli-input-yaml
. If provided with the value output
, it validates the command inputs and returns a sample output JSON for that command. The generated JSON skeleton is not stable between versions of the AWS CLI and there are no backwards compatibility guarantees in the JSON skeleton generated.
--debug
(boolean)
Turn on debug logging.
--endpoint-url
(string)
Override command’s default URL with the given URL.
--no-verify-ssl
(boolean)
By default, the AWS CLI uses SSL when communicating with AWS services. For each SSL connection, the AWS CLI will verify SSL certificates. This option overrides the default behavior of verifying SSL certificates.
--no-paginate
(boolean)
Disable automatic pagination. If automatic pagination is disabled, the AWS CLI will only make one call, for the first page of results.
--output
(string)
The formatting style for command output.
--query
(string)
A JMESPath query to use in filtering the response data.
--profile
(string)
Use a specific profile from your credential file.
--region
(string)
The region to use. Overrides config/env settings.
--version
(string)
Display the version of this tool.
--color
(string)
Turn on/off color output.
--no-sign-request
(boolean)
Do not sign requests. Credentials will not be loaded if this argument is provided.
--ca-bundle
(string)
The CA certificate bundle to use when verifying SSL certificates. Overrides config/env settings.
--cli-read-timeout
(int)
The maximum socket read time in seconds. If the value is set to 0, the socket read will be blocking and not timeout. The default value is 60 seconds.
--cli-connect-timeout
(int)
The maximum socket connect time in seconds. If the value is set to 0, the socket connect will be blocking and not timeout. The default value is 60 seconds.
--cli-binary-format
(string)
The formatting style to be used for binary blobs. The default format is base64. The base64 format expects binary blobs to be provided as a base64 encoded string. The raw-in-base64-out format preserves compatibility with AWS CLI V1 behavior and binary values must be passed literally. When providing contents from a file that map to a binary blob fileb://
will always be treated as binary and use the file contents directly regardless of the cli-binary-format
setting. When using file://
the file contents will need to properly formatted for the configured cli-binary-format
.
--no-cli-pager
(boolean)
Disable cli pager for output.
--cli-auto-prompt
(boolean)
Automatically prompt for CLI input parameters.
--no-cli-auto-prompt
(boolean)
Disable automatically prompt for CLI input parameters.
To use the following examples, you must have the AWS CLI installed and configured. See the Getting started guide in the AWS CLI User Guide for more information.
Unless otherwise stated, all examples have unix-like quotation rules. These examples will need to be adapted to your terminal’s quoting rules. See Using quotation marks with strings in the AWS CLI User Guide .
To create an extension
The following create-extension
example creates a new extension in AWS AppConfig.
aws appconfig create-extension \
--region us-west-2 \
--name S3-backup-extension \
--actions PRE_CREATE_HOSTED_CONFIGURATION_VERSION=[{Name=S3backup,Uri=arn:aws:lambda:us-west-2:123456789012:function:s3backupfunction,RoleArn=arn:aws:iam::123456789012:role/appconfigextensionrole}] \
--parameters S3bucket={Required=true}
Output:
{
"Id": "1A2B3C4D",
"Name": "S3-backup-extension",
"VersionNumber": 1,
"Arn": "arn:aws:appconfig:us-west-2:123456789012:extension/1A2B3C4D/1",
"Actions": {
"PRE_CREATE_HOSTED_CONFIGURATION_VERSION": [
{
"Name": "S3backup",
"Uri": "arn:aws:lambda:us-west-2:123456789012:function:s3backupfunction",
"RoleArn": "arn:aws:iam::123456789012:role/appconfigextensionrole"
}
]
},
"Parameters": {
"S3bucket": {
"Required": true
}
}
}
For more information, see Working with AWS AppConfig extensions in the AWS AppConfig User Guide.
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 -> (map)
The actions defined in the extension.
key -> (string)
value -> (list)
(structure)
An action defines the tasks that the extension performs during the AppConfig workflow. Each action includes an action point, as shown in the following list:
PRE_CREATE_HOSTED_CONFIGURATION_VERSION
PRE_START_DEPLOYMENT
AT_DEPLOYMENT_TICK
ON_DEPLOYMENT_START
ON_DEPLOYMENT_STEP
ON_DEPLOYMENT_BAKING
ON_DEPLOYMENT_COMPLETE
ON_DEPLOYMENT_ROLLED_BACK
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.
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 -> (map)
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.key -> (string)
value -> (structure)
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 markedRequired
.