Skip to content

Commit aaf2ef7

Browse files
committed
Technical edits.
1 parent 310eaaf commit aaf2ef7

File tree

4 files changed

+48
-33
lines changed

4 files changed

+48
-33
lines changed

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

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ ms.author: alkemper
66
ms.service: azure-app-configuration
77
ms.custom: devx-track-dotnet, devdivchpfy22
88
ms.topic: conceptual
9-
ms.date: 08/10/2022
9+
ms.date: 08/17/2022
1010
---
1111

1212
# Feature management overview
@@ -21,7 +21,7 @@ Feature management helps developers address the following problems:
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 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.
2525

2626
## Basic concepts
2727

@@ -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 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.
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: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ author: AlexandraKemperMS
55
ms.author: alkemper
66
ms.service: azure-app-configuration
77
ms.topic: conceptual
8-
ms.date: 08/09/2022
8+
ms.date: 08/17/2022
99
ms.custom: devdivchpfy22
1010
---
1111

@@ -32,7 +32,7 @@ You can use any unicode character in key names except for `%`. A key name can't
3232

3333
### Design key namespaces
3434

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:
3636

3737
* Easier to read. Delimiters in a hierarchical key name function as spaces in a sentence. They also provide natural breaks between words.
3838
* 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
5757
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.
5858

5959
> [!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).
6161
6262
### Query key-values
6363

@@ -87,12 +87,17 @@ You also can include the following label patterns:
8787

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

90-
### Use Content-Type
90+
### Use content type
9191

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 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.
9393

9494
## Next steps
9595

96-
* [Point-in-time snapshot](./concept-point-time-snapshot.md)
97-
* [Feature management](./concept-feature-management.md)
98-
* [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)

articles/azure-app-configuration/howto-integrate-azure-managed-service-identity.md

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ ms.author: alkemper
77
ms.service: azure-app-configuration
88
ms.custom: devx-track-csharp, fasttrack-edit, subject-rbac-steps, devdivchpfy22
99
ms.topic: conceptual
10-
ms.date: 08/10/2022
10+
ms.date: 08/17/2022
1111
zone_pivot_groups: appconfig-provider
1212
---
1313
# 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
2929
:::zone-end
3030

3131
> [!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 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 also leverage the service's managed identity support.
3333
3434
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.
3535

@@ -52,9 +52,9 @@ To complete this tutorial, you must have:
5252

5353
:::zone target="docs" pivot="framework-spring"
5454

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.
5858

5959
:::zone-end
6060

@@ -64,13 +64,13 @@ To complete this tutorial, you must have:
6464

6565
To set up a managed identity in the portal, you first create an application and then enable the feature.
6666

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.
6868

6969
1. Scroll down to the **Settings** group in the left pane, and select **Identity**.
7070

7171
1. On the **System assigned** tab, switch **Status** to **On** and select **Save**.
7272

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.
7474

7575
:::image type="content" source="./media/add-managed-identity-app-service.png" alt-text="Screenshot of how to add a managed identity in App Service.":::
7676

@@ -84,45 +84,45 @@ The following steps describe how to assign the App Configuration Data Reader rol
8484

8585
1. Select **Add** > **Add role assignment**.
8686

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.":::
8888

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).
9090

9191
1. On the **Role** tab, select the **App Configuration Data Reader** role and then select **Next**.
9292

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.":::
9494

9595
1. On the **Members** tab, select **Managed identity** and then select **Select members**.
9696

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.":::
9898

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.
100100

101-
:::image type="content" source="../../includes/role-based-access-control/media/select-managed-identity-members.png" alt-text="Screenshot showing select managed identities page.":::
101+
:::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.":::
102102

103103
1. On the **Review + assign** tab, select **Review + assign** to assign the role.
104104

105105
## Use a managed identity
106106

107107
:::zone target="docs" pivot="framework-dotnet"
108108

109-
1. Add a reference to the *Azure.Identity* package:
109+
1. Add a reference to the `Azure.Identity` package:
110110

111111
```bash
112112
dotnet add package Azure.Identity
113113
```
114114

115115
1. Find the endpoint to your App Configuration store. This URL is listed on the **Access keys** tab for the store in the Azure portal.
116116

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.
118118

119119
```json
120120
"AppConfig": {
121121
"Endpoint": "<service_endpoint>"
122122
}
123123
```
124124

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:
126126

127127
```csharp-interactive
128128
using Azure.Identity;
@@ -180,14 +180,14 @@ The following steps describe how to assign the App Configuration Data Reader rol
180180
---
181181
182182
> [!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).
184184
>```csharp
185185
>config.AddAzureAppConfiguration(options =>
186186
> {
187187
> options.Connect(new Uri(settings["AppConfig:Endpoint"]), new ManagedIdentityCredential("<your_clientId>"))
188188
> });
189189
>```
190-
>As explained in the [Managed Identities for Azure 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 issues in 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 for Azure 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 issues in 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.
191191
192192
:::zone-end
193193
@@ -202,21 +202,21 @@ spring.cloud.azure.appconfiguration.stores[0].endpoint=<service_endpoint>
202202
```
203203
204204
> [!NOTE]
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).
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).
206206
207207
:::zone-end
208208
209209
## Deploy your application
210210
211211
:::zone target="docs" pivot="framework-dotnet"
212212
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).
214214
215215
:::zone-end
216216
217217
:::zone target="docs" pivot="framework-spring"
218218
219-
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 Spring app that you created in 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 for authentication of locally running apps. To deploy the Spring app that you created in 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).
220220
221221
:::zone-end
222222
46.6 KB
Loading

0 commit comments

Comments
 (0)