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/functions-continuous-deployment.md
+16-16Lines changed: 16 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,9 +1,9 @@
1
1
---
2
-
title: Continuous deployment for Azure Functions
2
+
title: Continuous Deployment for Azure Functions
3
3
description: Use the continuous deployment features of Azure App Service when publishing to Azure Functions.
4
4
ms.assetid: 361daf37-598c-4703-8d78-c77dbef91643
5
-
ms.topic: conceptual
6
-
ms.date: 05/01/2024
5
+
ms.topic: concept-article
6
+
ms.date: 12/16/2025
7
7
#Customer intent: As a developer, I want to learn how to set up a continuous integration environment so that function app updates are deployed automatically when I check in my code changes.
8
8
---
9
9
@@ -15,7 +15,7 @@ You should always configure continuous deployment for a staging slot and not for
15
15
16
16
Steps in this article show you how to configure continuous code deployments to your function app in Azure by using the Deployment Center in the Azure portal. You can also [configure continuous integration using the Azure CLI](/cli/azure/functionapp/deployment). These steps can target either a staging or a production slot.
17
17
18
-
Functions supports these sources for continuous deployment to your app:
18
+
Azure Functions supports these sources for continuous deployment to your app:
19
19
20
20
### [Azure Repos](#tab/azure-repos)
21
21
@@ -35,16 +35,16 @@ Maintain your project code in a dedicated Git server hosted in the same App Serv
35
35
36
36
---
37
37
38
-
You can also connect your function app to an external Git repository, but this requires a manual synchronization. For more information about deployment options, see [Deployment technologies in Azure Functions](functions-deployment-technologies.md).
38
+
You can also connect your function app to an external Git repository, but this option requires a manual synchronization. For more information about deployment options, see [Deployment technologies in Azure Functions](functions-deployment-technologies.md).
39
39
40
40
>[!NOTE]
41
-
>Continuous deployment options covered in this article are specific to code-only deployments. For containerized function app deployments, see [Enable continuous deployment of containers to Azure](functions-how-to-custom-container.md#enable-continuous-deployment-to-azure).
41
+
>Continuous deployment options covered in this article are specific to code-only deployments. For containerized function app deployments, see the **Enable continuous deployment of containers to Azure** section in [Work with containers and Azure Functions](functions-how-to-custom-container.md).
42
42
43
43
## Requirements
44
44
45
45
The unit of deployment for functions in Azure is the function app. For continuous deployment to succeed, the directory structure of your project must be compatible with the basic folder structure that Azure Functions expects. When you create your code project using Azure Functions Core Tools, Visual Studio Code, or Visual Studio, the Azure Functions templates are used to create code projects with the correct directory structure. All functions in a function app are deployed at the same time and in the same package.
46
46
47
-
After you enable continuous deployment, access to function code in the Azure portal is configured as *read-only* because the _source of truth_ is known to reside elsewhere.
47
+
After you enable continuous deployment, access to function code in the Azure portal is configured as *read-only* because the *source of truth* is known to reside elsewhere.
48
48
49
49
>[!NOTE]
50
50
>The Deployment Center doesn't support enabling continuous deployment for a function app with [inbound network restrictions](functions-networking-options.md?#inbound-networking-features). You need to instead configure the build provider workflow directly in GitHub or Azure Pipelines. These workflows also require you to use a virtual machine in the same virtual network as the function app as either a [self-hosted agent (Azure Pipelines)](/azure/devops/pipelines/agents/agents#self-hosted-agents) or a [self-hosted runner (GitHub)](https://docs.github.com/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners).
@@ -56,21 +56,21 @@ Building your code project is part of the deployment process. The specific build
56
56
> [!IMPORTANT]
57
57
> For increased security, consider using a build provider that supports managed identities, including Azure Pipelines and GitHub Actions. The App Service (Kudu) service requires you to [enable basic authentication](#enable-basic-authentication-for-deployments) and work with text-based credentials.
58
58
59
-
Functions supports these build providers:
59
+
Azure Functions supports these build providers:
60
60
61
61
### [Azure Pipelines](#tab/azure-pipelines)
62
62
63
-
Azure Pipelines is one of the services in Azure DevOps and the default build provider for Azure Repos projects. You can also use Azure Pipelines to build projects from GitHub. In Azure Pipelines, there's an [`AzureFunctionApp`](/azure/devops/pipelines/tasks/reference/azure-function-app-v2) task designed specifically for deploying to Azure Functions. This task provides you with control over how the project gets built, packaged, and deployed. Supports managed identities.
63
+
Azure Pipelines is one of the services in Azure DevOps and the default build provider for Azure Repos projects. You can also use Azure Pipelines to build projects from GitHub. In Azure Pipelines, there's an [`AzureFunctionApp`](/azure/devops/pipelines/tasks/reference/azure-function-app-v2) task designed specifically for deploying to Azure Functions. This task provides you with control over how the project gets built, packaged, and deployed. Azure Pipelines supports managed identities.
64
64
65
65
### [GitHub Actions](#tab/github-actions)
66
66
67
-
GitHub Actions is the default build provider for GitHub projects. GitHub Actionsprovides you with control over how the project gets built, packaged, and deployed. Supports managed identities.
67
+
The default build provider for GitHub projects is GitHub Actions. It provides you with control over how the project gets built, packaged, and deployed. This provider supports managed identities.
68
68
69
69
### [App Service (Kudu) service](#tab/app-service)
70
70
71
-
The App Service platform maintains a native deployment service ([Project Kudu](https://github.com/projectkudu/kudu/wiki)) to support local Git deployment, some container deployments, and other deployment sources not supported by either Azure Pipelines or GitHub Actions. Remote builds, packaging, and other maintenance tasks are performed in a subdomain of `scm.azurewebsites.net` dedicated to your app, such as `https://myfunctionapp.scm.azurewebsites.net`. This build service can only be used when the `scm` site can be accessed by your deployment. While you can use identities to connect to the `scm` endpoint, many publishing tools instead require basic authentication to connect to the `scm` endpoint.
71
+
The App Service platform maintains a native deployment service called [Project Kudu](https://github.com/projectkudu/kudu/wiki). This service supports local Git deployment, some container deployments, and other deployment sources not supported by either Azure Pipelines or GitHub Actions. Remote builds, packaging, and other maintenance tasks are performed in a subdomain of `scm.azurewebsites.net` dedicated to your app, such as `https://myfunctionapp.scm.azurewebsites.net`. This build service can only be used when your deployment can access the `scm` site. While you can use identities to connect to the `scm` endpoint, many publishing tools instead require basic authentication to connect to the `scm` endpoint.
72
72
73
-
This build provider is used when you deploy your code project by using Visual Studio, Visual Studio Code, or Azure Functions Core Tools. If you haven't already deployed code to your function app by using one of these tools, you might need to [Enable basic authentication for deployments](#enable-basic-authentication-for-deployments) to use the `scm` site.
73
+
This build provider is used when you deploy your code project by using Visual Studio, Visual Studio Code, or Azure Functions Core Tools. If you didn't already use one of these tools to deploy code to your function app, you might need to [Enable basic authentication for deployments](#enable-basic-authentication-for-deployments) to use the `scm` site.
74
74
75
75
---
76
76
@@ -136,7 +136,7 @@ You can't deploy from local git using GitHub Actions. Instead choose the [App Se
136
136
137
137
1. For **Source**, select **GitHub**. If **App Service build service** provider isn't the default, select **Change provider**, select **App Service build service**, and then select **OK**.
138
138
139
-
1. If you haven't already authorized GitHub access, select **Authorize**. Provide your GitHub credentials and select **Sign in**. If you need to authorize a different GitHub account, select **Change Account** and sign in with another account.
139
+
1. If your GitHub access isn't already authorized, select **Authorize**. Provide your GitHub credentials and select **Sign in**. If you need to authorize a different GitHub account, select **Change Account** and sign in with another account.
140
140
141
141
1. Select values for **Organization**, **Repository**, and **Branch**. The values are based on the location of your code.
142
142
@@ -150,7 +150,7 @@ When a new commit is pushed to the selected branch, the service pulls your code,
150
150
151
151
1. For **Source**, select **Bitbucket**.
152
152
153
-
1. If you haven't already authorized Bitbucket access, select **Authorize** and then **Grant access**. If requested, provide your Bitbucket credentials and select **Sign in**. If you need to authorize a different Bitbucket account, select **Change Account** and sign in with another account.
153
+
1. If your Bitbucket access isn't already authorized, select **Authorize** and then **Grant access**. If requested, provide your Bitbucket credentials and select **Sign in**. If you need to authorize a different Bitbucket account, select **Change Account** and sign in with another account.
154
154
155
155
1. Select values for **Organization**, **Repository**, and **Branch**. The values are based on the location of your code.
156
156
@@ -174,9 +174,9 @@ After deployment finishes, all code from the specified source is deployed to you
174
174
175
175
## Enable continuous deployment during app creation
176
176
177
-
Currently, you can configure continuous deployment from GitHub using GitHub Actions when you create your function app in the Azure portal. You can do this on the **Deployment** tab in the **Create Function App** page.
177
+
Currently, you can configure continuous deployment from GitHub using GitHub Actions when you create your function app in the Azure portal. You can make this setting on the **Deployment** tab in the **Create Function App** page.
178
178
179
-
If you want to use a different deployment source or build provider for continuous integration, first create your function app and then return to the portal and [set up continuous integration in the Deployment Center](#credentials).
179
+
If you want to use a different deployment source or build provider for continuous integration. First, create your function app, and then return to the portal and [set up continuous integration in the Deployment Center](#credentials).
While developing an application, you often want to see what's being written to the logs in near real time when running in Azure.
14
14
15
-
There are two ways to view a stream of log files being generated by your function executions.
15
+
There are two ways to view the stream of log files that your function executions generate.
16
16
17
17
## [Live Metrics](#tab/live-metrics)
18
18
19
-
When your function app is [connected to Application Insights](configure-monitoring.md#enable-application-insights-integration), you can view log data and other metrics in near real-time in the Azure portal using [Live Metrics Stream](/azure/azure-monitor/app/live-stream). Use this method when monitoring functions running on multiple-instances and supports all plan types. This method uses [sampled data](configure-monitoring.md#configure-sampling). _This is the recommended way to view streaming logs._
19
+
When your function app is [connected to Application Insights](configure-monitoring.md#enable-application-insights-integration), you can use [Live Metrics Stream](/azure/azure-monitor/app/live-stream) to view log data and other metrics in near real-time in the Azure portal. Live Metrics stream is *the recommended way to view streaming logs* it supports all plan types and is the method to use when monitoring functions running on multiple-instances. It also uses [sampled data](configure-monitoring.md#configure-sampling), so it can protect you from producing too much data during times of peak loads.
20
20
21
21
>[!IMPORTANT]
22
22
>By default, the Live Metrics stream includes logs from all apps connected to a given Application Insights instance. When you have more than one app sending log data, you should [filter your log stream data](/azure/azure-monitor/app/live-stream#filter-by-server-instance).
23
23
24
24
## [Built-in logs](#tab/built-in)
25
25
26
-
The App Service platform lets you view a stream of your application log files. This is equivalent to the output seen when you debug your functions during [local development](functions-develop-local.md) and when you use the **Test** tab in the portal. All log-based information is displayed. For more information, see [Stream logs](../app-service/troubleshoot-diagnostic-logs.md#stream-logs). This streaming method supports only a single instance, and can't be used with an app running on Linux in a Consumption plan. When your function is scaled to multiple instances, data from other instances isn't shown using this method.
26
+
The App Service platform lets you view a stream of your application log files. This method is equivalent to the output seen when you debug your functions during [local development](functions-develop-local.md) and when you use the **Test** tab in the portal. All log-based information is displayed. For more information, see [Stream logs](../app-service/troubleshoot-diagnostic-logs.md#stream-logs). This streaming method supports only a single instance, and can't be used with an app running on Linux in a Consumption plan. When your function is scaled to multiple instances, data from other instances isn't shown using this method.
27
27
28
28
---
29
29
@@ -37,7 +37,7 @@ Log streams can be viewed both in the portal and in most local development envir
37
37
38
38
1. In Application Insights, select **Live Metrics Stream**. [Sampled log entries](configure-monitoring.md#configure-sampling) are displayed under **Sample Telemetry**.
39
39
40
-

40
+
:::image type="content" source="./media/functions-monitoring/live-metrics-stream.png" alt-text="Screenshot showing how to view Live Metrics Stream in the portal.":::
41
41
42
42
## [Visual Studio Code](#tab/vs-code/live-metrics)
To view streaming logs in the portal, select the **Platform features** tab in your function app. Then, under **Monitoring**, choose **Log streaming**.
61
61
62
-

62
+
:::image type="content" source="./media/functions-monitoring/enable-streaming-logs-portal.png" alt-text="Screenshot showing how to enable streaming logs in the portal.":::
63
63
64
-
This connects your app to the log streaming service and application logs are displayed in the window. You can toggle between **Application logs** and **Web server logs**.
64
+
This setting connects your app to the log streaming service and application logs are displayed in the window. You can toggle between **Application logs** and **Web server logs**.
65
65
66
-

66
+
:::image type="content" source="./media/functions-monitoring/streaming-logs-window.png" alt-text="Screenshot showing how to view streaming logs in the portal.":::
0 commit comments