Skip to content

Commit f8ff5f0

Browse files
committed
acrolinx
Signed-off-by: Hannah Hunter <[email protected]>
1 parent 45e7a68 commit f8ff5f0

File tree

1 file changed

+21
-23
lines changed

1 file changed

+21
-23
lines changed

articles/azure-functions/durable/durable-functions-mssql-container-apps-hosting.md

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ This article shows how to host a Durable Functions app in Azure Container Apps.
2828
In Visual Studio Code, [create a .NET isolated Durable Functions project](./quickstart-mssql.md) configured to use the MSSQL backend. Follow the article until the [Test locally](./quickstart-mssql.md#test-locally) section and make sure you can run the app locally before going to the next step.
2929

3030
### Add Docker related files
31-
1. In the project root directory, add a _Dockerfile_ with the following content:
31+
1. In the project root directory, add a *Dockerfile* with the following content:
3232
```
3333
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS installer-env
3434
@@ -46,13 +46,13 @@ In Visual Studio Code, [create a .NET isolated Durable Functions project](./quic
4646
COPY --from=installer-env ["/home/site/wwwroot", "/home/site/wwwroot"]
4747
```
4848
49-
1. Add a _.dockerignore_ file with the following content:
49+
1. Add a *.dockerignore* file with the following content:
5050
```
5151
local.settings.json
5252
```
5353
5454
## Build the container image
55-
The Dockerfile in the project root describes the minimum required environment to run the function app in a container. The complete list of supported base images for Azure Functions is documented above as Host images in the pre-requisites section or can be found in the [Azure Functions Base by Microsoft | Docker Hub](https://hub.docker.com/_/microsoft-azure-functions-base)
55+
The Dockerfile in the project root describes the minimum required environment to run the function app in a container. You can find the complete list of supported base images for Azure Functions documented as Host images in the prerequisites section or can be found in the [Azure Functions Base by Microsoft | Docker Hub](https://hub.docker.com/_/microsoft-azure-functions-base)
5656
5757
1. Start the Docker daemon.
5858
@@ -75,24 +75,24 @@ The Dockerfile in the project root describes the minimum required environment to
7575
docker push $dockerId/$imageName:$imageVersion
7676
```
7777
78-
Depending on network speed, pushing the image the first time might take a few minutes (pushing subsequent changes is much faster). While you're waiting, proceed to the next section to create Azure resources in another terminal.
78+
Depending on network speed, pushing the image the first time might take a few minutes (pushing subsequent changes is faster). While you're waiting, proceed to the next section to create Azure resources in another terminal.
7979
8080
## Create Azure resources
81-
The following instructions will guide you through creating these Azure resources:
81+
The following instructions guide you through creating these Azure resources:
8282
- Azure resource group: For convenient cleanup later, all resources are created in this group.
8383
- Azure Container App environment: Environment where container app is hosted.
8484
- Azure Container App: Image containing the Durable Functions app is deployed to this app.
8585
- Azure Storage Account: Required by the function app to store app related data such as application code.
8686
- A virtual network: Required when running container apps.
8787
88-
### Initial set up
89-
1. Login to your Azure subscription:
88+
### Initial setup
89+
1. Log in to your Azure subscription:
9090
```azurecli
9191
az login
9292
az account set -subscription | -s <subscription_name>
9393
```
9494

95-
1. Run the required commands to set up the Azure Container Apps CLI extension:
95+
1. Run the required commands to setup the Azure Container Apps CLI extension:
9696
```azurecli
9797
az upgrade
9898
@@ -104,7 +104,7 @@ az provider register --namespace Microsoft.OperationalInsights
104104
```
105105

106106
### Create app related resources
107-
A workload profile determines the amount of compute and memory resources available to the container apps deployed in an environment. The following creates a Consumption workload profile for scale-to-zero support and pay-per-use. Learn more about [workload profiles](../functions-container-apps-hosting.md#hosting-and-workload-profiles).
107+
A workload profile determines the amount of compute and memory resources available to the container apps deployed in an environment. Create a Consumption workload profile for scale-to-zero support and pay-per-use. Learn more about [workload profiles](../functions-container-apps-hosting.md#hosting-and-workload-profiles).
108108

109109
```azurecli
110110
location=<REGION>
@@ -167,14 +167,14 @@ You need to create an Azure Storage account for storing app related data:
167167
az storage account create --name $storage --location $location --resource-group $resourceGroup --sku $storageSku
168168
```
169169

170-
Your Durable Functions also needs an Azure SQL Database as its storage backend. This is where state information is persisted as your orchestrations run. In the Azure portal, you can [create an Azure SQL database](/azure/azure-sql/database/single-database-create-quickstart). During creation:
171-
- Enable Azure services and resources to access this server (under _Networking_)
172-
- Set the value for _Database collation_ (under _Additional settings_) to `Latin1_General_100_BIN2_UTF8`.
170+
Your Durable Functions also needs an Azure SQL Database as its storage backend. This backend is where state information is persisted as your orchestrations run. In the Azure portal, you can [create an Azure SQL database](/azure/azure-sql/database/single-database-create-quickstart). During creation:
171+
- Enable Azure services and resources to access this server (under **Networking**)
172+
- Set the value for **Database collation** (under **Additional settings**) to `Latin1_General_100_BIN2_UTF8`.
173173

174-
> [!NOTE] Enabling the **Allow Azure services and resources to access this server** setting is not a recommended security practice for production scenarios. Real applications should implement more secure approaches, such as stronger firewall restrictions or virtual network configurations.
174+
> [!NOTE] Enabling the **Allow Azure services and resources to access this server** setting isn't a recommended security practice for production scenarios. Real applications should implement more secure approaches, such as stronger firewall restrictions or virtual network configurations.
175175
176176
### Configure identity-based authentication
177-
Managed identities make your app more secure by eliminating secrets from your app, such as credentials in the connection strings. You can choose between [system-assigned and user-assigned managed identity](/entra/identity/managed-identities-azure-resources/overview). This article demonstrates setting up user-assigned managed identity, which is the recommended option as it is not tied to the app lifecycle.
177+
Managed identities make your app more secure by eliminating secrets from your app, such as credentials in the connection strings. You can choose between [system-assigned and user-assigned managed identity](/entra/identity/managed-identities-azure-resources/overview). This article demonstrates setting up user-assigned managed identity, which is the recommended option as it isn't tied to the app lifecycle.
178178

179179
1. Create identity and assign it to the container app:
180180
```azurecli
@@ -223,7 +223,7 @@ Managed identities make your app more secure by eliminating secrets from your ap
223223
```
224224
225225
> [!NOTE]
226-
> Authenticating to the MSSQL database using managed identity is not yet supported when hosting a Durable Functions app in Azure Container Apps. Only connection string is supported today.
226+
> Authenticating to the MSSQL database using managed identity isn't yet supported when hosting a Durable Functions app in Azure Container Apps. Only connection string is supported today.
227227
>
228228
> If you forget the password from the previous database creation step, you can reset it on the SQL server resource:
229229
> :::image type="content" source="/media/quickstart-mssql/mssql-azure-reset-pass-2.png" alt-text="Screenshot showing reset password button.":::
@@ -242,7 +242,7 @@ Managed identities make your app more secure by eliminating secrets from your ap
242242
1. Add these settings required by the app:
243243
- `AzureWebJobsStorage__accountName`: <STORAGE_NAME>
244244
- `AzureWebJobsStorage__clientId`: <IDENTITY_CLIENT_ID>
245-
- `AzureWebJobsStorage__credential`: managedidentity
245+
- `AzureWebJobsStorage__credential`: <managedidentity>
246246
- `SQLDB_Connection`: <SQLDB_CONNECTION_STRING>
247247
- `FUNCTIONS_WORKER_RUNTIME`: <APP_LANGUAGE>
248248
@@ -266,7 +266,7 @@ Managed identities make your app more secure by eliminating secrets from your ap
266266
267267
The response is the HTTP function's initial result. It lets you know that the Durable Functions orchestration started successfully. It doesn't yet display the end result of the orchestration. The response includes a few useful URLs.
268268
269-
1. Copy the URL value for `statusQueryGetUri`, paste it in your browser's address bar, and execute the request. Alternatively, you can also continue to use the HTTP test tool to issue the GET request.
269+
1. Copy the URL value for `statusQueryGetUri`, paste it in your browser's address bar, and execute the request. Alternatively, you can also continue to use the HTTP test tool to issue the `GET` request.
270270
271271
The request queries the orchestration instance for the status. You should see that the instance finished and that it includes the outputs or results of the Durable Functions app like in this example:
272272
@@ -286,9 +286,7 @@ Managed identities make your app more secure by eliminating secrets from your ap
286286
287287
## Next steps
288288
289-
- Learn more about [Azure Container Apps hosting of Azure Functions](../functions-container-apps-hosting.md).
290-
- See the [MSSQL storage provider documentation](https://microsoft.github.io/durabletask-mssql/) for more information about this backend's architecture, configuration, and workload behavior.
291-
- Learn about the Azure-managed storage backend [Durable Task Scheduler](./durable-task-scheduler/durable-task-scheduler.md)
292-
293-
294-
289+
Learn more about:
290+
- [Azure Container Apps hosting of Azure Functions](../functions-container-apps-hosting.md).
291+
- [MSSQL storage provider](https://microsoft.github.io/durabletask-mssql/) architecture, configuration, and workload behavior.
292+
- The Azure-managed storage backend, [Durable Task Scheduler](./durable-task-scheduler/durable-task-scheduler.md).

0 commit comments

Comments
 (0)