You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/azure-functions/durable/durable-functions-configure-durable-functions-with-credentials.md
+10-10Lines changed: 10 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,22 +27,22 @@ To complete this quickstart, you need:
27
27
28
28
If you don't have an existing Durable Functions project deployed in Azure, we recommend that you start with one of the following quickstarts:
29
29
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)
35
35
36
36
## Configure your app to use managed identity credentials
37
37
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.
39
39
40
40
> [!NOTE]
41
41
> 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.
42
42
43
43
### Enable a managed identity
44
44
45
-
To begin, enable a managed identity for your application. Your function app must have either a *systemassigned managed identity* or a *userassigned 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).
46
46
47
47
### Assign access roles to the managed identity
48
48
@@ -107,7 +107,7 @@ Before you can use your app's managed identity, make some changes to the app con
107
107
108
108
## Configure your app to use client secret credentials
109
109
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.
@@ -125,7 +125,7 @@ Registering a client application in Microsoft Entra ID is another way you can co
125
125
126
126
1.*Copy the secret value to use later*.
127
127
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*.
129
129
130
130
:::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":::
131
131
@@ -196,6 +196,6 @@ In the Azure portal, run and test the application. To run and test the app local
196
196
197
197
***AzureWebJobsStorage__tenantId**: The tenant ID that the Microsoft Entra application is registered in. Get this GUID value on the Microsoft Entra application pane.
198
198
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.
200
200
201
201
:::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":::
Copy file name to clipboardExpand all lines: articles/azure-functions/durable/durable-functions-isolated-create-first-csharp.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ ms.custom: mode-other, devdivchpfy22, vscode-azure-extension-update-complete, de
12
12
13
13
# Quickstart: Create a C# Durable Functions app
14
14
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.
16
16
17
17
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).
Copy file name to clipboardExpand all lines: articles/azure-functions/durable/durable-functions-monitor.md
+12-12Lines changed: 12 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,7 +30,7 @@ The monitor pattern refers to a flexible *recurring* process in a workflow - for
30
30
31
31
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:
32
32
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.
34
34
* Monitors can have dynamic intervals: the wait time can change based on some condition.
35
35
* Monitors can terminate when some condition is met or be terminated by another process.
36
36
* 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
47
47
48
48
This sample involves using the Weather Underground API to check current weather conditions for a location.
49
49
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.
51
51
52
52
Once you have an API key, add the following **app setting** to your function app.
53
53
@@ -69,30 +69,30 @@ This article explains the following functions in the sample app:
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.
73
73
74
74
# [JavaScript](#tab/javascript)
75
75
76
76
The **E3_Monitor** function uses the standard *function.json* for orchestrator functions.
This orchestrator function performs the following actions:
87
87
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.
89
89
2. Determines the expiration time of the monitor. The sample uses a hard-coded value for brevity.
90
90
3. Calls **E3_GetIsClear** to determine whether there are clear skies at the requested location.
91
91
4. If the weather is clear, calls **E3_SendGoodWeatherAlert** to send an SMS notification to the requested phone number.
92
92
5. Creates a durable timer to resume the orchestration at the next polling interval. The sample uses a hard-coded value for brevity.
93
93
6. Continues running until the current UTC time passes the monitor's expiration time, or an SMS alert is sent.
94
94
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.
96
96
### E3_GetIsClear activity function
97
97
98
98
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:
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.
161
161
162
162
You can see the orchestration's activity by looking at the function logs in the Azure Functions portal.
163
163
@@ -177,15 +177,15 @@ You can see the orchestration's activity by looking at the function logs in the
177
177
2018-03-01T01:14:54.030 Function completed (Success, Id=561d0c78-ee6e-46cb-b6db-39ef639c9a2c, Duration=62ms)
178
178
```
179
179
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:
181
181
182
182
```
183
183
POST https://{host}/runtime/webhooks/durabletask/instances/f6893f25acf64df2ab53a35c09d52635/terminate?reason=Because&taskHub=SampleHubVS&connection=Storage&code={systemKey}
184
184
```
185
185
186
186
## Next steps
187
187
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.
189
189
190
190
> [!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)
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.
16
16
17
17
In this quickstart, you create and test a "hello world" Durable Functions app in Java.
# Quickstart: Create a JavaScript Durable Functions app
14
14
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.
16
16
17
17
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.
0 commit comments