Skip to content

Commit 77a1dd2

Browse files
authored
Merge pull request #206632 from poojapoojari/PP-08022022-Azure-app-conf-articles-1968585
[Freshness] US-1968585: Refresh top articles by PV - Azure App Configuration articles
2 parents d39eb21 + 9544387 commit 77a1dd2

11 files changed

+88
-64
lines changed

articles/azure-app-configuration/cli-samples.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ author: maud-lv
55
ms.author: malev
66
ms.service: azure-app-configuration
77
ms.topic: sample
8-
ms.date: 02/19/2020
9-
ms.custom: devx-track-azurecli
8+
ms.date: 08/09/2022
9+
ms.custom: devx-track-azurecli, devdivchpfy22
1010
---
1111

1212
# Azure CLI samples
1313

14-
The following table includes links to bash scripts for Azure App Configuration by using the Azure CLI.
14+
The following table includes links to bash scripts for Azure App Configuration by using the [az appconfig](/cli/azure/appconfig) commands in the Azure CLI:
1515

1616
| Script | Description |
1717
|-|-|

articles/azure-app-configuration/concept-feature-management.md

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,24 @@ description: Turn features on and off using Azure App Configuration
44
author: maud-lv
55
ms.author: malev
66
ms.service: azure-app-configuration
7-
ms.custom: devx-track-dotnet
7+
ms.custom: devx-track-dotnet, devdivchpfy22
88
ms.topic: conceptual
9-
ms.date: 02/20/2020
9+
ms.date: 08/17/2022
1010
---
1111

1212
# Feature management overview
1313

14-
Traditionally, shipping a new application feature requires a complete redeployment of the application itself. Testing a feature often requires multiple deployments of the application. Each deployment may change the feature or expose the feature to different customers for testing.
14+
Traditionally, shipping a new application feature requires a complete redeployment of the application itself. Testing a feature often requires multiple deployments of the application. Each deployment might change the feature or expose the feature to different customers for testing.
1515

16-
Feature management is a modern software-development practice that decouples feature release from code deployment and enables quick changes to feature availability on demand. It uses a technique called *feature flags* (also known as *feature toggles*, *feature switches*, and so on) to dynamically administer a feature's lifecycle.
16+
Feature management is a modern software-development practice that decouples feature release from code deployment and enables quick changes to feature availability on demand. It uses a technique called *feature flags* (also known as *feature toggles* and *feature switches*) to dynamically administer a feature's lifecycle.
1717

1818
Feature management helps developers address the following problems:
1919

2020
* **Code branch management**: Use feature flags to wrap new application functionality currently under development. Such functionality is "hidden" by default. You can safely ship the feature, even though it's unfinished, and it will stay dormant in production. Using this approach, called *dark deployment*, you can release all your code at the end of each development cycle. You no longer need to maintain code branches across multiple development cycles because a given feature requires more than one cycle to complete.
2121
* **Test in production**: Use feature flags to grant early access to new functionality in production. For example, you can limit access to team members or to internal beta testers. These users will experience the full-fidelity production experience instead of a simulated or partial experience in a test environment.
2222
* **Flighting**: Use feature flags to incrementally roll out new functionality to end users. You can target a small percentage of your user population first and increase that percentage gradually over time.
2323
* **Instant kill switch**: Feature flags provide an inherent safety net for releasing new functionality. You can turn application features on and off without redeploying any code. If necessary, you can quickly disable a feature without rebuilding and redeploying your application.
24-
* **Selective activation**: Use feature flags to segment your users and deliver a specific set of features to each group. You may have a feature that works only on a certain web browser. You can define a feature flag so that only users of that browser can see and use the feature. With this approach, you can easily expand the supported browser list later without having to make any code changes.
24+
* **Selective activation**: Use feature flags to segment your users and deliver a specific set of features to each group. You might have a feature that works only on a certain web browser. You can define a feature flag so that only users of that browser can see and use the feature. By using this approach, you can easily expand the supported browser list later without having to make any code changes.
2525

2626
## Basic concepts
2727

@@ -46,7 +46,7 @@ if (featureFlag) {
4646
}
4747
```
4848

49-
You can set the value of `featureFlag` statically.
49+
You can set the value of `featureFlag` statically:
5050

5151
```csharp
5252
bool featureFlag = true;
@@ -70,11 +70,21 @@ if (featureFlag) {
7070

7171
## Feature flag repository
7272

73-
To use feature flags effectively, you need to externalize all the feature flags used in an application. This allows you to change feature flag states without modifying and redeploying the application itself.
73+
To use feature flags effectively, you need to externalize all the feature flags used in an application. You can use this approach to change feature flag states without modifying and redeploying the application itself.
7474

7575
Azure App Configuration provides a centralized repository for feature flags. You can use it to define different kinds of feature flags and manipulate their states quickly and confidently. You can then use the App Configuration libraries for various programming language frameworks to easily access these feature flags from your application.
7676

77-
[Use feature flags in an ASP.NET Core app](./use-feature-flags-dotnet-core.md) shows how the .NET Core App Configuration provider and Feature Management libraries are used together to implement feature flags for your ASP.NET web application.
77+
[The feature flags in an ASP.NET Core app](./use-feature-flags-dotnet-core.md) shows how the .NET Core App Configuration provider and Feature Management libraries are used together to implement feature flags for your ASP.NET web application. For more information on feature flags in Azure App Configuration, see the following articles:
78+
79+
* [Manage feature flags](./manage-feature-flags.md)
80+
* [Use conditional feature flags](./howto-feature-filters-aspnet-core.md)
81+
* [Enable a feature for specified users/groups](./howto-targetingfilter-aspnet-core.md)
82+
* [Add feature flags to an ASP.NET Core app](./quickstart-feature-flag-aspnet-core.md)
83+
* [Add feature flags to a .NET Framework app](./quickstart-feature-flag-dotnet.md)
84+
* [Add feature flags to an Azure Functions app](./quickstart-feature-flag-azure-functions-csharp.md)
85+
* [Add feature flags to a Spring Boot app](./quickstart-feature-flag-spring-boot.md)
86+
* [Use feature flags in an ASP.NET Core](./use-feature-flags-dotnet-core.md)
87+
* [Use feature flags in a Spring Boot app](./use-feature-flags-spring-boot.md)
7888

7989
## Next steps
8090

articles/azure-app-configuration/concept-key-value.md

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ author: maud-lv
55
ms.author: malev
66
ms.service: azure-app-configuration
77
ms.topic: conceptual
8-
ms.date: 08/04/2020
8+
ms.date: 08/17/2022
9+
ms.custom: devdivchpfy22
910
---
1011

1112
# Keys and values
@@ -16,22 +17,22 @@ Azure App Configuration stores configuration data as key-values. Key-values are
1617

1718
Keys serve as identifiers for key-values and are used to store and retrieve corresponding values. It's a common practice to organize keys into a hierarchical namespace by using a character delimiter, such as `/` or `:`. Use a convention best suited to your application. App Configuration treats keys as a whole. It doesn't parse keys to figure out how their names are structured or enforce any rule on them.
1819

19-
Here is an example of key names structured into a hierarchy based on component services:
20+
Here's an example of key names structured into a hierarchy based on component services:
2021

2122
```aspx
2223
AppName:Service1:ApiEndpoint
2324
AppName:Service2:ApiEndpoint
2425
```
2526

26-
The use of configuration data within application frameworks might dictate specific naming schemes for key-values. For example, Java's Spring Cloud framework defines `Environment` resources that supply settings to a Spring application. These are parameterized by variables that include *application name* and *profile*. Keys for Spring Cloud-related configuration data typically start with these two elements separated by a delimiter.
27+
The use of configuration data within application frameworks might dictate specific naming schemes for key-values. For example, Java's Spring Cloud framework defines `Environment` resources that supply settings to a Spring application. These resources are parameterized by variables that include *application name* and *profile*. Keys for Spring Cloud-related configuration data typically start with these two elements separated by a delimiter.
2728

28-
Keys stored in App Configuration are case-sensitive, unicode-based strings. The keys *app1* and *App1* are distinct in an App Configuration store. Keep this in mind when you use configuration settings within an application because some frameworks handle configuration keys case-insensitively. We do not recommend using case to differentiate keys.
29+
Keys stored in App Configuration are case-sensitive, unicode-based strings. The keys *app1* and *App1* are distinct in an App Configuration store. Keep this in mind when you use configuration settings within an application because some frameworks handle configuration keys case-insensitively. We don't recommend using case to differentiate keys.
2930

30-
You can use any unicode character in key names except for `%`. A key name cannot be `.` or `..` either. There's a combined size limit of 10 KB on a key-value. This limit includes all characters in the key, its value, and all associated optional attributes. Within this limit, you can have many hierarchical levels for keys.
31+
You can use any unicode character in key names except for `%`. A key name can't be `.` or `..` either. There's a combined size limit of 10 KB on a key-value. This limit includes all characters in the key, its value, and all associated optional attributes. Within this limit, you can have many hierarchical levels for keys.
3132

3233
### Design key namespaces
3334

34-
There are two general approaches to naming keys used for configuration data: flat or hierarchical. These methods are similar from an application usage standpoint, but hierarchical naming offers a number of advantages:
35+
Two general approaches to naming keys are used for configuration data: flat or hierarchical. These methods are similar from an application usage standpoint, but hierarchical naming offers many advantages:
3536

3637
* Easier to read. Delimiters in a hierarchical key name function as spaces in a sentence. They also provide natural breaks between words.
3738
* Easier to manage. A key name hierarchy represents logical groups of configuration data.
@@ -56,28 +57,28 @@ Label provides a convenient way to create variants of a key. A common use of lab
5657
Use labels as a way to create multiple versions of a key-value. For example, you can input an application version number or a Git commit ID in labels to identify key-values associated with a particular software build.
5758

5859
> [!NOTE]
59-
> If you are looking for change versions, App Configuration keeps all changes of a key-value occurred in the past certain period of time automatically. See [point-in-time snapshot](./concept-point-time-snapshot.md) for more details.
60+
> If you're looking for change versions, App Configuration keeps all changes of a key-value that occurred in the past certain period of time automatically. For more information, see [point-in-time snapshot](./concept-point-time-snapshot.md).
6061
6162
### Query key-values
6263

6364
Each key-value is uniquely identified by its key plus a label that can be `\0`. You query an App Configuration store for key-values by specifying a pattern. The App Configuration store returns all key-values that match the pattern including their corresponding values and attributes. Use the following key patterns in REST API calls to App Configuration:
6465

6566
| Key | Description |
6667
|---|---|
67-
| `key` is omitted or `key=*` | Matches all keys |
68-
| `key=abc` | Matches key name **abc** exactly |
69-
| `key=abc*` | Matches key names that start with **abc** |
70-
| `key=abc,xyz` | Matches key names **abc** or **xyz**. Limited to five CSVs |
68+
| `key` is omitted or `key=*` | Matches all keys. |
69+
| `key=abc` | Matches key name **abc** exactly. |
70+
| `key=abc*` | Matches key names that start with **abc**.|
71+
| `key=abc,xyz` | Matches key names **abc** or **xyz**. Limited to five CSVs. |
7172

7273
You also can include the following label patterns:
7374

7475
| Label | Description |
7576
|---|---|
76-
| `label` is omitted or `label=*` | Matches any label, which includes `\0` |
77-
| `label=%00` | Matches `\0` label |
78-
| `label=1.0.0` | Matches label **1.0.0** exactly |
79-
| `label=1.0.*` | Matches labels that start with **1.0.** |
80-
| `label=%00,1.0.0` | Matches labels `\0` or **1.0.0**, limited to five CSVs |
77+
| `label` is omitted or `label=*` | Matches any label, which includes `\0`. |
78+
| `label=%00` | Matches `\0` label. |
79+
| `label=1.0.0` | Matches label **1.0.0** exactly. |
80+
| `label=1.0.*` | Matches labels that start with **1.0.**. |
81+
| `label=%00,1.0.0` | Matches labels `\0` or **1.0.0**, limited to five CSVs. |
8182

8283
> [!NOTE]
8384
> `*`, `,`, and `\` are reserved characters in queries. If a reserved character is used in your key names or labels, you must escape it by using `\{Reserved Character}` in queries.
@@ -86,11 +87,17 @@ You also can include the following label patterns:
8687

8788
Values assigned to keys are also unicode strings. You can use all unicode characters for values.
8889

89-
### Use Content-Type
90-
Each key-value in App Configuration has a content-type attribute. You can optionally use this attribute to store information about the type of value in a key-value that helps your application to process it properly. You can use any format for the content-type. App Configuration uses [Media Types]( https://www.iana.org/assignments/media-types/media-types.xhtml) (also known as MIME types) for built-in data types such as feature flags, Key Vault references, and JSON key-values.
90+
### Use content type
91+
92+
Each key-value in App Configuration has a content type attribute. You can optionally use this attribute to store information about the type of value in a key-value that helps your application to process it properly. You can use any format for the content type. App Configuration uses [Media Types]( https://www.iana.org/assignments/media-types/media-types.xhtml) (also known as MIME types) for built-in data types such as feature flags, Key Vault references, and JSON key-values.
9193

9294
## Next steps
9395

94-
* [Point-in-time snapshot](./concept-point-time-snapshot.md)
95-
* [Feature management](./concept-feature-management.md)
96-
* [Event handling](./concept-app-configuration-event.md)
96+
> [!div class="nextstepaction"]
97+
> [Point-in-time snapshot](./concept-point-time-snapshot.md)
98+
99+
> [!div class="nextstepaction"]
100+
> [Feature management](./concept-feature-management.md)
101+
102+
> [!div class="nextstepaction"]
103+
> [Event handling](./concept-app-configuration-event.md)

0 commit comments

Comments
 (0)