You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/azure-app-configuration/concept-feature-management.md
+14-4Lines changed: 14 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ ms.author: alkemper
6
6
ms.service: azure-app-configuration
7
7
ms.custom: devx-track-dotnet, devdivchpfy22
8
8
ms.topic: conceptual
9
-
ms.date: 08/10/2022
9
+
ms.date: 08/17/2022
10
10
---
11
11
12
12
# Feature management overview
@@ -21,7 +21,7 @@ Feature management helps developers address the following problems:
21
21
***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.
22
22
***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.
23
23
***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 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. 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.
25
25
26
26
## Basic concepts
27
27
@@ -70,11 +70,21 @@ if (featureFlag) {
70
70
71
71
## Feature flag repository
72
72
73
-
To use feature flags effectively, you need to externalize all the feature flags used in an application. This approach lets you 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.
74
74
75
75
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.
76
76
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:
Copy file name to clipboardExpand all lines: articles/azure-app-configuration/concept-key-value.md
+13-8Lines changed: 13 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ author: AlexandraKemperMS
5
5
ms.author: alkemper
6
6
ms.service: azure-app-configuration
7
7
ms.topic: conceptual
8
-
ms.date: 08/09/2022
8
+
ms.date: 08/17/2022
9
9
ms.custom: devdivchpfy22
10
10
---
11
11
@@ -32,7 +32,7 @@ You can use any unicode character in key names except for `%`. A key name can't
32
32
33
33
### Design key namespaces
34
34
35
-
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 many 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:
36
36
37
37
* Easier to read. Delimiters in a hierarchical key name function as spaces in a sentence. They also provide natural breaks between words.
38
38
* Easier to manage. A key name hierarchy represents logical groups of configuration data.
@@ -57,7 +57,7 @@ Label provides a convenient way to create variants of a key. A common use of lab
57
57
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.
58
58
59
59
> [!NOTE]
60
-
> If you're looking for change versions, App Configuration keeps all changes of a key-value occurred in the past certain period of time automatically. For more information, see [point-in-time snapshot](./concept-point-time-snapshot.md).
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).
61
61
62
62
### Query key-values
63
63
@@ -87,12 +87,17 @@ You also can include the following label patterns:
87
87
88
88
Values assigned to keys are also unicode strings. You can use all unicode characters for values.
89
89
90
-
### Use Content-Type
90
+
### Use content type
91
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.
92
+
Each key-value in App Configuration has a contenttype 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 contenttype. 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.
# Use managed identities to access App Configuration
@@ -29,7 +29,7 @@ This article shows how you can take advantage of the managed identity to access
29
29
:::zone-end
30
30
31
31
> [!IMPORTANT]
32
-
> Managed Identity can't be used to authenticate locally-running applications. Your application must be deployed to an Azure service that supports Managed Identity. This article uses Azure App Service as an example. However, the same concept applies to any other Azure service that supports managed identity. For example, [Azure Kubernetes Service](../aks/use-azure-ad-pod-identity.md), [Azure Virtual Machine](../active-directory/managed-identities-azure-resources/qs-configure-portal-windows-vm.md), and [Azure Container Instances](../container-instances/container-instances-managed-identity.md). If your workload is hosted in one of those services, you can leverage the service's managed identity support, too.
32
+
> Managed identity can't be used to authenticate locallyrunning applications. Your application must be deployed to an Azure service that supports Managed Identity. This article uses Azure App Service as an example. However, the same concept applies to any other Azure service that supports managed identity. For example, [Azure Kubernetes Service](../aks/use-azure-ad-pod-identity.md), [Azure Virtual Machine](../active-directory/managed-identities-azure-resources/qs-configure-portal-windows-vm.md), and [Azure Container Instances](../container-instances/container-instances-managed-identity.md). If your workload is hosted in one of those services, you can also leverage the service's managed identity support.
33
33
34
34
You can use any code editor to do the steps in this tutorial. [Visual Studio Code](https://code.visualstudio.com/) is an excellent option available on the Windows, macOS, and Linux platforms.
35
35
@@ -52,9 +52,9 @@ To complete this tutorial, you must have:
52
52
53
53
:::zone target="docs" pivot="framework-spring"
54
54
55
-
- Azure subscription - [create one for free](https://azure.microsoft.com/free/)
56
-
- A supported [Java Development Kit (JDK)](/java/azure/jdk) with version 11.
57
-
-[Apache Maven](https://maven.apache.org/download.cgi) version 3.0 or above.
55
+
* Azure subscription - [create one for free](https://azure.microsoft.com/free/)
56
+
* A supported [Java Development Kit (JDK)](/java/azure/jdk) with version 11.
57
+
*[Apache Maven](https://maven.apache.org/download.cgi) version 3.0 or above.
58
58
59
59
:::zone-end
60
60
@@ -64,13 +64,13 @@ To complete this tutorial, you must have:
64
64
65
65
To set up a managed identity in the portal, you first create an application and then enable the feature.
66
66
67
-
1. Access your App Services resource in the [Azure portal](https://portal.azure.com). If you don't have an existing App Services resource to work with, create one.
67
+
1. Access your App Services resource in the [Azure portal](https://portal.azure.com). If you don't have an existing App Services resource to use, create one.
68
68
69
69
1. Scroll down to the **Settings** group in the left pane, and select **Identity**.
70
70
71
71
1. On the **System assigned** tab, switch **Status** to **On** and select **Save**.
72
72
73
-
1. When prompted, answer **Yes** to enable system assigned managed identity.
73
+
1. When prompted, answer **Yes** to turn on the system-assigned managed identity.
74
74
75
75
:::image type="content" source="./media/add-managed-identity-app-service.png" alt-text="Screenshot of how to add a managed identity in App Service.":::
76
76
@@ -84,45 +84,45 @@ The following steps describe how to assign the App Configuration Data Reader rol
84
84
85
85
1. Select **Add** > **Add role assignment**.
86
86
87
-
:::image type="content" source="../../includes/role-based-access-control/media/add-role-assignment-menu-generic.png" alt-text="Screenshot showing Access control (IAM) page with Add role assignment menu open.":::
87
+
:::image type="content" source="../../includes/role-based-access-control/media/add-role-assignment-menu-generic.png" alt-text="Screenshot that shows the Access control (IAM) page with Add role assignment menu open.":::
88
88
89
-
If you don't have permissions to assign roles, the **Add role assignment** option will be disabled. For more information, see [Azure built-in roles](../role-based-access-control/built-in-roles.md).
89
+
If you don't have permission to assign roles, then the **Add role assignment** option will be disabled. For more information, see [Azure built-in roles](../role-based-access-control/built-in-roles.md).
90
90
91
91
1. On the **Role** tab, select the **App Configuration Data Reader** role and then select **Next**.
92
92
93
-
:::image type="content" source="../../includes/role-based-access-control/media/select-role-assignment.png" alt-text="Screenshot showing Add role assignment page with Role tab selected.":::
93
+
:::image type="content" source="../../includes/role-based-access-control/media/select-role-assignment.png" alt-text="Screenshot that shows the Add role assignment page with Role tab selected.":::
94
94
95
95
1. On the **Members** tab, select **Managed identity** and then select **Select members**.
96
96
97
-
:::image type="content" source="../../includes/role-based-access-control/media/add-members.png" alt-text="Screenshot showing Add role assignment page with Members tab selected.":::
97
+
:::image type="content" source="../../includes/role-based-access-control/media/add-members.png" alt-text="Screenshot that shows the Add role assignment page with Members tab selected.":::
98
98
99
-
1. Select your Azure subscription, for Managed Identity select **App Service**, then select your App Service name.
99
+
1. Select your Azure subscription, for Managed identity select **App Service**, then select your App Service name.
:::image type="content" source="../../includes/role-based-access-control/media/select-managed-identity-members.png" alt-text="Screenshot that shows the select managed identities page.":::
102
102
103
103
1. On the **Review + assign** tab, select **Review + assign** to assign the role.
104
104
105
105
## Use a managed identity
106
106
107
107
:::zone target="docs" pivot="framework-dotnet"
108
108
109
-
1. Add a reference to the *Azure.Identity* package:
109
+
1. Add a reference to the `Azure.Identity` package:
110
110
111
111
```bash
112
112
dotnet add package Azure.Identity
113
113
```
114
114
115
115
1. Find the endpoint to your App Configuration store. This URL is listed on the **Access keys** tab forthe storein the Azure portal.
116
116
117
-
1. Open *appsettings.json* and add the following script. Replace *\<service_endpoint>*, including the brackets, with the URL to your App Configuration store.
117
+
1. Open the *appsettings.json* file and add the following script. Replace *\<service_endpoint>*, including the brackets, with the URL to your App Configuration store.
118
118
119
119
```json
120
120
"AppConfig": {
121
121
"Endpoint": "<service_endpoint>"
122
122
}
123
123
```
124
124
125
-
1. Open *Program.cs* and add a reference to the `Azure.Identity` and `Microsoft.Azure.Services.AppAuthentication` namespaces:
125
+
1. Open the *Program.cs* file and add a reference to the `Azure.Identity` and `Microsoft.Azure.Services.AppAuthentication` namespaces:
126
126
127
127
```csharp-interactive
128
128
using Azure.Identity;
@@ -180,14 +180,14 @@ The following steps describe how to assign the App Configuration Data Reader rol
180
180
---
181
181
182
182
> [!NOTE]
183
-
> If you want to use a **user-assigned managed identity**, ensure that you specify the clientId when creating the [ManagedIdentityCredential](/dotnet/api/azure.identity.managedidentitycredential).
183
+
> If you want to use a **user-assigned managed identity**, be sure to specify the `clientId` when creating the [ManagedIdentityCredential](/dotnet/api/azure.identity.managedidentitycredential).
184
184
>```csharp
185
185
>config.AddAzureAppConfiguration(options =>
186
186
> {
187
187
> options.Connect(new Uri(settings["AppConfig:Endpoint"]), new ManagedIdentityCredential("<your_clientId>"))
188
188
> });
189
189
>```
190
-
>As explained in the [Managed Identities forAzure resources FAQs](../active-directory/managed-identities-azure-resources/known-issues.md), there is a default way to resolve which managed identity is used. In this case, the Azure Identity library enforces you to specify the desired identity to avoid possible runtime issuesin the future. For instance, if a new user-assigned managed identity is added or if the system-assigned managed identity is enabled. So, you will need to specify the clientId even if only one user-assigned managed identity is defined, and there is no system-assigned managed identity.
190
+
>As explained in the [Managed Identities forAzure resources FAQs](../active-directory/managed-identities-azure-resources/known-issues.md), there is a default way to resolve which managed identity is used. In this case, the Azure Identity library enforces you to specify the desired identity to avoid possible runtime issuesin the future. For instance, if a new user-assigned managed identity is added or if the system-assigned managed identity is enabled. So, you will need to specify the `clientId` even if only one user-assigned managed identity is defined, and there is no system-assigned managed identity.
> If you want to use **user-assigned managed identity** the property `spring.cloud.azure.appconfiguration.stores[0].managed-identity.client-id`, ensure that you specify the clientId when creating the [ManagedIdentityCredential](/java/api/com.azure.identity.managedidentitycredential).
205
+
> If you want to use **user-assigned managed identity** the property `spring.cloud.azure.appconfiguration.stores[0].managed-identity.client-id`, ensure that you specify the `clientId` when creating the [ManagedIdentityCredential](/java/api/com.azure.identity.managedidentitycredential).
206
206
207
207
:::zone-end
208
208
209
209
## Deploy your application
210
210
211
211
:::zone target="docs" pivot="framework-dotnet"
212
212
213
-
Using managed identities requires you to deploy your app to an Azure service. Managed identities can't be used for authentication of locally running apps. To deploy the .NET Core app that you created in the [Create an ASP.NET Core app with App Configuration](./quickstart-aspnet-core-app.md) quickstart and modified to use managed identities, follow the guidance in [Publish your web app](../app-service/quickstart-dotnetcore.md?pivots=development-environment-vs&tabs=netcore31#publish-your-web-app).
213
+
You must deploy your app to an Azure service when you use managed identities. Managed identities can't be used for authentication of locally running apps. To deploy the .NET Core app that you created in the [Create an ASP.NET Core app with App Configuration](./quickstart-aspnet-core-app.md) quickstart and modified to use managed identities, follow the guidance in [Publish your web app](../app-service/quickstart-dotnetcore.md?pivots=development-environment-vs&tabs=netcore31#publish-your-web-app).
214
214
215
215
:::zone-end
216
216
217
217
:::zone target="docs" pivot="framework-spring"
218
218
219
-
Using managed identities requires you to deploy your app to an Azure service. Managed identities can't be used forauthentication of locally-running apps. To deploy the Spring app that you createdin the [Create a Java Spring app with Azure App Configuration](./quickstart-java-spring-app.md) quickstart and modified to use managed identities, follow the guidance in [Publish your web app](../app-service/quickstart-java.md?tabs=javase&pivots=platform-linux).
219
+
Using managed identities requires you to deploy your app to an Azure service. Managed identities can't be used forauthentication of locallyrunning apps. To deploy the Spring app that you createdin the [Create a Java Spring app with Azure App Configuration](./quickstart-java-spring-app.md) quickstart and modified to use managed identities, follow the guidance in [Publish your web app](../app-service/quickstart-java.md?tabs=javase&pivots=platform-linux).
0 commit comments