Skip to content

Commit dcf6a46

Browse files
committed
Merge branch 'main' into release-shared-disk-asr
2 parents a044353 + 9c045b3 commit dcf6a46

File tree

97 files changed

+1485
-1391
lines changed

Some content is hidden

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

97 files changed

+1485
-1391
lines changed
-5.55 KB
Loading
-23.7 KB
Loading
-939 Bytes
Loading

articles/api-management/mock-api-responses.md

Lines changed: 63 additions & 71 deletions
Large diffs are not rendered by default.

articles/azure-functions/functions-bindings-azure-sql-trigger.md

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,23 +9,21 @@ ms.custom:
99
- devx-track-js
1010
- devx-track-python
1111
- ignite-2023
12-
ms.date: 6/26/2024
12+
ms.date: 4/23/2025
1313
ms.author: bspendolini
1414
ms.reviewer: glenga
1515
zone_pivot_groups: programming-languages-set-functions-lang-workers
1616
---
1717

1818
# Azure SQL trigger for Functions
1919

20-
> [!NOTE]
21-
> In consumption plan functions, automatic scaling is not supported for SQL trigger. If the automatic scaling process stops the function, all processing of events will stop and it will need to be manually restarted.
22-
>
23-
> Use premium or dedicated plans for [scaling benefits](functions-scale.md) with SQL trigger.
24-
>
20+
The Azure SQL trigger uses [SQL change tracking](/sql/relational-databases/track-changes/about-change-tracking-sql-server) functionality to monitor a SQL table for changes and trigger a function when a row is created, updated, or deleted. For configuration details for change tracking for use with the Azure SQL trigger, see [Set up change tracking](#set-up-change-tracking-required). For information on setup details of the Azure SQL extension for Azure Functions, see the [SQL binding overview](functions-bindings-azure-sql.md).
2521

26-
The Azure SQL trigger uses [SQL change tracking](/sql/relational-databases/track-changes/about-change-tracking-sql-server) functionality to monitor a SQL table for changes and trigger a function when a row is created, updated, or deleted. For configuration details for change tracking for use with the Azure SQL trigger, see [Set up change tracking](#set-up-change-tracking-required). For information on setup details of the Azure SQL extension for Azure Functions, see the [SQL binding overview](./functions-bindings-azure-sql.md).
22+
The Azure SQL trigger scaling decisions for the [Consumption and Premium plans](functions-scale.md) are done via target-based scaling. For more information, see [Target-based scaling](functions-target-based-scaling.md) and review the [Azure Functions hosting options](functions-scale.md).
2723

28-
The Azure SQL trigger scaling decisions for the Consumption and Premium plans are done via target-based scaling. For more information, see [Target-based scaling](functions-target-based-scaling.md).
24+
> [!NOTE]
25+
> Support for Consumption plans requires [release v3.1.284 or later](https://github.com/Azure/azure-functions-sql-extension/releases) of the [Azure SQL bindings for Azure Functions](functions-bindings-azure-sql.md).
26+
>
2927
3028
## Functionality Overview
3129

@@ -41,7 +39,7 @@ while (true) {
4139

4240
Changes are processed in the order that their changes were made, with the oldest changes being processed first. A couple notes about change processing:
4341

44-
1. If changes to multiple rows are made at once the exact order that they are sent to the function is based on the order returned by the CHANGETABLE function
42+
1. If changes to multiple rows are made at once the exact order that they’re sent to the function is based on the order returned by the CHANGETABLE function
4543
2. Changes are "batched" together for a row. If multiple changes are made to a row between each iteration of the loop then only a single change entry exists for that row which will show the difference between the last processed state and the current state
4644
3. If changes are made to a set of rows, and then another set of changes are made to half of those same rows, then the half of the rows that weren't changed a second time are processed first. This processing logic is due to the above note with the changes being batched - the trigger will only see the "last" change made and use that for the order it processes them in
4745

@@ -662,7 +660,7 @@ Note that these retries are outside the built-in idle connection retry logic tha
662660
### Function exception retries
663661
If an exception occurs in the user function when processing changes then the batch of rows currently being processed are retried again in 60 seconds. Other changes are processed as normal during this time, but the rows in the batch that caused the exception are ignored until the timeout period has elapsed.
664662
665-
If the function execution fails five times in a row for a given row then that row is completely ignored for all future changes. Because the rows in a batch are not deterministic, rows in a failed batch might end up in different batches in subsequent invocations. This means that not all rows in the failed batch will necessarily be ignored. If other rows in the batch were the ones causing the exception, the "good" rows might end up in a different batch that doesn't fail in future invocations.
663+
If the function execution fails five times in a row for a given row then that row is completely ignored for all future changes. Because the rows in a batch aren't deterministic, rows in a failed batch might end up in different batches in subsequent invocations. This means that not all rows in the failed batch will necessarily be ignored. If other rows in the batch were the ones causing the exception, the "good" rows might end up in a different batch that doesn't fail in future invocations.
666664
667665
## Next steps
668666

articles/azure-maps/how-to-show-attribution.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ You need the following information to run the `attribution` command:
5151
Run the following GET request to get the corresponding copyright attribution to display on the map:
5252

5353
```http
54-
https://atlas.microsoft.com/map/attribution?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=2.1&tilesetId=microsoft.base&zoom=6&bounds=-122.414162,47.579490,-122.247157,47.668372
54+
https://atlas.microsoft.com/map/attribution?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=2024-04-01&tilesetId=microsoft.base&zoom=6&bounds=-122.414162,47.579490,-122.247157,47.668372
5555
```
5656

5757
## Additional information

articles/azure-maps/power-bi-visual-add-tile-layer.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ parameters:
5454
As an example, here's a formatted tile URL for the [weather radar tile service] in Azure Maps.
5555

5656
```html
57-
https://atlas.microsoft.com/map/tile?zoom={z}&x={x}&y={y}&tilesetId=microsoft.weather.radar.main&api-version=2.0&subscription-key={Your-Azure-Maps-Subscription-key}
57+
https://atlas.microsoft.com/map/tile?zoom={z}&x={x}&y={y}&tilesetId=microsoft.weather.radar.main&api-version=2024-04-01&subscription-key={Your-Azure-Maps-Subscription-key}
5858
```
5959

6060
For more information on Azure Maps tiling system, see [Zoom levels and tile grid].

articles/azure-maps/tutorial-ev-routing.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ pins = "custom|an15 53||{}||https://raw.githubusercontent.com/Azure-Samples/Azur
172172
encodedPins = urllib.parse.quote(pins, safe='')
173173

174174
# Render the range and electric vehicle charging points on the map.
175-
staticMapResponse = await session.get("https://atlas.microsoft.com/map/static/png?api-version=2022-08-01&subscription-key={}&pins={}&path={}&bbox={}&zoom=12".format(subscriptionKey,encodedPins,path,str(minLon)+", "+str(minLat)+", "+str(maxLon)+", "+str(maxLat)))
175+
staticMapResponse = await session.get("https://atlas.microsoft.com/map/static?api-version=2024-04-01&subscription-key={}&pins={}&path={}&bbox={}&zoom=12".format(subscriptionKey,encodedPins,path,str(minLon)+", "+str(minLat)+", "+str(maxLon)+", "+str(maxLat)))
176176

177177
poiRangeMap = await staticMapResponse.content.read()
178178

@@ -260,7 +260,7 @@ minLat -= latBuffer
260260
maxLat += latBuffer
261261

262262
# Render the route on the map.
263-
staticMapResponse = await session.get("https://atlas.microsoft.com/map/static/png?api-version=2022-08-01&subscription-key={}&&path={}&pins={}&bbox={}&zoom=16".format(subscriptionKey,path,pins,str(minLon)+", "+str(minLat)+", "+str(maxLon)+", "+str(maxLat)))
263+
staticMapResponse = await session.get("https://atlas.microsoft.com/map/static?api-version=2024-04-01&subscription-key={}&&path={}&pins={}&bbox={}&zoom=16".format(subscriptionKey,path,pins,str(minLon)+", "+str(minLat)+", "+str(maxLon)+", "+str(maxLat)))
264264

265265
staticMapImage = await staticMapResponse.content.read()
266266

articles/azure-maps/weather-service-tutorial.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ session = aiohttp.ClientSession()
134134

135135
pins="default|la-25+60|ls12|lc003C62|co9B2F15||'Location A'{} {}|'Location B'{} {}|'Location C'{} {}|'Location D'{} {}".format(coords[1],coords[0],coords[3],coords[2],coords[5],coords[4], coords[7],coords[6])
136136

137-
image_response = "https://atlas.microsoft.com/map/static/png?subscription-key={}&api-version=1.0&layer=basic&style=main&zoom=6&center={},{}&pins={}".format(subscription_key,coords[7],coords[6],pins)
137+
image_response = "https://atlas.microsoft.com/map/static?subscription-key={}&api-version=2024-04-01&layer=basic&style=main&zoom=6&center={},{}&pins={}".format(subscription_key,coords[7],coords[6],pins)
138138

139139
static_map_response = await session.get(image_response)
140140

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
---
2+
title: 'Quickstart: Back up a virtual machine in Azure with Terraform'
3+
description: In this quickstart, you learn how to configure Azure Backup to run a backup on demand by creating and configuring an Azure Windows virtual machine, virtual network, subnet, public IP, network security group, network interface, storage account, Backup recovery services vault, and Backup policy.
4+
ms.topic: quickstart
5+
ms.date: 04/03/2025
6+
ms.custom: devx-track-terraform
7+
ms.service: windows
8+
author: jyothisuri
9+
ms.author: jsuri
10+
#customer intent: As a Terraform user, I want to see how to configure Azure Backup to run a backup on demand by creating and configuring an Azure virtual network, subnet, public IP, network security group, network interface, storage account, Backup recovery services vault, and Backup policy.
11+
content_well_notification:
12+
- AI-contribution
13+
---
14+
15+
# Quickstart: Back up a virtual machine in Azure with Terraform
16+
17+
In this quickstart, you create an Azure Windows virtual machine (VM) and associated resources using Terraform. An Azure Windows VM is a scalable computing resource that Azure provides. It's an on-demand, virtualized Windows server in the Azure cloud. You can use it to deploy, test, and run applications, among other things. In addition to the VM, this code also creates a virtual network, subnet, public IP, network security group, network interface, storage account, Azure Backup recovery services vault, and Backup policy.
18+
19+
[!INCLUDE [About Terraform](~/azure-dev-docs-pr/articles/terraform/includes/abstract.md)]
20+
21+
In this article, you learn how to:
22+
> [!div class="checklist"]
23+
> * Create an Azure resource group with a unique name.
24+
> * Create a virtual network with a unique name and a specified address space.
25+
> * Create a subnet within the virtual network with a unique name and a specified address prefix.
26+
> * Create a public IP address with a unique name.
27+
> * Create a network security group with two security rules for remote desk protocol and web traffic.
28+
> * Create a network interface with a unique name, and attach it to the subnet and public IP address.
29+
> * Associate the network security group with the network interface.
30+
> * Generate a random ID for a unique storage account name, and insert a storage account for boot diagnostics.
31+
> * Create a Windows VM with a unique name, and generate a random password for the VM.
32+
> * Create a Backup recovery services vault with a unique name.
33+
> * Create a Backup policy for the VM with daily frequency and a retention period of seven days.
34+
> * Protect the VM with the created Backup policy.
35+
36+
## Prerequisites
37+
38+
- Create an Azure account with an active subscription. You can [create an account for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F).
39+
- [Install and configure Terraform](/azure/developer/terraform/quickstart-configure).
40+
41+
## Implement the Terraform code
42+
43+
The sample code for this article is located in the [Azure Terraform GitHub repo](https://github.com/Azure/terraform/tree/master/quickstart/101-backup-vm). You can view the log file containing the [test results from current and previous versions of Terraform](https://github.com/Azure/terraform/tree/master/quickstart/101-backup-vm/TestRecord.md). See more [articles and sample code showing how to use Terraform to manage Azure resources](/azure/terraform).
44+
45+
1. Create a directory in which to test and run the sample Terraform code, and make it the current directory.
46+
47+
1. Create a file named `main.tf`, and insert the following code:
48+
:::code language="Terraform" source="~/terraform_samples/quickstart/101-backup-vm/main.tf":::
49+
50+
1. Create a file named `outputs.tf`, and insert the following code:
51+
:::code language="Terraform" source="~/terraform_samples/quickstart/101-backup-vm/outputs.tf":::
52+
53+
1. Create a file named `providers.tf`, and insert the following code:
54+
:::code language="Terraform" source="~/terraform_samples/quickstart/101-backup-vm/providers.tf":::
55+
56+
1. Create a file named `variables.tf`, and insert the following code:
57+
:::code language="Terraform" source="~/terraform_samples/quickstart/101-backup-vm/variables.tf":::
58+
59+
> [!IMPORTANT]
60+
> If you're using the 4.x azurerm provider, you must [explicitly specify the Azure subscription ID](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/guides/4.0-upgrade-guide#specifying-subscription-id-is-now-mandatory) to authenticate to Azure before running the Terraform commands.
61+
>
62+
> One way to specify the Azure subscription ID without putting it in the `providers` block is to specify the subscription ID in an environment variable named `ARM_SUBSCRIPTION_ID`.
63+
>
64+
> For more information, see the [Azure provider reference documentation](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs#argument-reference).
65+
66+
## Initialize Terraform
67+
68+
[!INCLUDE [terraform-init.md](~/azure-dev-docs-pr/articles/terraform/includes/terraform-init.md)]
69+
70+
## Create a Terraform execution plan
71+
72+
[!INCLUDE [terraform-plan.md](~/azure-dev-docs-pr/articles/terraform/includes/terraform-plan.md)]
73+
74+
## Apply a Terraform execution plan
75+
76+
[!INCLUDE [terraform-apply-plan.md](~/azure-dev-docs-pr/articles/terraform/includes/terraform-apply-plan.md)]
77+
78+
## Verify the results
79+
80+
1. Get the Azure resource group name.
81+
82+
```console
83+
resource_group_name = $(terraform outout -raw azurerm_resource_group_name)
84+
```
85+
86+
1. Get the Backup recovery services vault name.
87+
88+
```console
89+
recovery_services_vault_name = $(terraform output -raw azurerm_recovery_services_vault_name)
90+
```
91+
92+
1. Get the Windows VM name.
93+
94+
```console
95+
windows_virtual_machine_name = $(terraform output -raw azurerm_windows_virtual_machine_name)
96+
```
97+
98+
1. Run [`az backup protection backup-now`](/cli/azure/backup/protection#az-backup-protection-backup-now) to start a backup job.
99+
100+
```azurecli
101+
az backup protection backup-now --resource-group $resource_group_name \
102+
--vault-name $recovery_services_vault_name \
103+
--container-name $windows_virtual_machine_name \
104+
--item-name $windows_virtual_machine_name \
105+
--backup-management-type AzureIaaSVM
106+
```
107+
108+
1. Run [`az backup job list`](/cli/azure/backup/job#az-backup-job-list) to monitor the backup job. When the *Status* of the backup job reports *Completed*, your VM is protected with Backup recovery services and has a full recovery point stored.
109+
110+
```azurecli
111+
az backup job list --resource-group $resource_group_name \
112+
--vault-name $recovery_services_vault_name \
113+
--output table
114+
```
115+
116+
## Clean up resources
117+
118+
[!INCLUDE [terraform-plan-destroy.md](~/azure-dev-docs-pr/articles/terraform/includes/terraform-plan-destroy.md)]
119+
120+
## Troubleshoot Terraform on Azure
121+
122+
[Troubleshoot common problems when using Terraform on Azure](/azure/developer/terraform/troubleshoot).
123+
124+
## Next steps
125+
126+
> [!div class="nextstepaction"]
127+
> [See more articles about Azure Windows VMs](/search/?terms=Azure%20windows%20virtual%20machine%20and%20terraform).

0 commit comments

Comments
 (0)