Skip to content

Commit 92f1fa0

Browse files
authored
Merge pull request #282157 from MicrosoftDocs/main
7/30 11:00 AM IST Publish
2 parents 15899c6 + 18c7400 commit 92f1fa0

File tree

91 files changed

+1785
-672
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

91 files changed

+1785
-672
lines changed

articles/ai-services/openai/overview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ Azure OpenAI Service provides REST API access to OpenAI's powerful language mode
3131

3232
## Responsible AI
3333

34-
At Microsoft, we're committed to the advancement of AI driven by principles that put people first. Generative models such as the ones available in Azure OpenAI have significant potential benefits, but without careful design and thoughtful mitigations, such models have the potential to generate incorrect or even harmful content. Microsoft has made significant investments to help guard against abuse and unintended harm, which includes requiring applicants to show well-defined use cases, incorporating Microsoft’s <a href="https://www.microsoft.com/ai/responsible-ai?activetab=pivot1:primaryr6" target="_blank">principles for responsible AI use</a>, building content filters to support customers, and providing responsible AI implementation guidance to onboarded customers.
34+
At Microsoft, we're committed to the advancement of AI driven by principles that put people first. Generative models such as the ones available in Azure OpenAI have significant potential benefits, but without careful design and thoughtful mitigations, such models have the potential to generate incorrect or even harmful content. Microsoft has made significant investments to help guard against abuse and unintended harm, which includes incorporating Microsoft’s <a href="https://www.microsoft.com/ai/responsible-ai?activetab=pivot1:primaryr6" target="_blank">principles for responsible AI use</a>, adopting a [Code of Conduct](/legal/cognitive-services/openai/code-of-conduct?context=/azure/ai-services/openai/context/context) for use of the service, building [content filters](/azure/ai-services/content-safety/overview) to support customers, and providing responsible AI [information and guidance](/legal/cognitive-services/openai/transparency-note?context=%2Fazure%2Fai-services%2Fopenai%2Fcontext%2Fcontext&tabs=image) that customers should consider when using Azure OpenAI.
3535

3636
## How do I get access to Azure OpenAI?
3737

articles/app-service/app-service-configuration-references.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Use App Configuration references (Preview)
2+
title: Use App Configuration references
33
description: Learn how to set up Azure App Service and Azure Functions to use Azure App Configuration references. Make App Configuration key-values available to your application code without changing it.
44
author: muksvso
55

@@ -9,7 +9,7 @@ ms.author: mubatra
99

1010
---
1111

12-
# Use App Configuration references for App Service and Azure Functions (preview)
12+
# Use App Configuration references for App Service and Azure Functions
1313

1414
This topic shows you how to work with configuration data in your App Service or Azure Functions application without requiring any code changes. [Azure App Configuration](../azure-app-configuration/overview.md) is a service to centrally manage application configuration. Additionally, it's an effective audit tool for your configuration values over time or releases.
1515

articles/azure-app-configuration/feature-management-dotnet-reference.md

Lines changed: 58 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ In the above example, `FeatureW` specifies a `requirement_type` of `All`, meanin
288288
In previous versions, the primary schema for the feature management library was the [`.NET feature management schema`](https://github.com/microsoft/FeatureManagement-Dotnet/blob/main/schemas/FeatureManagement.Dotnet.v1.0.0.schema.json). Starting from v4.0.0, new features including variants and telemetry won't be supported for the .NET feature management schema.
289289

290290
> [!NOTE]
291-
> If a feature flag written with `Microsoft Feature Management schema` can be found in the configuration, any feature flag written with `.NET feature management schema` will be ignored.
291+
> If there is a feature flag declaration that can be found in both the `feature_management` and `FeatureManagement` sections, the one from the `feature_management` section will be adopted.
292292
293293
:::zone-end
294294

@@ -961,20 +961,27 @@ An example web application that uses the targeting feature filter is available i
961961

962962
To begin using the `TargetingFilter` in an application, it must be added to the application's service collection just as any other feature filter. Unlike other built-in filters, the `TargetingFilter` relies on another service to be added to the application's service collection. That service is an `ITargetingContextAccessor`.
963963

964-
The implementation type used for the `ITargetingContextAccessor` service must be implemented by the application that is using the targeting filter. Here's an example setting up feature management in a web application to use the `TargetingFilter` with an implementation of `ITargetingContextAccessor` called `HttpContextTargetingContextAccessor`.
964+
`Microsoft.FeatureManagement.AspNetCore` provides a [default implementation](https://github.com/microsoft/FeatureManagement-Dotnet/blob/main/src/Microsoft.FeatureManagement.AspNetCore/DefaultHttpTargetingContextAccessor.cs) of `ITargetingContextAccessor` which will extract targeting info from a request's `HttpContext`. You can use the default targeting context accessor when setting up targeting by using the non-generic `WithTargeting` overload on the `IFeatureManagementBuilder`.
965+
966+
The default targeting context accessor and `TargetingFilter` are registered by calling `WithTargeting` on the `IFeatureManagementBuilder`.
965967

966968
``` C#
967969
services.AddFeatureManagement()
968-
.WithTargeting<HttpContextTargetingContextAccessor>();
970+
.WithTargeting();
969971
```
970972

971-
The targeting context accessor and `TargetingFilter` are registered by calling `WithTargeting<T>` on the `IFeatureManagementBuilder`.
973+
You can also register a customized implementation for `ITargetingContextAccessor` and `TargetingFilter` by calling `WithTargeting<T>`. Here's an example setting up feature management in a web application to use the `TargetingFilter` with an implementation of `ITargetingContextAccessor` called `ExampleTargetingContextAccessor`.
974+
975+
``` C#
976+
services.AddFeatureManagement()
977+
.WithTargeting<ExampleTargetingContextAccessor>();
978+
```
972979
973980
#### ITargetingContextAccessor
974981
975-
To use the `TargetingFilter` in a web application, an implementation of `ITargetingContextAccessor` is required. This is because when a targeting evaluation is being performed, information such as what user is currently being evaluated is needed. This information is known as the targeting context. Different web applications may extract this information from different places. Some common examples of where an application may pull the targeting context are the request's HTTP context or a database.
982+
To use the `TargetingFilter` in a web application, an implementation of `ITargetingContextAccessor` is required. This is because when a targeting evaluation is being performed, contextual information such as what user is currently being evaluated is needed. This information is known as the [`TargetingContext`](https://github.com/microsoft/FeatureManagement-Dotnet/blob/main/src/Microsoft.FeatureManagement/Targeting/TargetingContext.cs). Different applications may extract this information from different places. Some common examples of where an application may pull the targeting context are the request's HTTP context or a database.
976983

977-
An example that extracts targeting context information from the application's HTTP context is included in the [FeatureFlagDemo](https://github.com/microsoft/FeatureManagement-Dotnet/blob/main/examples/FeatureFlagDemo/HttpContextTargetingContextAccessor.cs) example project. This method relies on the use of `IHttpContextAccessor`, which is discussed [here](#using-httpcontext).
984+
An example that extracts targeting context information from the application's HTTP context is the [`DefaultHttpTargetingContextAccessor`](https://github.com/microsoft/FeatureManagement-Dotnet/blob/main/src/Microsoft.FeatureManagement.AspNetCore/DefaultHttpTargetingContextAccessor.cs) provided by the `Microsoft.FeatureManagement.AspNetCore` package. It will extract targeting info from `HttpContext.User`. `UserId` information will be extracted from from the `Identity.Name` field and `Groups` information will be extracted from claims of type [`Role`](/dotnet/api/system.security.claims.claimtypes.role). This implementation relies on the use of `IHttpContextAccessor`, which is discussed [here](#using-httpcontext).
978985
979986
### Targeting in a Console Application
980987
@@ -1322,7 +1329,7 @@ When a feature flag change is deployed, it's often important to analyze its effe
13221329
* Which variant is a particular user seeing?
13231330
13241331
1325-
These types of questions can be answered through the emission and analysis of feature flag evaluation events. This library supports emitting these events through telemetry publishers. One or many telemetry publishers can be registered to publish events whenever feature flags are evaluated.
1332+
These types of questions can be answered through the emission and analysis of feature flag evaluation events. This library uses the [`System.Diagnostics.Activity`](/dotnet/api/system.diagnostics.activity) API to produce tracing telemetry during feature flag evaluation.
13261333
13271334
### Enabling Telemetry
13281335
@@ -1355,39 +1362,68 @@ The `telemetry` section of a feature flag has the following properties:
13551362
| `enabled` | Specifies whether telemetry should be published for the feature flag. |
13561363
| `metadata` | A collection of key-value pairs, modeled as a dictionary, that can be used to attach custom metadata about the feature flag to evaluation events. |
13571364

1358-
### Custom Telemetry Publishers
1365+
### Custom Telemetry Publishing
1366+
1367+
The feature manager has its own `ActivitySource` named "Microsoft.FeatureManagement". If `telemetry` is enabled for a feature flag, whenever the evaluation of the feature flag is started, the feature manager will start an `Activity`. When the feature flag evaluation is finished, the feature manager will add an `ActivityEvent` named `"FeatureFlag"` to the current activity. The `"FeatureFlag"` event will have tags which include the information about the feature flag evaluation. Specifically, the tags will include the following fields:
13591368

1360-
Custom handling of feature flag telemetry is made possible by implementing an `ITelemetryPublisher` and registering it in the feature manager. Whenever a feature flag that has telemetry enabled is evaluated, the registered telemetry publisher gets a chance to publish the corresponding evaluation event.
1369+
| Tag | Description |
1370+
| ---------------- | ---------------- |
1371+
| `FeatureName` | The feature flag name. |
1372+
| `Enabled` | Whether the feature flag is evaluated as enabled. |
1373+
| `Variant` | The assigned variant. |
1374+
| `VariantAssignmentReason` | The reason why the variant is assigned. |
1375+
| `TargetingId` | The user id used for targeting. |
1376+
1377+
> [!NOTE]
1378+
> All key value pairs specified in `telemetry.metadata` of the feature flag will also be included in the tags.
1379+
1380+
To enable custom telemetry publishing, you can create an [`ActivityListener`](/dotnet/api/system.diagnostics.activitylistener) and listen to the `Microsoft.FeatureManagement` activity source. Here is an example showing how to listen to the feature management activity source and add a callback when a feature is evaluated.
13611381

13621382
``` C#
1363-
public interface ITelemetryPublisher
1383+
ActivitySource.AddActivityListener(new ActivityListener()
13641384
{
1365-
ValueTask PublishEvent(EvaluationEvent evaluationEvent, CancellationToken cancellationToken);
1366-
}
1385+
ShouldListenTo = (activitySource) => activitySource.Name == "Microsoft.FeatureManagement",
1386+
Sample = (ref ActivityCreationOptions<ActivityContext> options) => ActivitySamplingResult.AllData,
1387+
ActivityStopped = (activity) =>
1388+
{
1389+
ActivityEvent? evaluationEvent = activity.Events.FirstOrDefault((activityEvent) => activityEvent.Name == "FeatureFlag");
1390+
1391+
if (evaluationEvent.HasValue && evaluationEvent.Value.Tags.Any())
1392+
{
1393+
// Do something.
1394+
}
1395+
}
1396+
});
13671397
```
13681398

1369-
The `EvaluationEvent` type can be found [here](https://github.com/microsoft/FeatureManagement-Dotnet/blob/preview/src/Microsoft.FeatureManagement/Telemetry/EvaluationEvent.cs) for reference.
1399+
For more information, please go to [Collect a distributed trace](/dotnet/core/diagnostics/distributed-tracing-collection-walkthroughs).
13701400

1371-
Registering telemetry publishers is done when calling `AddFeatureManagement()`. Here's an example setting up feature management to emit telemetry with an implementation of `ITelemetryPublisher` called `MyTelemetryPublisher`.
13721401

1373-
``` C#
1374-
builder.services
1375-
.AddFeatureManagement()
1376-
.AddTelemetryPublisher<MyTelemetryPublisher>();
1377-
```
13781402

13791403
### Application Insights Telemetry Publisher
13801404

1381-
The `Microsoft.FeatureManagement.Telemetry.ApplicationInsights` package provides a built-in telemetry publisher implementation that sends feature flag evaluation data to [Application Insights](/azure/azure-monitor/app/app-insights-overview). To take advantage of this, add a reference to the package and register the Application Insights telemetry publisher as shown below.
1405+
The `Microsoft.FeatureManagement.Telemetry.ApplicationInsights` package provides a built-in telemetry publisher that sends feature flag evaluation data to [Application Insights](/azure/azure-monitor/app/app-insights-overview). To take advantage of this, add a reference to the package and register the Application Insights telemetry publisher as shown below.
13821406

13831407
``` C#
13841408
builder.services
13851409
.AddFeatureManagement()
1386-
.AddTelemetryPublisher<ApplicationInsightsTelemetryPublisher>();
1410+
.AddApplicationInsightsTelemetryPublisher();
1411+
```
1412+
1413+
The `Microsoft.FeatureManagement.Telemetry.ApplicationInsights` package provides a telemetry initializer that automatically tags all events with `TargetingId` so that events may be linked to flag evaluations. To use the telemetry initializer, [`TargetingTelemetryInitializer`](https://github.com/microsoft/FeatureManagement-Dotnet/blob/preview/src/Microsoft.FeatureManagement.Telemetry.ApplicationInsights/TargetingTelemetryInitializer.cs), add it into the application's service collection.
1414+
1415+
``` C#
1416+
builder.Services.AddSingleton<ITelemetryInitializer, TargetingTelemetryInitializer>();
13871417
```
13881418

13891419
> [!NOTE]
1390-
> The base `Microsoft.FeatureManagement` package doesn't include this telemetry publisher.
1420+
> To ensure that `TargetingTelemetryInitializer` works as expected, the `TargetingHttpContextMiddleware` described below should be used.
1421+
1422+
To enable persistance of targeting context in the current activity, you can use the [`TargetingHttpContextMiddleware`](https://github.com/microsoft/FeatureManagement-Dotnet/blob/preview/src/Microsoft.FeatureManagement.AspNetCore/TargetingHttpContextMiddleware.cs).
1423+
1424+
``` C#
1425+
app.UseMiddleware<TargetingHttpContextMiddleware>();
1426+
```
13911427

13921428
An example of its usage can be found in the [EvaluationDataToApplicationInsights](https://github.com/microsoft/FeatureManagement-Dotnet/tree/preview/examples/EvaluationDataToApplicationInsights) example.
13931429

articles/azure-arc/servers/onboard-portal.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ bash ~/Install_linux_azcmagent.sh
152152

153153
1. Change to the folder or share that you copied the script to, and execute it on the server by running the `./OnboardingScript.sh` script.
154154

155-
If the agent fails to start after setup is finished, check the logs for detailed error information. The log directory is *var/opt/azcmagent/log*.
155+
If the agent fails to start after setup is finished, check the logs for detailed error information. The log directory is `/var/opt/azcmagent/log`.
156156

157157
## Verify the connection with Azure Arc
158158

articles/azure-arc/servers/prerequisites.md

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Connected Machine agent prerequisites
33
description: Learn about the prerequisites for installing the Connected Machine agent for Azure Arc-enabled servers.
4-
ms.date: 06/19/2024
4+
ms.date: 07/29/2024
55
ms.topic: conceptual
66
ms.custom: devx-track-azurepowershell
77
---
@@ -29,32 +29,32 @@ Take extra care when using Azure Arc on systems that are:
2929
* Restored from backup as a second instance of the server
3030
* Used to create a "golden image" from which other virtual machines are created
3131

32-
If two agents use the same configuration, you will encounter inconsistent behaviors when both agents try to act as one Azure resource. The best practice for these situations is to use an automation tool or script to onboard the server to Azure Arc after it has been cloned, restored from backup, or created from a golden image.
32+
If two agents use the same configuration, you'll encounter inconsistent behaviors when both agents try to act as one Azure resource. The best practice for these situations is to use an automation tool or script to onboard the server to Azure Arc after its cloned, restored from backup, or created from a golden image.
3333

3434
> [!NOTE]
3535
> For additional information on using Azure Arc-enabled servers in VMware environments, see the [VMware FAQ](vmware-faq.md).
3636
3737
## Supported operating systems
3838

39-
Azure Arc supports the following Windows and Linux operating systems. Only x86-64 (64-bit) architectures are supported. The Azure Connected Machine agent does not run on x86 (32-bit) or ARM-based architectures.
39+
Azure Arc supports the following Windows and Linux operating systems. Only x86-64 (64-bit) architectures are supported. The Azure Connected Machine agent doesn't run on x86 (32-bit) or ARM-based architectures.
4040

4141
* AlmaLinux 9
4242
* Amazon Linux 2 and 2023
43-
* Azure Linux (CBL-Mariner) 1.0, 2.0
43+
* Azure Linux (CBL-Mariner) 2.0
4444
* Azure Stack HCI
45-
* Debian 10, 11, and 12
45+
* Debian 11, and 12
4646
* Oracle Linux 7, 8, and 9
4747
* Red Hat Enterprise Linux (RHEL) 7, 8 and 9
4848
* Rocky Linux 8 and 9
4949
* SUSE Linux Enterprise Server (SLES) 12 SP3-SP5 and 15
50-
* Ubuntu 16.04, 18.04, 20.04, and 22.04 LTS
50+
* Ubuntu 18.04, 20.04, and 22.04 LTS
5151
* Windows 10, 11 (see [client operating system guidance](#client-operating-system-guidance))
5252
* Windows IoT Enterprise
5353
* Windows Server 2012, 2012 R2, 2016, 2019, and 2022
5454
* Both Desktop and Server Core experiences are supported
5555
* Azure Editions are supported on Azure Stack HCI
5656

57-
The Azure Connected Machine agent hasn't been tested on operating systems hardened by the Center for Information Security (CIS) Benchmark.
57+
The Azure Connected Machine agent isn't tested on operating systems hardened by the Center for Information Security (CIS) Benchmark.
5858

5959
> [!NOTE]
6060
> [Azure Connected Machine agent version 1.44](agent-release-notes.md#version-144---july-2024) is the last version to officially support Debian 10, Ubuntu 16.04, and Azure Linux (CBL-Mariner) 1.0.
@@ -69,6 +69,9 @@ The listed version is supported until the **End of Arc Support Date**. If critic
6969
| -- | -- | -- | -- |
7070
| Windows Server 2008 R2 SP1 | 1.39 [Download](https://aka.ms/AzureConnectedMachineAgent-1.39) | 03/31/2025 | Windows Server 2008 and 2008 R2 reached End of Support in January 2020. See [End of support for Windows Server 2008 and Windows Server 2008 R2](/troubleshoot/windows-server/windows-server-eos-faq/end-of-support-windows-server-2008-2008r2). |
7171
| CentOS 7 and 8 | 1.42 | 05/31/2025 | See the [CentOS End Of Life guidance](~/articles/virtual-machines/workloads/centos/centos-end-of-life.md). |
72+
| Debian 10 | 1.44 | 07/15/2025 | |
73+
| Ubuntu 16.04 | 1.44 | 07/15/2025 | |
74+
| Azure Linux (CBL-Mariner) 1.0 | 1.44 | 07/15/2025 | |
7275

7376
### Connect new limited support servers
7477

0 commit comments

Comments
 (0)