Skip to content

Commit a4cc4e0

Browse files
committed
Merge branch 'main' of https://github.com/MicrosoftDocs/azure-docs-pr into us429364-seo-top25-vnet
2 parents 1cf9283 + 33ddf52 commit a4cc4e0

File tree

76 files changed

+1353
-74
lines changed

Some content is hidden

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

76 files changed

+1353
-74
lines changed

articles/application-gateway/overview-v2.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ The v2 SKU includes the following enhancements:
2424

2525
- **TCP/TLS proxy (Preview)**: Azure Application Gateway now also supports Layer 4 (TCP protocol) and TLS (Transport Layer Security) proxying. This feature is currently in public preview. For more information, see [Application Gateway TCP/TLS proxy overview](tcp-tls-proxy-overview.md).
2626
- **Autoscaling**: Application Gateway or WAF deployments under the autoscaling SKU can scale out or in based on changing traffic load patterns. Autoscaling also removes the requirement to choose a deployment size or instance count during provisioning. This SKU offers true elasticity. In the Standard_v2 and WAF_v2 SKU, Application Gateway can operate both in fixed capacity (autoscaling disabled) and in autoscaling enabled mode. Fixed capacity mode is useful for scenarios with consistent and predictable workloads. Autoscaling mode is beneficial in applications that see variance in application traffic.
27-
- **Zone redundancy**: An Application Gateway or WAF deployment can span multiple Availability Zones, removing the need to provision separate Application Gateway instances in each zone with a Traffic Manager. You can choose a single zone or multiple zones where Application Gateway instances are deployed, which makes it more resilient to zone failure. The backend pool for applications can be similarly distributed across availability zones.
27+
- **Zone redundancy**: Application Gateway or WAF deployments span multiple Availability Zones by default, removing the need to provision separate Application Gateway instances in each zone with a Traffic Manager. Application Gateway instances are deployed (by default) in a minimum of two availability zones, which makes it more resilient to zone failure. The backend pool for applications can be similarly distributed across availability zones.
2828

2929
Zone redundancy is available only where Azure availability zones are available. In other regions, all other features are supported. For more information, see [Azure regions with availability zone support](../reliability/availability-zones-region-support.md).
3030
- **Static VIP**: Application Gateway v2 SKU supports the static VIP type exclusively. Static VIP ensures that the VIP associated with the application gateway doesn't change for the lifecycle of the deployment, even after a restart. You must use the application gateway URL for domain name routing to App Services via the application gateway, as v1 doesn't have a static VIP.

articles/automation/automation-hrw-run-runbooks.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Run Azure Automation Runbooks on a Hybrid Runbook Worker
33
description: This article describes how to run runbooks on machines in your local datacenter or other cloud provider with the Hybrid Runbook Worker.
44
services: automation
55
ms.subservice: process-automation
6-
ms.date: 07/22/2025
6+
ms.date: 07/29/2025
77
ms.topic: how-to
88
ms.custom: devx-track-azurepowershell, linux-related-content
99
ms.service: azure-automation
@@ -14,7 +14,7 @@ author: jasminemehndir
1414
# Run Automation runbooks on a Hybrid Runbook Worker
1515

1616

17-
> [!Important]
17+
> [!IMPORTANT]
1818
> - Starting 1st April 2025, all jobs running on agent-based Hybrid Worker will be stopped.
1919
> - Azure Automation Agent-based User Hybrid Runbook Worker (Windows and Linux) has retired on **31 August 2024** and is no longer supported. Follow the guidelines on how to [migrate from an existing Agent-based User Hybrid Runbook Workers to Extension-based Hybrid Workers](migrate-existing-agent-based-hybrid-worker-to-extension-based-workers.md).
2020
@@ -41,8 +41,9 @@ Azure Automation handles jobs on Hybrid Runbook Workers differently from jobs ru
4141
Jobs for Hybrid Runbook Workers run under the local **System** account.
4242

4343
> [!NOTE]
44-
>- PowerShell 5.1, PowerShell 7.1(preview), Python 2.7, and Python 3.8 runbooks are supported on both extension-based and agent-based Windows Hybrid Runbook Workers. For agent based workers, ensure the Windows Hybrid worker version is 7.3.12960 or above.
45-
>- PowerShell 7.2 and Python 3.10 (preview) runbooks are supported on extension-based Windows Hybrid Workers only. Ensure the Windows Hybrid worker extension version is 1.1.11 or above.
44+
>- PowerShell 7.4 and Python 3.10 runbooks are supported on extension-based Windows Hybrid Workers only. Ensure the Windows Hybrid worker extension version is 1.3.63 or above.
45+
>- PowerShell 5.1, PowerShell 7.1 (preview), Python 2.7, and Python 3.8 runbooks are supported on both extension-based and agent-based Windows Hybrid Runbook Workers. For agent based workers, ensure the Windows Hybrid worker version is 7.3.12960 or above.
46+
>- PowerShell 7.2 runbook is supported on extension-based Windows Hybrid Workers only. Ensure the Windows Hybrid worker extension version is 1.1.11 or above.
4647
4748
#### Extension-based Hybrid Workers
4849

@@ -94,8 +95,9 @@ If the *Python* executable file is at the default location *C:\Python27\python.e
9495
### Linux Hybrid Worker
9596

9697
> [!NOTE]
97-
>- PowerShell 5.1, PowerShell 7.1(preview), Python 2.7, Python 3.8 runbooks are supported on both extension-based and agent-based Linux Hybrid Runbook Workers. For agent-based workers, ensure the Linux Hybrid Runbook worker version is 1.7.5.0 or above.
98-
>- PowerShell 7.2 and Python 3.10 (preview) runbooks are supported on extension-based Linux Hybrid Workers only. Ensure the Linux Hybrid worker extension version is 1.1.11 or above.
98+
>- PowerShell 7.4 and Python 3.10 runbooks are supported on extension-based Linux Hybrid Workers only. Ensure the Linux Hybrid worker extension version is 1.1.23 or above.
99+
>- PowerShell 5.1, PowerShell 7.1 (preview), Python 2.7, Python 3.8 runbooks are supported on both extension-based and agent-based Linux Hybrid Runbook Workers. For agent-based workers, ensure the Linux Hybrid Runbook worker version is 1.7.5.0 or above.
100+
>- PowerShell 7.2 runbook is supported on extension-based Linux Hybrid Workers only. Ensure the Linux Hybrid worker extension version is 1.1.11 or above.
99101
100102
#### Extension-based Hybrid Workers
101103

@@ -286,7 +288,7 @@ By default, the Hybrid jobs run under the context of System account. However, to
286288
1. Select **Hybrid Worker Groups**, and then select the specific group.
287289
1. Select **Settings**.
288290
1. Change the value of **Hybrid Worker credentials** from **Default** to **Custom**.
289-
1. Select the credential and click **Save**.
291+
1. Select the credential and select **Save**.
290292
1. If the following permissions are not assigned for Custom users, jobs might get suspended.
291293
292294
| **Resource type** | **Folder permissions** |

articles/azure-app-configuration/TOC.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,8 @@
200200
href: howto-feature-filters-javascript.md
201201
- name: Python
202202
href: howto-feature-filters-python.md
203+
- name: Go Gin
204+
href: howto-feature-filters-go.md
203205
- name: Enable features on a schedule
204206
items:
205207
- name: Overview
@@ -208,6 +210,8 @@
208210
href: howto-timewindow-filter-aspnet-core.md
209211
- name: JavaScript
210212
href: howto-timewindow-filter-javascript.md
213+
- name: Go Gin
214+
href: howto-timewindow-filter-go.md
211215
- name: Python
212216
href: howto-time-window-filter-python.md
213217
- name: Roll out features to targeted audience

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,12 @@ To start using feature flags with Azure App Configuration, continue to the follo
9696
> [!div class="nextstepaction"]
9797
> [JavaScript](./quickstart-feature-flag-javascript.md)
9898
99+
> [!div class="nextstepaction"]
100+
> [Go](./quickstart-feature-flag-go-console.md)
101+
102+
> [!div class="nextstepaction"]
103+
> [Go Gin](./quickstart-feature-flag-go-gin.md)
104+
99105
> [!div class="nextstepaction"]
100106
> [Azure Kubernetes Service](./quickstart-feature-flag-azure-kubernetes-service.md)
101107
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
---
2+
title: Enable conditional features with a custom filter in a Go Gin web application
3+
titleSuffix: Azure App Configuration
4+
description: Learn how to implement a custom feature filter to enable conditional feature flags for your Go Gin web application.
5+
ms.service: azure-app-configuration
6+
ms.devlang: golang
7+
author: linglingye
8+
ms.author: linglingye
9+
ms.topic: how-to
10+
ms.custom: devx-track-go, mode-other
11+
ms.date: 07/25/2025
12+
---
13+
14+
# Enable conditional features with a custom filter in a Go Gin web application
15+
16+
Feature flags can use feature filters to enable features conditionally. To learn more about feature filters, see [Enable conditional features with feature filters](./howto-feature-filters.md).
17+
18+
The example used in this guide is based on the Go Gin web application introduced in the feature management [quickstart](./quickstart-feature-flag-go-gin.md). Before proceeding further, complete the quickstart to create a Go Gin web application with a *Beta* feature flag. Once completed, you must [add a custom feature filter](./howto-feature-filters.md) to the *Beta* feature flag in your App Configuration store.
19+
20+
In this guide, you learn how to implement a custom feature filter and use the feature filter to enable features conditionally.
21+
22+
## Prerequisites
23+
24+
- Create a [Go Gin web application with a feature flag](./quickstart-feature-flag-go-gin.md).
25+
- [Add a custom feature filter to the feature flag](./howto-feature-filters.md)
26+
27+
## Implement a custom feature filter
28+
29+
You added a custom feature filter named **Random** with a **Percentage** parameter for your *Beta* feature flag in the prerequisites. Next, you'll implement the feature filter to enable the *Beta* feature flag based on the chance defined by the **Percentage** parameter.
30+
31+
1. Create a `random_filter.go` file with the following code:
32+
33+
```golang
34+
package main
35+
36+
import (
37+
"fmt"
38+
"math/rand"
39+
"time"
40+
41+
"github.com/microsoft/Featuremanagement-Go/featuremanagement"
42+
)
43+
44+
type RandomFilter struct{}
45+
46+
func (f *RandomFilter) Name() string {
47+
return "Random"
48+
}
49+
50+
func (f *RandomFilter) Evaluate(evalCtx featuremanagement.FeatureFilterEvaluationContext, appCtx any) (bool, error) {
51+
percentage, ok := evalCtx.Parameters["Percentage"].(float64)
52+
if !ok {
53+
return false, fmt.Errorf("invalid parameter type for Percentage: expected float64, got %T", evalCtx.Parameters["Percentage"])
54+
}
55+
56+
rand.Seed(time.Now().UnixNano())
57+
randomValue := rand.Intn(100)
58+
return randomValue <= int(percentage), nil
59+
}
60+
```
61+
62+
You added a `RandomFilter` struct that implements the `FeatureFilter` interface from the `featuremanagement` library. The `FeatureFilter` interface has two methods:
63+
- `Name()` returns the filter name **Random**, which matches the filter name you set in the *Beta* feature flag in Azure App Configuration.
64+
- `Evaluate()` is called whenever a feature flag is evaluated. A feature filter enables a feature flag by returning `true`.
65+
66+
2. Update your `main.go` file to register the `RandomFilter` when creating the feature manager:
67+
68+
```golang
69+
// ...existing code...
70+
71+
func main() {
72+
ctx := context.Background()
73+
74+
// Load Azure App Configuration
75+
appConfig, err := loadAzureAppConfiguration(ctx)
76+
if err != nil {
77+
log.Fatalf("Error loading Azure App Configuration: %v", err)
78+
}
79+
80+
// Create feature flag provider
81+
featureFlagProvider, err := azappconfig.NewFeatureFlagProvider(appConfig)
82+
if err != nil {
83+
log.Fatalf("Error creating feature flag provider: %v", err)
84+
}
85+
86+
// Register custom filters
87+
options := &featuremanagement.Options{
88+
Filters: []featuremanagement.FeatureFilter{
89+
&RandomFilter{},
90+
},
91+
}
92+
93+
// Create feature manager with custom filters
94+
featureManager, err := featuremanagement.NewFeatureManager(featureFlagProvider, options)
95+
if err != nil {
96+
log.Fatalf("Error creating feature manager: %v", err)
97+
}
98+
99+
// ...existing code...
100+
}
101+
```
102+
103+
## Feature filter in action
104+
105+
Relaunch the application and refresh the browser a few times. Without manually toggling the feature flag, the **Beta** menu appears randomly based on the percentage you set.
106+
107+
:::image type="content" source="./media/quickstarts/gin-app-feature-flag-before.png" alt-text="Screenshot of Gin web app with Beta menu hidden.":::
108+
109+
:::image type="content" source="./media/quickstarts/gin-app-feature-flag-after.png" alt-text="Screenshot of Gin web app with Beta menu.":::
110+
111+
## Next steps
112+
113+
To learn more about the built-in feature filters, continue to the following documents.
114+
115+
> [!div class="nextstepaction"]
116+
> [Enable features on a schedule](./howto-timewindow-filter.md)
117+
118+
> [!div class="nextstepaction"]
119+
> [Roll out features to targeted audience](./howto-targetingfilter.md)
120+
121+
For the full feature rundown of the Go feature management library, continue to the following document.
122+
123+
> [!div class="nextstepaction"]
124+
> [Go Feature Management reference](https://pkg.go.dev/github.com/microsoft/Featuremanagement-Go/featuremanagement)

articles/azure-app-configuration/howto-feature-filters.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ You can create custom feature filters that enable features based on your specifi
6262
- [ASP.NET Core](./howto-feature-filters-aspnet-core.md)
6363
- [Node.js](./howto-feature-filters-javascript.md)
6464
- [Python](./howto-feature-filters-python.md)
65+
- [Go Gin](./howto-feature-filters-go.md)
6566

6667
## Next steps
6768

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
---
2+
title: Enable features on a schedule in a Go Gin web application
3+
titleSuffix: Azure App Configuration
4+
description: Learn how to enable feature flags on a schedule in a Go Gin web application by using time window filters.
5+
ms.service: azure-app-configuration
6+
ms.devlang: golang
7+
author: linglingye
8+
ms.author: linglingye
9+
ms.topic: how-to
10+
ms.custom: devx-track-go, mode-other
11+
ms.date: 07/25/2025
12+
---
13+
14+
# Enable features on a schedule in a Go Gin web application
15+
16+
In this guide, you use the time window filter to enable a feature on a schedule for a Go Gin web application.
17+
18+
The example used in this article is based on the Go Gin web application introduced in the feature management [quickstart](./quickstart-feature-flag-go-gin.md). Before proceeding further, complete the quickstart to create a Go Gin web application with a *Beta* feature flag. Once completed, you must [add a time window filter](./howto-timewindow-filter.md) to the *Beta* feature flag in your App Configuration store.
19+
20+
## Prerequisites
21+
22+
- Create a [Go Gin web application with a feature flag](./quickstart-feature-flag-go-gin.md).
23+
- [Add a time window filter to the feature flag](./howto-timewindow-filter.md)
24+
25+
## Use the time window filter
26+
27+
You added a time window filter for your *Beta* feature flag in the prerequisites. Next, you'll use the feature flag with the time window filter in your Go Gin web application.
28+
29+
When you create a feature manager, the built-in feature filters are automatically added to its feature filter collection
30+
31+
The existing code from the quickstart already handles time window filters through the feature manager:
32+
33+
```golang
34+
// Create feature flag provider
35+
featureFlagProvider, err := azappconfig.NewFeatureFlagProvider(appConfig)
36+
if err != nil {
37+
log.Fatalf("Error creating feature flag provider: %v", err)
38+
}
39+
40+
// Create feature manager (supports built-in filters including TimeWindowFilter)
41+
featureManager, err := featuremanagement.NewFeatureManager(featureFlagProvider, nil)
42+
if err != nil {
43+
log.Fatalf("Error creating feature manager: %v", err)
44+
}
45+
```
46+
47+
The feature evaluation in your middleware will now respect the time window filter:
48+
49+
```golang
50+
func (app *WebApp) featureMiddleware() gin.HandlerFunc {
51+
return func(c *gin.Context) {
52+
// Check if Beta feature is enabled (TimeWindowFilter is automatically evaluated)
53+
betaEnabled, err := app.featureManager.IsEnabled("Beta")
54+
if err != nil {
55+
log.Printf("Error checking Beta feature: %v", err)
56+
}
57+
58+
// Store feature flag status for use in templates
59+
c.Set("betaEnabled", betaEnabled)
60+
c.Next()
61+
}
62+
}
63+
```
64+
65+
## Time window filter in action
66+
67+
Relaunch the application. If your current time is earlier than the start time set for the time window filter, the **Beta** menu item won't appear on the toolbar. This is because the *Beta* feature flag is disabled by the time window filter.
68+
69+
:::image type="content" source="./media/quickstarts/gin-app-feature-flag-before.png" alt-text="Screenshot of Gin web app with Beta menu hidden.":::
70+
71+
Once the start time has passed, refresh your browser a few times. You'll notice that the **Beta** menu item now appears. This is because the *Beta* feature flag is now enabled by the time window filter.
72+
73+
:::image type="content" source="./media/quickstarts/gin-app-feature-flag-after.png" alt-text="Screenshot of Gin web app with Beta menu.":::
74+
75+
## Next steps
76+
77+
To learn more about the feature filters, continue to the following documents.
78+
79+
> [!div class="nextstepaction"]
80+
> [Enable conditional features with feature filters](./howto-feature-filters.md)
81+
82+
> [!div class="nextstepaction"]
83+
> [Roll out features to targeted audience](./howto-targetingfilter.md)
84+
85+
For the full feature rundown of the Go feature management library, continue to the following document.
86+
87+
> [!div class="nextstepaction"]
88+
> [Go Feature Management reference](https://pkg.go.dev/github.com/microsoft/Featuremanagement-Go/featuremanagement)

articles/azure-app-configuration/howto-timewindow-filter.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ In this article, you learn how to add and configure a time window filter for you
5858

5959
- [ASP.NET Core](./howto-timewindow-filter-aspnet-core.md)
6060
- [JavaScript](./howto-timewindow-filter-javascript.md)
61+
- [Go Gin](./howto-timewindow-filter-go.md)
6162
- [Python](./howto-time-window-filter-python.md)
6263

6364
## Next steps

articles/backup/backup-client-automation.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Use PowerShell to back up Windows Server to Azure
33
description: In this article, learn how to use PowerShell to set up Azure Backup on Windows Server or a Windows client, and manage backup and recovery.
44
ms.topic: how-to
5-
ms.date: 02/28/2025
5+
ms.date: 07/29/2025
66
ms.service: azure-backup
77
ms.custom: devx-track-azurepowershell, no-azure-ad-ps-ref, engagement-fy24
88
author: AbhishekMallick-MS
@@ -33,7 +33,7 @@ The following steps lead you through creating a Recovery Services vault. A Recov
3333
2. The Recovery Services vault is an Azure Resource Manager resource, so you need to place it within a Resource Group. You can use an existing resource group, or create a new one. When creating a new resource group, specify the name and location for the resource group.
3434
3535
```powershell
36-
New-AzResourceGroup -Name "test-rg" Location "WestUS"
36+
New-AzResourceGroup -Name "test-rg" -Location "WestUS"
3737
```
3838
3939
3. Use the **New-AzRecoveryServicesVault** cmdlet to create the new vault. Be sure to specify the same location for the vault as was used for the resource group.

articles/backup/toc.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -744,7 +744,7 @@
744744
items:
745745
- name: Back up Hyper-V virtual machines
746746
href: back-up-hyper-v-virtual-machines-mabs.md
747-
- name: Back up Azure Stack HCI virtual machines
747+
- name: Back up Azure Local virtual machines
748748
href: back-up-azure-stack-hyperconverged-infrastructure-virtual-machines.md
749749
- name: VMware server
750750
href: backup-azure-backup-server-vmware.md

0 commit comments

Comments
 (0)