AWS::AppConfig::HostedConfigurationVersion
Create a new configuration in the Amazon AppConfig hosted configuration store. Configurations must be 1 MB or smaller. The Amazon AppConfig hosted configuration store provides the following benefits over other configuration store options.
-
You don't need to set up and configure other services such as Amazon Simple Storage Service (Amazon S3) or Parameter Store.
-
You don't need to configure Amazon Identity and Access Management (IAM) permissions to use the configuration store.
-
You can store configurations in any content type.
-
There is no cost to use the store.
-
You can create a configuration and add it to the store when you create a configuration profile.
Syntax
To declare this entity in your Amazon CloudFormation template, use the following syntax:
JSON
{ "Type" : "AWS::AppConfig::HostedConfigurationVersion", "Properties" : { "ApplicationId" :String, "ConfigurationProfileId" :String, "Content" :String, "ContentType" :String, "Description" :String, "LatestVersionNumber" :Double, "VersionLabel" :String} }
YAML
Type: AWS::AppConfig::HostedConfigurationVersion Properties: ApplicationId:StringConfigurationProfileId:StringContent:StringContentType:StringDescription:StringLatestVersionNumber:DoubleVersionLabel:String
Properties
ApplicationId-
The application ID.
Required: Yes
Type: String
Pattern:
[a-z0-9]{4,7}Update requires: Replacement
ConfigurationProfileId-
The configuration profile ID.
Required: Yes
Type: String
Pattern:
[a-z0-9]{4,7}Update requires: Replacement
Content-
The content of the configuration or the configuration data.
Required: Yes
Type: String
Update requires: Replacement
ContentType-
A standard MIME type describing the format of the configuration content. For more information, see Content-Type
. Required: Yes
Type: String
Minimum:
1Maximum:
255Update requires: Replacement
Description-
A description of the configuration.
Required: No
Type: String
Minimum:
0Maximum:
1024Update requires: Replacement
LatestVersionNumber-
An optional locking token used to prevent race conditions from overwriting configuration updates when creating a new version. To ensure your data is not overwritten when creating multiple hosted configuration versions in rapid succession, specify the version number of the latest hosted configuration version.
Required: No
Type: Double
Update requires: Replacement
VersionLabel-
A user-defined label for an Amazon AppConfig hosted configuration version.
Required: No
Type: String
Minimum:
1Maximum:
64Pattern:
.*[^0-9].*Update requires: Replacement
Return values
Ref
When you pass the logical ID of this resource to the intrinsic Reffunction, Refreturns the version number.
Examples
Amazon AppConfig feature flag
The following example creates an Amazon AppConfig configuration profile of type HostedConfigurationVersion.
The feature flag created by this example enables cryptocurrency at checkout.
Amazon AppConfig stores the configuration data for this profile in the Amazon AppConfig hosted configuration store.
JSON
{ "AWSTemplateFormatVersion": "2010-09-09", "Transform": "AWS::LanguageExtensions", "Resources": { "MySuperCoolApp": { "Type": "AWS::AppConfig::Application", "Properties": { "Name": "MySuperCoolApp" } }, "MyFeatureFlags": { "Type": "AWS::AppConfig::ConfigurationProfile", "Properties": { "Name": "MyFeatureFlags", "ApplicationId": "MySuperCoolApp", "LocationUri": "hosted", "Type": "AWS.AppConfig.FeatureFlags" } }, "MyFeatureFlagsVersion": { "Type": "AWS::AppConfig::HostedConfigurationVersion", "Properties": { "ApplicationId": "MySuperCoolApp", "ConfigurationProfileId": "MyFeatureFlags", "ContentType": "application/json", "VersionLabel": "v1.0.0", "Content": { "Fn::ToJsonString": { "flags": { "allow-cryptocurrency-at-checkout": { "attributes": { "allowed-currency": { "constraints": { "elements": { "enum": [ "BTC", "ETH", "XRP" ], "type": "string" }, "type": "array" } }, "bitcoin-discount-percentage": { "constraints": { "maximum": 25, "minimum": 0, "type": "number" } } }, "name": "Allow Cryptocurrency at Checkout" } }, "values": { "allow-cryptocurrency-at-checkout": { "allowed-currency": [ "BTC", "ETH" ], "bitcoin-discount-percentage": 5, "enabled": true } }, "version": "1" } } } } } }
YAML
AWSTemplateFormatVersion: 2010-09-09 Transform: 'AWS::LanguageExtensions' Resources: MySuperCoolApp: Type: 'AWS::AppConfig::Application' Properties: Name: MySuperCoolApp MyFeatureFlags: Type: 'AWS::AppConfig::ConfigurationProfile' Properties: Name: MyFeatureFlags ApplicationId: !Ref MySuperCoolApp LocationUri: hosted Type: AWS.AppConfig.FeatureFlags MyFeatureFlagsVersion: Type: 'AWS::AppConfig::HostedConfigurationVersion' Properties: ApplicationId: !Ref MySuperCoolApp ConfigurationProfileId: !Ref MyFeatureFlags ContentType: application/json VersionLabel: "v1.0.0" Content: Fn::ToJsonString: flags: allow-cryptocurrency-at-checkout: attributes: allowed-currency: constraints: elements: enum: - BTC - ETH - XRP type: string type: array bitcoin-discount-percentage: constraints: maximum: 25 minimum: 0 type: number name: Allow Cryptocurrency at Checkout values: allow-cryptocurrency-at-checkout: allowed-currency: - BTC - ETH bitcoin-discount-percentage: 5 enabled: true version: '1'
Amazon AppConfig hosted configuration
The following example creates an Amazon AppConfig configuration profile named
MyTestProfile for an application called MyApplication. Amazon AppConfig stores the configuration data for this profile in the Amazon AppConfig hosted configuration store.
JSON
{ "Resources": { "DependentApplication": { "Type": "AWS::AppConfig::Application", "Properties": { "Name": "MyApplication" } }, "DependentConfigurationProfile": { "Type": "AWS::AppConfig::ConfigurationProfile", "Properties": { "ApplicationId": "DependentApplication", "Name": "MyTestProfile", "LocationUri": "hosted" } }, "BasicHostedConfigurationVersion": { "Type": "AWS::AppConfig::HostedConfigurationVersion", "Properties": { "ApplicationId": "DependentApplication", "ConfigurationProfileId": "DependentConfigurationProfile", "Description": "A sample hosted configuration version", "Content": "My hosted configuration content", "ContentType": "text/plain" } } } }
YAML
Resources: DependentApplication: Type: AWS::AppConfig::Application Properties: Name: "MyApplication" DependentConfigurationProfile: Type: AWS::AppConfig::ConfigurationProfile Properties: ApplicationId: !Ref DependentApplication Name: "MyTestProfile" LocationUri: "hosted" BasicHostedConfigurationVersion: Type: AWS::AppConfig::HostedConfigurationVersion Properties: ApplicationId: !Ref DependentApplication ConfigurationProfileId: !Ref DependentConfigurationProfile Description: 'A sample hosted configuration version' Content: 'My hosted configuration content' ContentType: 'text/plain'