Skip to content

Commit f31d8a7

Browse files
committed
edits, final
1 parent bb82b0a commit f31d8a7

10 files changed

+45
-45
lines changed

articles/azure-functions/durable/durable-functions-configure-durable-functions-with-credentials.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,22 +27,22 @@ To complete this quickstart, you need:
2727

2828
If you don't have an existing Durable Functions project deployed in Azure, we recommend that you start with one of the following quickstarts:
2929

30-
* [Create your first Durable Functions app - C#](durable-functions-isolated-create-first-csharp.md)
31-
* [Create your first Durable Functions app - JavaScript](quickstart-js-vscode.md)
32-
* [Create your first Durable Functions app - Python](quickstart-python-vscode.md)
33-
* [Create your first Durable Functions app - PowerShell](quickstart-powershell-vscode.md)
34-
* [Create your first Durable Functions app - Java](quickstart-java.md)
30+
* [Create a Durable Functions app - C#](durable-functions-isolated-create-first-csharp.md)
31+
* [Create a Durable Functions app - JavaScript](quickstart-js-vscode.md)
32+
* [Create a Durable Functions app - Python](quickstart-python-vscode.md)
33+
* [Create a Durable Functions app - PowerShell](quickstart-powershell-vscode.md)
34+
* [Create a Durable Functions app - Java](quickstart-java.md)
3535

3636
## Configure your app to use managed identity credentials
3737

38-
Your app can use a [managed identity](../../app-service/overview-managed-identity.md) to easily access other Microsoft Entra-protected resources, such as Azure Key Vault. Managed identity access is supported in the [Durable Functions extension](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask) version 2.7.0 and later.
38+
Your app can use a [managed identity](../../app-service/overview-managed-identity.md) to easily access other Microsoft Entra-protected resources, such as an instance of Azure Key Vault. Managed identity access is supported in the [Durable Functions extension](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask) version 2.7.0 and later.
3939

4040
> [!NOTE]
4141
> A managed identity is available to apps only when they execute in Azure. When an app is configured to use identity-based connections, a locally executing app instead uses your *developer credentials* to authenticate with Azure resources. Then, when the app is deployed in Azure, it uses your managed identity configuration.
4242
4343
### Enable a managed identity
4444

45-
To begin, enable a managed identity for your application. Your function app must have either a *system assigned managed identity* or a *user assigned managed identity*. To enable a managed identity for your function app, and to learn more about the differences between the two types of identities, see the [managed identity overview](../../app-service/overview-managed-identity.md).
45+
To begin, enable a managed identity for your application. Your function app must have either a *system-assigned managed identity* or a *user-assigned managed identity*. To enable a managed identity for your function app, and to learn more about the differences between the two types of identities, see the [managed identity overview](../../app-service/overview-managed-identity.md).
4646

4747
### Assign access roles to the managed identity
4848

@@ -107,7 +107,7 @@ Before you can use your app's managed identity, make some changes to the app con
107107

108108
## Configure your app to use client secret credentials
109109

110-
Registering a client application in Microsoft Entra ID is another way you can configure access to an Azure service for your Durable Functions app. In the following steps, you use client secret credentials for authentication to your Azure Storage account. Function apps can use this method both locally and in Azure. Using a client secret credential is *less recommended* than using managed identity credentials because a client secret is more complicated to configure and manage. A client secret credential also requires sharing a secret credential with the Azure Functions service.
110+
Registering a client application in Microsoft Entra ID is another way you can configure access to an Azure service for your Durable Functions app. In the following steps, you use client secret credentials for authentication to your Azure Storage account. Function apps can use this method both locally and in Azure. Using a client secret credential is *less recommended* than using managed identity credentials because a client secret is more complex to set up and manage. A client secret credential also requires sharing a secret credential with the Azure Functions service.
111111

112112
<a name='register-a-client-application-on-azure-active-directory'></a>
113113

@@ -125,7 +125,7 @@ Registering a client application in Microsoft Entra ID is another way you can co
125125

126126
1. *Copy the secret value to use later*.
127127

128-
The secret value doesn't appear again after you leave the pane, so be sure that you *copy the secret and save it*.
128+
The secret's value doesn't appear again after you leave the pane, so be sure that you *copy the secret and save it*.
129129

130130
:::image type="content" source="media/durable-functions-configure-df-with-credentials/durable-functions-client-secret-scenario-01.png" alt-text="Screenshot that shows the Add a client secret pane." lightbox="media/durable-functions-configure-df-with-credentials/durable-functions-client-secret-scenario-01.png":::
131131

@@ -196,6 +196,6 @@ In the Azure portal, run and test the application. To run and test the app local
196196

197197
* **AzureWebJobsStorage__tenantId**: The tenant ID that the Microsoft Entra application is registered in. Get this GUID value on the Microsoft Entra application pane.
198198

199-
The values to use for the client ID and the tenant ID appear on your client application Overview pane. The client secret value is the one that you saved in an earlier step. The client secret value isn't available after the pane is refreshed.
199+
The values to use for the client ID and the tenant ID appear on your client application Overview pane. The client secret value is the one that you saved in an earlier step. The client secret's value isn't available after the pane is refreshed.
200200

201201
:::image type="content" source="media/durable-functions-configure-df-with-credentials/durable-functions-client-secret-scenario-04.png" alt-text="Screenshot that shows the tenant ID and client ID on a Microsoft Entra application pane." lightbox="media/durable-functions-configure-df-with-credentials/durable-functions-client-secret-scenario-04.png":::

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ ms.custom: mode-other, devdivchpfy22, vscode-azure-extension-update-complete, de
1212

1313
# Quickstart: Create a C# Durable Functions app
1414

15-
Durable Functions is a feature of [Azure Functions](../functions-overview.md). Use Durable Functions to write stateful functions in a serverless environment. Durable Functions manages state, checkpoints, and restarts in your application.
15+
Use Durable Functions, a feature of [Azure Functions](../functions-overview.md), to write stateful functions in a serverless environment. Durable Functions manages state, checkpoints, and restarts in your application.
1616

1717
Like Azure Functions, Durable Functions supports two process models for .NET class library functions. To learn more about the two processes, see [Differences between in-process and isolated worker process .NET Azure Functions](../dotnet-isolated-in-process-differences.md).
1818

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

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ The monitor pattern refers to a flexible *recurring* process in a workflow - for
3030

3131
This sample monitors a location's current weather conditions and alerts a user by SMS when the skies are clear. You could use a regular timer-triggered function to check the weather and send alerts. However, one problem with this approach is **lifetime management**. If only one alert should be sent, the monitor needs to disable itself after clear weather is detected. The monitoring pattern can end its own execution, among other benefits:
3232

33-
* Monitors run on intervals, not schedules: a timer trigger *runs* every hour; a monitor *waits* one hour between actions. A monitor's actions will not overlap unless specified, which can be important for long-running tasks.
33+
* Monitors run on intervals, not schedules: a timer trigger *runs* every hour; a monitor *waits* one hour between actions. A monitor's actions won't overlap unless specified, which can be important for long-running tasks.
3434
* Monitors can have dynamic intervals: the wait time can change based on some condition.
3535
* Monitors can terminate when some condition is met or be terminated by another process.
3636
* Monitors can take parameters. The sample shows how the same weather-monitoring process can be applied to any requested location and phone number.
@@ -47,7 +47,7 @@ This sample monitors a location's current weather conditions and alerts a user b
4747

4848
This sample involves using the Weather Underground API to check current weather conditions for a location.
4949

50-
The first thing you need is a Weather Underground account. You can create one for free at [https://www.wunderground.com/signup](https://www.wunderground.com/signup). Once you have an account, you will need to acquire an API key. You can do so by visiting [https://www.wunderground.com/weather/api](https://www.wunderground.com/weather/api/?MR=1), then selecting Key Settings. The Stratus Developer plan is free and sufficient to run this sample.
50+
The first thing you need is a Weather Underground account. You can create one for free at [https://www.wunderground.com/signup](https://www.wunderground.com/signup). Once you have an account, you need to acquire an API key. You can do so by visiting [https://www.wunderground.com/weather/api](https://www.wunderground.com/weather/api/?MR=1), then selecting Key Settings. The Stratus Developer plan is free and sufficient to run this sample.
5151

5252
Once you have an API key, add the following **app setting** to your function app.
5353

@@ -69,30 +69,30 @@ This article explains the following functions in the sample app:
6969

7070
[!code-csharp[Main](~/samples-durable-functions/samples/precompiled/Monitor.cs?range=41-78,97-115)]
7171

72-
The orchestrator requires a location to monitor and a phone number to send a message to when the whether becomes clear at the location. This data is passed to the orchestrator as a strongly typed `MonitorRequest` object.
72+
The orchestrator requires a location to monitor and a phone number to send a message to when the weather becomes clear at the location. This data is passed to the orchestrator as a strongly typed `MonitorRequest` object.
7373

7474
# [JavaScript](#tab/javascript)
7575

7676
The **E3_Monitor** function uses the standard *function.json* for orchestrator functions.
7777

7878
:::code language="javascript" source="~/azure-functions-durable-js/samples/E3_Monitor/function.json":::
7979

80-
Here is the code that implements the function:
80+
Here's the code that implements the function:
8181

8282
:::code language="javascript" source="~/azure-functions-durable-js/samples/E3_Monitor/index.js":::
8383

8484
---
8585

8686
This orchestrator function performs the following actions:
8787

88-
1. Gets the **MonitorRequest** consisting of the *location* to monitor and the *phone number* to which it will send an SMS notification.
88+
1. Gets the **MonitorRequest** consisting of the *location* to monitor and the *phone number* to which it sends an SMS notification.
8989
2. Determines the expiration time of the monitor. The sample uses a hard-coded value for brevity.
9090
3. Calls **E3_GetIsClear** to determine whether there are clear skies at the requested location.
9191
4. If the weather is clear, calls **E3_SendGoodWeatherAlert** to send an SMS notification to the requested phone number.
9292
5. Creates a durable timer to resume the orchestration at the next polling interval. The sample uses a hard-coded value for brevity.
9393
6. Continues running until the current UTC time passes the monitor's expiration time, or an SMS alert is sent.
9494

95-
Multiple orchestrator instances can run simultaneously by calling the orchestrator function multiple times. The location to monitor and the phone number to send an SMS alert to can be specified. Finally, do note that the orchestrator function is *not* running while waiting for the timer, so you will not get charged for it.
95+
Multiple orchestrator instances can run simultaneously by calling the orchestrator function multiple times. The location to monitor and the phone number to send an SMS alert to can be specified. Finally, do note that the orchestrator function isn't* running while waiting for the timer, so you won't get charged for it.
9696
### E3_GetIsClear activity function
9797

9898
As with other samples, the helper activity functions are regular functions that use the `activityTrigger` trigger binding. The **E3_GetIsClear** function gets the current weather conditions using the Weather Underground API and determines whether the sky is clear.
@@ -107,7 +107,7 @@ The *function.json* is defined as follows:
107107

108108
:::code language="javascript" source="~/azure-functions-durable-js/samples/E3_GetIsClear/function.json":::
109109

110-
And here is the implementation.
110+
And here's the implementation.
111111

112112
:::code language="javascript" source="~/azure-functions-durable-js/samples/E3_GetIsClear/index.js":::
113113

@@ -130,7 +130,7 @@ Its *function.json* is simple:
130130

131131
:::code language="javascript" source="~/azure-functions-durable-js/samples/E3_SendGoodWeatherAlert/function.json":::
132132

133-
And here is the code that sends the SMS message:
133+
And here's the code that sends the SMS message:
134134

135135
:::code language="javascript" source="~/azure-functions-durable-js/samples/E3_SendGoodWeatherAlert/index.js":::
136136

@@ -157,7 +157,7 @@ RetryAfter: 10
157157
{"id": "f6893f25acf64df2ab53a35c09d52635", "statusQueryGetUri": "https://{host}/runtime/webhooks/durabletask/instances/f6893f25acf64df2ab53a35c09d52635?taskHub=SampleHubVS&connection=Storage&code={systemKey}", "sendEventPostUri": "https://{host}/runtime/webhooks/durabletask/instances/f6893f25acf64df2ab53a35c09d52635/raiseEvent/{eventName}?taskHub=SampleHubVS&connection=Storage&code={systemKey}", "terminatePostUri": "https://{host}/runtime/webhooks/durabletask/instances/f6893f25acf64df2ab53a35c09d52635/terminate?reason={text}&taskHub=SampleHubVS&connection=Storage&code={systemKey}"}
158158
```
159159

160-
The **E3_Monitor** instance starts and queries the current weather conditions for the requested location. If the weather is clear, it calls an activity function to send an alert; otherwise, it sets a timer. When the timer expires, the orchestration will resume.
160+
The **E3_Monitor** instance starts and queries the current weather conditions for the requested location. If the weather is clear, it calls an activity function to send an alert; otherwise, it sets a timer. When the timer expires, the orchestration resumes.
161161

162162
You can see the orchestration's activity by looking at the function logs in the Azure Functions portal.
163163

@@ -177,15 +177,15 @@ You can see the orchestration's activity by looking at the function logs in the
177177
2018-03-01T01:14:54.030 Function completed (Success, Id=561d0c78-ee6e-46cb-b6db-39ef639c9a2c, Duration=62ms)
178178
```
179179

180-
The orchestration completes once its timeout is reached or clear skies are detected. You can also use the `terminate` API inside another function or invoke the **terminatePostUri** HTTP POST webhook referenced in the 202 response above. To use the webhook, replace `{text}` with the reason for the early termination. The HTTP POST URL will look roughly as follows:
180+
The orchestration completes once its timeout is reached or clear skies are detected. You can also use the `terminate` API inside another function or invoke the **terminatePostUri** HTTP POST webhook referenced in the preceding 202 response. To use the webhook, replace `{text}` with the reason for the early termination. The HTTP POST URL looks roughly as follows:
181181

182182
```
183183
POST https://{host}/runtime/webhooks/durabletask/instances/f6893f25acf64df2ab53a35c09d52635/terminate?reason=Because&taskHub=SampleHubVS&connection=Storage&code={systemKey}
184184
```
185185

186186
## Next steps
187187

188-
This sample has demonstrated how to use Durable Functions to monitor an external source's status using [durable timers](durable-functions-timers.md) and conditional logic. The next sample shows how to use external events and [durable timers](durable-functions-timers.md) to handle human interaction.
188+
This sample demonstrates how to use Durable Functions to monitor an external source's status using [durable timers](durable-functions-timers.md) and conditional logic. The next sample shows how to use external events and [durable timers](durable-functions-timers.md) to handle human interaction.
189189

190190
> [!div class="nextstepaction"]
191-
> [Run the human interaction sample](durable-functions-phone-verification.md)
191+
> [Run the human interaction sample](durable-functions-phone-verification.md)

articles/azure-functions/durable/quickstart-java.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ zone_pivot_groups: create-java-durable-options
1212

1313
# Quickstart: Create a Java Durable Functions app
1414

15-
Durable Functions is a feature of [Azure Functions](../functions-overview.md). Use Durable Functions to write stateful functions in a serverless environment. Durable Functions manages state, checkpoints, and restarts in your application.
15+
Use Durable Functions, a feature of [Azure Functions](../functions-overview.md), to write stateful functions in a serverless environment. Durable Functions manages state, checkpoints, and restarts in your application.
1616

1717
In this quickstart, you create and test a "hello world" Durable Functions app in Java.
1818

articles/azure-functions/durable/quickstart-js-vscode.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ zone_pivot_groups: functions-nodejs-model
1212

1313
# Quickstart: Create a JavaScript Durable Functions app
1414

15-
Durable Functions is a feature of [Azure Functions](../functions-overview.md). Use Durable Functions to write stateful functions in a serverless environment. You install Durable Functions by installing the [Azure Functions extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azurefunctions) in Visual Studio Code. The extension manages state, checkpoints, and restarts in your application.
15+
Use Durable Functions, a feature of [Azure Functions](../functions-overview.md), to write stateful functions in a serverless environment. You install Durable Functions by installing the [Azure Functions extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azurefunctions) in Visual Studio Code. The extension manages state, checkpoints, and restarts in your application.
1616

1717
In this quickstart, you use the Durable Functions extension in Visual Studio Code to locally create and test a "hello world" Durable Functions app in Azure Functions. The Durable Functions app orchestrates and chains together calls to other functions. Then, you publish the function code to Azure. The tools you use are available via the Visual Studio Code extension.
1818

0 commit comments

Comments
 (0)