Skip to content

Commit bf0a3f4

Browse files
authored
Merge pull request #313346 from MicrosoftDocs/main
Auto Publish – main to live - 2026-03-18 17:00 UTC
2 parents 4f5ae99 + 873b88c commit bf0a3f4

30 files changed

Lines changed: 286 additions & 190 deletions

articles/application-gateway/mutual-authentication-arm-template.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -388,4 +388,4 @@ az deployment group create \
388388

389389
## Security notice
390390

391-
This solution is classified as **Microsoft Confidential**. Please ensure you follow your organization’s security and data handling best practices when deploying and managing this solution.
391+
Please ensure you follow your organization’s security and data handling best practices when deploying and managing this solution.

articles/azure-functions/durable/durable-functions-diagnostics.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,32 @@ module.exports = df.orchestrator(function*(context){
240240
});
241241
```
242242

243+
<br>
244+
<details>
245+
<summary><b>Node.js programming model v4 apps (including TypeScript)</b></summary>
246+
247+
Use the same replay check pattern in your orchestration function:
248+
249+
```typescript
250+
import * as df from "durable-functions";
251+
252+
df.app.orchestration("FunctionChain", function* (context) {
253+
if (!context.df.isReplaying) context.log("Calling F1.");
254+
yield context.df.callActivity("F1");
255+
if (!context.df.isReplaying) context.log("Calling F2.");
256+
yield context.df.callActivity("F2");
257+
if (!context.df.isReplaying) context.log("Calling F3.");
258+
yield context.df.callActivity("F3");
259+
context.log("Done!");
260+
});
261+
```
262+
263+
> [!NOTE]
264+
> The `isReplaying` check suppresses duplicate logs caused by orchestrator replay. It doesn't suppress duplicate logs caused by full re-execution (for example, host restarts, long local debugging sessions, or queue message visibility timeouts). In those cases, you might still see repeated log lines with the same orchestration instance ID.
265+
266+
</details>
267+
<br>
268+
243269
# [Python](#tab/python)
244270

245271
```python
@@ -377,6 +403,25 @@ module.exports = df.orchestrator(function*(context){
377403
});
378404
```
379405

406+
<details>
407+
<summary><b>Node.js programming model v4 apps (including TypeScript)</b></summary>
408+
409+
```typescript
410+
import * as df from "durable-functions";
411+
412+
df.app.orchestration("FunctionChain", function* (context) {
413+
if (!context.df.isReplaying) context.log("Calling F1.");
414+
yield context.df.callActivity("F1");
415+
if (!context.df.isReplaying) context.log("Calling F2.");
416+
yield context.df.callActivity("F2");
417+
if (!context.df.isReplaying) context.log("Calling F3.");
418+
yield context.df.callActivity("F3");
419+
context.log("Done!");
420+
});
421+
```
422+
423+
</details>
424+
380425
# [Python](#tab/python)
381426

382427
```python
@@ -484,6 +529,25 @@ module.exports = df.orchestrator(function*(context) {
484529
});
485530
```
486531

532+
<details>
533+
<summary><b>Node.js programming model v4 apps (including TypeScript)</b></summary>
534+
535+
```typescript
536+
import * as df from "durable-functions";
537+
538+
df.app.orchestration("SetStatusTest", function* (context) {
539+
// ...do work...
540+
541+
// update the status of the orchestration with some arbitrary data
542+
const customStatus = { completionPercentage: 90.0, status: "Updating database records" };
543+
context.df.setCustomStatus(customStatus);
544+
545+
// ...do more work...
546+
});
547+
```
548+
549+
</details>
550+
487551
# [Python](#tab/python)
488552

489553
```python

articles/azure-functions/durable/durable-functions-isolated-create-first-csharp.md

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ To complete this quickstart, you need:
3737

3838
* An Azure subscription. To use Durable Functions, you must have an Azure Storage account.
3939

40-
* [.NET Core SDK](https://dotnet.microsoft.com/download) version 3.1 or later installed.
40+
* [.NET SDK](https://dotnet.microsoft.com/download) version 8.0 or later installed.
4141

4242
* An HTTP test tool that keeps your data secure. For more information, see [HTTP test tools](../functions-develop-local.md#http-test-tools).
4343

@@ -70,6 +70,16 @@ In Visual Studio Code, create a local Azure Functions project.
7070

7171
Visual Studio Code installs Azure Functions Core Tools if it's required to create the project. It also creates a function app project in a folder. This project contains the [host.json](../functions-host-json.md) and [local.settings.json](../functions-develop-local.md#local-settings-file) configuration files.
7272

73+
If you don't see **C#** in the language list or if only *function.json* is generated, verify the following prerequisites and then create the project again in a new empty folder:
74+
75+
* The latest [Azure Functions Core Tools](../functions-run-local.md) is installed.
76+
* A supported [.NET SDK](https://dotnet.microsoft.com/download) is installed.
77+
* The [C# extension](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp) is installed in Visual Studio Code.
78+
79+
These checks usually resolve cases where Visual Studio Code scaffolds only metadata instead of generating the C# project files.
80+
81+
For more troubleshooting steps, see the [Azure Functions Core Tools reference](../functions-core-tools-reference.md).
82+
7383
Another file, *HelloOrchestration.cs*, contains the basic building blocks of a Durable Functions app:
7484

7585
| Method | Description |
@@ -100,7 +110,7 @@ You can use other storage options for your Durable Functions app. For more infor
100110

101111
## Test the function locally
102112

103-
Azure Functions Core Tools gives you the capability to run an Azure Functions project on your local development computer. You're prompted to install these tools the first time you start a function in Visual Studio Code.
113+
Azure Functions Core Tools gives you the capability to run an Azure Functions project on your local development computer. You're prompted to install these tools the first time you start a function in Visual Studio.
104114

105115
1. In Visual Studio Code, set a breakpoint in the `SayHello` activity function code, and then select F5 to start the function app project. The terminal panel displays output from Core Tools.
106116

@@ -228,7 +238,7 @@ For more information about these functions, see [Durable Functions types and fea
228238

229239
Azure Functions Core Tools gives you the capability to run an Azure Functions project on your local development computer. You're prompted to install these tools the first time you start a function in Visual Studio Code.
230240

231-
1. In Visual Studio Code, set a breakpoint in the `SayHello` activity function code, and then select F5. If you're prompted, accept the request from Visual Studio to download and install Azure Functions Core (command-line) tools. You might also need to enable a firewall exception so that the tools can handle HTTP requests.
241+
1. In Visual Studio, set a breakpoint in the `SayHello` activity function code, and then select F5. If you're prompted, accept the request from Visual Studio to download and install Azure Functions Core (command-line) tools. You might also need to enable a firewall exception so that the tools can handle HTTP requests.
232242

233243
> [!NOTE]
234244
> For more information about debugging, see [Durable Functions diagnostics](durable-functions-diagnostics.md#debugging).

articles/azure-functions/durable/durable-functions-sequence.md

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ Java sample isn't available yet.
160160
This code shows an orchestrator that calls three activities in sequence and passes each output to the next activity:
161161

162162
```csharp
163+
using System.Threading.Tasks;
163164
using Microsoft.DurableTask;
164165

165166
[DurableTask]
@@ -246,7 +247,10 @@ This sample is shown for .NET, JavaScript, Java, and Python.
246247
The following code shows an orchestrator that calls three activities in sequence:
247248

248249
```java
249-
import com.microsoft.durabletask.*;
250+
import com.microsoft.durabletask.DurableTaskGrpcWorker;
251+
import com.microsoft.durabletask.DurableTaskSchedulerWorkerExtensions;
252+
import com.microsoft.durabletask.TaskOrchestration;
253+
import com.microsoft.durabletask.TaskOrchestrationFactory;
250254

251255
DurableTaskGrpcWorker worker = DurableTaskSchedulerWorkerExtensions.createWorkerBuilder(connectionString)
252256
.addOrchestration(new TaskOrchestrationFactory() {
@@ -367,6 +371,7 @@ Java sample coming soon.
367371
Activities in the Durable Task SDK inherit from `TaskActivity<TInput, TOutput>`:
368372

369373
```csharp
374+
using System.Threading.Tasks;
370375
using Microsoft.DurableTask;
371376
using Microsoft.Extensions.Logging;
372377

@@ -461,7 +466,8 @@ This sample is shown for .NET, JavaScript, Java, and Python.
461466
Activities in Java are defined using `TaskActivityFactory`:
462467

463468
```java
464-
import com.microsoft.durabletask.*;
469+
import com.microsoft.durabletask.TaskActivity;
470+
import com.microsoft.durabletask.TaskActivityFactory;
465471

466472
.addActivity(new TaskActivityFactory() {
467473
@Override
@@ -583,6 +589,7 @@ Start an orchestration from a client application. The client schedules the orche
583589
# [C#](#tab/csharp)
584590

585591
```csharp
592+
using System;
586593
using Microsoft.DurableTask.Client;
587594

588595
// Create the client
@@ -655,7 +662,7 @@ print(f"Started orchestration with ID: {instance_id}")
655662
# Wait for the orchestration to complete
656663
result = client.wait_for_orchestration_completion(instance_id, timeout=60)
657664

658-
if result and result.runtime_status == OrchestrationStatus.COMPLETED:
665+
if result and result.runtime_status == "COMPLETED":
659666
print(f"Orchestration completed with result: {result.serialized_output}")
660667
```
661668

@@ -668,7 +675,11 @@ This sample is shown for .NET, JavaScript, Java, and Python.
668675
# [Java](#tab/java)
669676

670677
```java
671-
import com.microsoft.durabletask.*;
678+
import java.time.Duration;
679+
680+
import com.microsoft.durabletask.DurableTaskClient;
681+
import com.microsoft.durabletask.NewOrchestrationInstanceOptions;
682+
import com.microsoft.durabletask.OrchestrationMetadata;
672683
import com.microsoft.durabletask.azuremanaged.DurableTaskSchedulerClientExtensions;
673684

674685
// Create the client

articles/azure-functions/durable/durable-functions-singletons.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ For background jobs, you often need to ensure that only one instance of a partic
2626

2727
::: zone pivot="durable-functions"
2828

29-
The following example shows an HTTP-trigger function that creates a singleton background job orchestration. The code ensures that only one instance exists for a specified instance ID.
29+
The following example shows an HTTP-trigger function that creates a singleton background job orchestration. The code attempts to ensure that only one active instance exists for a specified instance ID.
3030

3131
# [C#](#tab/csharp)
3232

@@ -42,7 +42,7 @@ public static async Task<HttpResponseData> RunSingle(
4242
ILogger logger = executionContext.GetLogger("HttpStartSingle");
4343

4444
// Check if an instance with the specified ID already exists or an existing one stopped running(completed/failed/terminated).
45-
OrchestrationMetadata? existingInstance = await starter.GetInstancesAsync(instanceId);
45+
OrchestrationMetadata? existingInstance = await starter.GetInstanceAsync(instanceId, getInputsAndOutputs: false);
4646
if (existingInstance == null
4747
|| existingInstance.RuntimeStatus == OrchestrationRuntimeStatus.Completed
4848
|| existingInstance.RuntimeStatus == OrchestrationRuntimeStatus.Failed
@@ -250,7 +250,7 @@ public HttpResponseMessage runSingle(
250250

251251
::: zone pivot="durable-task-sdks"
252252

253-
The following example shows how to create a singleton orchestration using the Durable Task SDKs. The code ensures that only one instance exists for a specified instance ID.
253+
The following example shows how to create a singleton orchestration using the Durable Task SDKs. The code attempts to ensure that only one active instance exists for a specified instance ID.
254254

255255
# [C#](#tab/csharp)
256256

articles/azure-vmware/arc-enable-guest-management.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ title: Enable guest management and install extensions on Arc-enabled VMs
33
description: Learn how to set up and enable guest management and install extensions on Arc-enabled VMs.
44
ms.topic: how-to
55
ms.service: azure-vmware
6-
ms.date: 05/15/2024
6+
ms.date: 03/10/2026
77
ms.custom: references_regions, devx-track-azurecli, engagement-fy23
88
---
99

1010
# Enable guest management and install extensions on Arc-enabled VMs
1111

12-
In this article, you learn how to enable guest management and install extensions on Arc-enabled VMs in Azure VMware Solution. Use guest management to manage the guest operating system of your VM, including installing and managing extensions. This feature is available for Arc-enabled VMware VMs in Azure VMware Solution private clouds.
12+
In this article, you learn how to enable guest management and install extensions on Arc-enabled virtual machines (VMs) in Azure VMware Solution. Use guest management to manage the guest operating system of your VM, including installing and managing extensions. This feature is available for Arc-enabled VMware VMs in Azure VMware Solution private clouds.
1313

1414
## Prerequisite
1515

@@ -43,9 +43,9 @@ These steps change the VM machine type from _Machine – Azure Arc_ to type _Mac
4343

4444
There are two ways to refresh the integration between the Arc-enabled VMs and Azure VMware Solution:  
4545

46-
1. In the Azure VMware Solution private cloud, navigate to the vCenter Server inventory and Virtual Machines section within the portal. Locate the virtual machine that requires updating and follow the process to 'Enable in Azure'. If the option is grayed out, you must first **Remove from Azure** and then proceed to **Enable in Azure**
46+
1. In the Azure VMware Solution private cloud, navigate to the vCenter Server inventory and Virtual Machines section within the portal. Locate the virtual machine that requires updating and follow the process to **Enable in Azure**. If the option is grayed out, you must first **Remove from Azure** and then proceed to **Enable in Azure**
4747

48-
2. Run the [az connectedvmware vm create](/cli/azure/connectedvmware/vm?view=azure-cli-latest%22%20\l%20%22az-connectedvmware-vm-create&preserve-view=true) Azure CLI command on the VM in Azure VMware Solution to update the machine type
48+
2. To update the machine type, run the [**az connectedvmware vm create**](/cli/azure/connectedvmware/vm?view=azure-cli-latest%22%20\l%20%22az-connectedvmware-vm-create&preserve-view=true) Azure CLI command on the VM in Azure VMware Solution. 
4949

5050
```azurecli
5151
az connectedvmware vm create --subscription <subscription-id> --location <Azure region of the machine> --resource-group <resource-group-name> --custom-location /providers/microsoft.extendedlocation/customlocations/<custom-location-name> --name <machine-name> --inventory-item /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ConnectedVMwarevSphere/VCenters/<vcenter-name>/InventoryItems/<machine-name>

articles/azure-vmware/azure-security-integration.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Integrate Microsoft Defender for Cloud with Azure VMware Solution
33
description: Learn how to protect your Azure VMware Solution VMs with Azure's native security tools from the workload protection dashboard.
44
ms.topic: how-to
55
ms.service: azure-vmware
6-
ms.date: 2/28/2024
6+
ms.date: 3/12/2026
77
ms.custom: engagement-fy23
88
# Customer intent: "As an IT security administrator, I want to integrate security monitoring for Azure VMware Solution with advanced threat detection tools, so that I can proactively assess vulnerabilities and respond to security incidents effectively."
99
---
@@ -24,7 +24,7 @@ The diagram shows the integrated monitoring architecture of integrated security
2424

2525
:::image type="content" source="media/azure-security-integration/azure-integrated-security-architecture.png" alt-text="Diagram showing the architecture of Azure Integrated Security." border="false":::
2626

27-
**Log Analytics agent** collects log data from Azure, Azure VMware Solution, and on-premises VMs. The log data is sent to Azure Monitor Logs and stored in a **Log Analytics Workspace**. Each workspace has its own data repository and configuration to store data. Once the logs are collected, **Microsoft Defender for Cloud** assesses the vulnerability status of Azure VMware Solution VMs and raises an alert for any critical vulnerability. Once assessed, Microsoft Defender for Cloud forwards the vulnerability status to Microsoft Sentinel to create an incident and map with other threats. Microsoft Defender for Cloud is connected to Microsoft Sentinel using Microsoft Defender for Cloud Connector.
27+
**Log Analytics agent** collects log data from Azure, Azure VMware Solution, and on-premises VMs. The log data is sent to Azure Monitor Logs and stored in a **Log Analytics Workspace**. Each workspace has its own data repository and configuration to store data. Once the logs are collected, **Microsoft Defender for Cloud** assesses the vulnerability status of Azure VMware Solution VMs and raises an alert for any critical vulnerability. Once assessed, Microsoft Defender for Cloud forwards the vulnerability status to Microsoft Sentinel to create an incident and map with other threats. Microsoft Defender for Cloud is connected to Microsoft Sentinel using Microsoft Defender for Cloud Connector.
2828

2929
## Prerequisites
3030

@@ -37,7 +37,7 @@ The diagram shows the integrated monitoring architecture of integrated security
3737
- [Enable Microsoft Defender for Cloud in your subscription](../security-center/security-center-get-started.md).
3838

3939
>[!NOTE]
40-
>Microsoft Defender for Cloud is a pre-configured tool that doesn't require deployment, but you'll need to enable it.
40+
>Microsoft Defender for Cloud is a preconfigured tool that doesn't require deployment, but you need to enable it.
4141
4242
- [Enable Microsoft Defender for Cloud](../security-center/enable-azure-defender.md).
4343

@@ -131,7 +131,7 @@ After connecting data sources to Microsoft Sentinel, you can create rules to gen
131131

132132
2. Under Configurations, select **Analytics**.
133133

134-
3. Select **+Create** and on the drop-down, select **Scheduled query rule**.
134+
3. Select **+Create** then, from the drop-down menu, select **Scheduled query rule**.
135135

136136
4. On the **General** tab, enter the required information and then select **Next: Set rule logic**.
137137

articles/azure-vmware/deploy-vsan-stretched-clusters.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Deploy vSAN stretched clusters
33
description: Learn how to deploy vSAN stretched clusters.
44
ms.topic: how-to
55
ms.service: azure-vmware
6-
ms.date: 12/4/2024
6+
ms.date: 3/05/2026
77
ms.custom: references_regions, engagement-fy23
88
# Customer intent: As a cloud administrator, I want to deploy a vSAN stretched cluster on Azure VMware Solution, so that I can ensure high availability and disaster recovery across multiple availability zones.
99
---

articles/azure-vmware/deploy-zerto-disaster-recovery.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Deploy Zerto disaster recovery on Azure VMware Solution
33
description: Learn how to implement Zerto disaster recovery for on-premises VMware or Azure VMware Solution virtual machines.
44
ms.topic: how-to
55
ms.service: azure-vmware
6-
ms.date: 12/11/2023
6+
ms.date: 3/05/2026
77
ms.custom: engagement-fy23
88
# Customer intent: As an IT administrator, I want to implement Zerto disaster recovery for my on-premises VMware and Azure VMware Solution virtual machines, so that I can ensure minimal downtime and data loss during adverse situations.
99
---

0 commit comments

Comments
 (0)