Skip to content

Commit b23dd9e

Browse files
authored
Merge pull request #289513 from MicrosoftDocs/main
OOB Publish 10/30 - 12:15 PM PST
2 parents 3e8ada8 + 223931d commit b23dd9e

File tree

49 files changed

+563
-213
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+563
-213
lines changed

articles/api-management/v2-service-tiers-overview.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ The v2 tiers are supported in API Management API version **2023-05-01-preview**
4545

4646
### Supported regions
4747
The v2 tiers are available in the following regions:
48+
* East US
4849
* East US 2
4950
* South Central US
5051
* North Central US

articles/app-service/overview-vnet-integration.md

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,6 @@ Because subnet size can't be changed after assignment, use a subnet that's large
7676

7777
With multi plan subnet join (MPSJ), you can join multiple App Service plans in to the same subnet. All App Service plans must be in the same subscription but the virtual network/subnet can be in a different subscription. Each instance from each App Service plan requires an IP address from the subnet and to use MPSJ a minimum size of `/26` subnet is required. If you plan to join many and/or large scale plans, you should plan for larger subnet ranges.
7878

79-
>[!NOTE]
80-
> Multi plan subnet join is currently in public preview. During preview the following known limitations should be observed:
81-
>
82-
> * The minimum requirement for subnet size of `/26` is currently not enforced, but will be enforced at GA. If you have joined multiple plans to a smaller subnet during preview they will still work, but you cannot connect additional plans and if you disconnect you will not be able to connect again.
83-
> * There is currently no validation if the subnet has available IPs, so you might be able to join N+1 plan, but the instances will not get an IP. You can view available IPs in the Virtual network integration page in Azure portal in apps that are already connected to the subnet.
84-
8579
### Windows Containers specific limits
8680

8781
Windows Containers uses an extra IP address per app for each App Service plan instance, and you need to size the subnet accordingly. If you have, for example, 10 Windows Container App Service plan instances with four apps running, you need 50 IP addresses and extra addresses to support horizontal (in/out) scale.

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,3 +110,4 @@ Keep in mind the following considerations when deploying your function app conta
110110
## Next steps
111111

112112
+ [Hosting and scale](./functions-scale.md)
113+
+ [Create your first containerized functions on Container Apps](./functions-deploy-container-apps.md)

articles/azure-functions/functions-deployment-slots.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,18 @@ ms.date: 02/27/2024
66
---
77
# Azure Functions deployment slots
88

9-
Azure Functions deployment slots allow your function app to run different instances called _slots_. Slots are different environments exposed via a publicly available endpoint. One app instance is always mapped to the production slot, and you can swap instances assigned to a slot on demand. Function apps running in a [Consumption plan](./consumption-plan.md) have a single extra slot for staging. You can obtain more staging slots by running your app in a [Premium plan](./functions-premium-plan.md) or [Dedicated (App Service) plan](./dedicated-plan.md). For more information, see [Service limits](./functions-scale.md#service-limits).
9+
Azure Functions deployment slots allow your function app to run different instances called _slots_. Slots are different environments exposed via a publicly available endpoint. One app instance is always mapped to the production slot, and you can swap instances assigned to a slot on demand.
10+
11+
The number of available slots depends on your specific hosting option:
12+
13+
| Hosting option | Slots (including production) |
14+
| ---- | ---- |
15+
| [Consumption plan](consumption-plan.md) | 2 |
16+
| [Flex Consumption plan](flex-consumption-plan.md) | Not currently supported |
17+
| [Premium plan](functions-premium-plan.md) | 3 |
18+
| [Dedicated (App Service) plan](dedicated-plan.md) | [1-20](../azure-resource-manager/management/azure-subscription-service-limits.md#app-service-limits) |
19+
| [Container Apps](functions-container-apps-hosting.md) | Uses [Revisions](../container-apps/revisions.md) |
20+
1021

1122
The following reflect how functions are affected by swapping slots:
1223

articles/azure-functions/functions-deployment-technologies.md

Lines changed: 57 additions & 32 deletions
Large diffs are not rendered by default.

articles/azure-functions/functions-how-to-azure-devops.md

Lines changed: 53 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Continuously update function app code using Azure Pipelines
33
description: Learn how to use Azure Pipelines to set up a pipeline that builds and deploys apps to Azure Functions.
44
author: juliakm
55
ms.topic: conceptual
6-
ms.date: 04/03/2024
6+
ms.date: 09/27/2024
77
ms.author: jukullam
88
ms.custom: devx-track-csharp, devx-track-azurecli, devops-pipelines-deploy
99
ms.devlang: azurecli
@@ -186,7 +186,7 @@ steps:
186186
187187
You'll deploy with the [Azure Function App Deploy](/azure/devops/pipelines/tasks/deploy/azure-function-app) task. This task requires an [Azure service connection](/azure/devops/pipelines/library/service-endpoints) as an input. An Azure service connection stores the credentials to connect from Azure Pipelines to Azure.
188188
189-
To deploy to Azure Functions, add the following snippet at the end of your `azure-pipelines.yml` file. The default `appType` is Windows. You can specify Linux by setting the `appType` to `functionAppLinux`.
189+
To deploy to Azure Functions, add the following snippet at the end of your `azure-pipelines.yml` file. The default `appType` is Windows. You can specify Linux by setting the `appType` to `functionAppLinux`. Deploying to a Flex Consumption app is not supported with @v1 of the AzureFunctionApp task.
190190

191191
```yaml
192192
trigger:
@@ -435,35 +435,74 @@ You'll deploy with the [Azure Function App Deploy v2](/azure/devops/pipelines/ta
435435

436436
The v2 version of the task includes support for newer applications stacks for .NET, Python, and Node. The task includes networking predeployment checks. When there are predeployment issues, deployment stops.
437437

438-
To deploy to Azure Functions, add the following snippet at the end of your `azure-pipelines.yml` file. The default `appType` is Windows. You can specify Linux by setting the `appType` to `functionAppLinux`.
438+
To deploy to Azure Functions, add the following snippet at the end of your `azure-pipelines.yml` file. The default `appType` is Windows. You can specify Linux by setting the `appType` to `functionAppLinux`. Deploying to a Flex Consumption app requires you to set both `appType: functionAppLinux` and `isFlexConsumption: true`.
439439

440+
### [Windows App](#tab/windows)
440441
```yaml
441442
trigger:
442443
- main
443444
444445
variables:
445446
# Azure service connection established during pipeline creation
446-
azureSubscription: <Name of your Azure subscription>
447-
appName: <Name of the function app>
447+
azureSubscription: <SUBSCRIPTION_NAME>
448+
appName: <APP_NAME>
449+
# Agent VM image name
450+
vmImageName: 'windows-latest'
451+
452+
- task: AzureFunctionApp@2 # Add this at the end of your file
453+
inputs:
454+
azureSubscription: <AZURE_SERVICE_CONNECTION>
455+
appType: functionApp # this specifies a Windows-based function app
456+
appName: $(appName)
457+
package: $(System.ArtifactsDirectory)/**/*.zip
458+
deploymentMethod: 'auto' # 'auto' | 'zipDeploy' | 'runFromPackage'. Required. Deployment method. Default: auto.
459+
#Uncomment the next lines to deploy to a deployment slot
460+
#Note that deployment slots is not supported for Linux Dynamic SKU
461+
#deployToSlotOrASE: true
462+
#resourceGroupName: '<RESOURCE_GROUP>'
463+
#slotName: '<SLOT_NAME>'
464+
```
465+
466+
### [Linux App](#tab/linux)
467+
```yaml
468+
trigger:
469+
- main
470+
471+
variables:
472+
# Azure service connection established during pipeline creation
473+
azureSubscription: <SUBSCRIPTION_NAME>
474+
appName: <APP_NAME>
448475
# Agent VM image name
449476
vmImageName: 'ubuntu-latest'
450477
451478
- task: AzureFunctionApp@2 # Add this at the end of your file
452479
inputs:
453-
azureSubscription: <Azure service connection>
454-
appType: functionAppLinux # default is functionApp
480+
azureSubscription: <AZURE_SERVICE_CONNECTION>
481+
appType: functionAppLinux # This specifies a Linux-based function app
482+
#isFlexConsumption: true # Uncomment this line if you are deploying to a Flex Consumption app
455483
appName: $(appName)
456484
package: $(System.ArtifactsDirectory)/**/*.zip
457485
deploymentMethod: 'auto' # 'auto' | 'zipDeploy' | 'runFromPackage'. Required. Deployment method. Default: auto.
458486
#Uncomment the next lines to deploy to a deployment slot
459487
#Note that deployment slots is not supported for Linux Dynamic SKU
460488
#deployToSlotOrASE: true
461-
#resourceGroupName: '<Resource Group Name>'
462-
#slotName: '<Slot name>'
489+
#resourceGroupName: '<RESOURCE_GROUP>'
490+
#slotName: '<SLOT_NAME>'
463491
```
464492

465493
The snippet assumes that the build steps in your YAML file produce the zip archive in the `$(System.ArtifactsDirectory)` folder on your agent.
466494

495+
If you opted to deploy to a [deployment slot](functions-deployment-slots.md), you can add the following step to perform a slot swap. Deployment slots are not yet available for the Flex Consumption SKU.
496+
```yaml
497+
- task: AzureAppServiceManage@0
498+
inputs:
499+
azureSubscription: <AZURE_SERVICE_CONNECTION>
500+
WebAppName: <APP_NAME>
501+
ResourceGroupName: <RESOURCE_GROUP>
502+
SourceSlot: <SLOT_NAME>
503+
SwapWithProduction: true
504+
```
505+
467506
## Deploy a container
468507

469508
You can automatically deploy your code to Azure Functions as a custom container after every successful build. To learn more about containers, see [Working with containers and Azure Functions](./functions-how-to-custom-container.md) .
@@ -480,9 +519,9 @@ trigger:
480519
481520
variables:
482521
# Container registry service connection established during pipeline creation
483-
dockerRegistryServiceConnection: <Docker registry service connection>
484-
imageRepository: <Name of your image repository>
485-
containerRegistry: <Name of the Azure container registry>
522+
dockerRegistryServiceConnection: <DOCKER_REGISTRY_SERVICE_CONNECTION>
523+
imageRepository: <IMAGE_REPOSITORY_NAME>
524+
containerRegistry: <AZURE_CONTAINER_REGISTRY_NAME>
486525
dockerfilePath: '$(Build.SourcesDirectory)/Dockerfile'
487526
tag: '$(Build.BuildId)'
488527
@@ -491,40 +530,13 @@ variables:
491530
492531
- task: AzureFunctionAppContainer@1 # Add this at the end of your file
493532
inputs:
494-
azureSubscription: '<Azure service connection>'
495-
appName: '<Name of the function app>'
533+
azureSubscription: '<AZURE_SERVICE_CONNECTION>'
534+
appName: '<APP_NAME>'
496535
imageName: $(containerRegistry)/$(imageRepository):$(tag)
497536
```
498537

499538
The snippet pushes the Docker image to your Azure Container Registry. The **Azure Function App on Container Deploy** task pulls the appropriate Docker image corresponding to the `BuildId` from the repository specified, and then deploys the image.
500539

501-
## Deploy to a slot
502-
503-
You can configure your function app to have multiple slots. Slots allow you to safely deploy your app and test it before making it available to your customers.
504-
505-
The following YAML snippet shows how to deploy to a staging slot, and then swap to a production slot:
506-
507-
```yaml
508-
- task: AzureFunctionApp@2
509-
inputs:
510-
azureSubscription: <Azure service connection>
511-
appType: functionAppLinux
512-
appName: <Name of the Function app>
513-
package: $(System.ArtifactsDirectory)/**/*.zip
514-
deploymentMethod: 'auto'
515-
deployToSlotOrASE: true
516-
resourceGroupName: <Name of the resource group>
517-
slotName: staging
518-
519-
- task: AzureAppServiceManage@0
520-
inputs:
521-
azureSubscription: <Azure service connection>
522-
WebAppName: <name of the Function app>
523-
ResourceGroupName: <name of resource group>
524-
SourceSlot: staging
525-
SwapWithProduction: true
526-
```
527-
528540
## Create a pipeline with Azure CLI
529541

530542
To create a build pipeline in Azure, use the `az functionapp devops-pipeline create` [command](/cli/azure/functionapp/devops-pipeline#az-functionapp-devops-pipeline-create). The build pipeline is created to build and release any code changes that are made in your repo. The command generates a new YAML file that defines the build and release pipeline and then commits it to your repo. The prerequisites for this command depend on the location of your code.

articles/azure-functions/functions-how-to-github-actions.md

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Use GitHub Actions to make code updates in Azure Functions
33
description: Learn how to use GitHub Actions to define a workflow to build and deploy Azure Functions projects in GitHub.
44
ms.topic: conceptual
5-
ms.date: 03/16/2024
5+
ms.date: 09/27/2024
66
ms.custom: devx-track-csharp, github-actions-azure
77
zone_pivot_groups: github-actions-deployment-options
88
---
@@ -281,23 +281,35 @@ The Azure Functions action (`Azure/azure-functions`) defines how your code is pu
281281
282282
### Parameters
283283
284-
The following parameters are most commonly used with this action:
284+
The following parameters are required for all function app plans:
285285
286286
|Parameter |Explanation |
287287
|---------|---------|
288-
|_**app-name**_ | (Mandatory) The name of your function app. |
289-
|_**slot-name**_ | (Optional) The name of a specific [deployment slot](functions-deployment-slots.md) you want to deploy to. The slot must already exist in your function app. When not specified, the code is deployed to the active slot. |
290-
|_**publish-profile**_ | (Optional) The name of the GitHub secret that contains your publish profile. |
288+
|_**app-name**_ | The name of your function app. |
289+
|***package*** | This is the location in your project to be published. By default, this value is set to `.`, which means all files and folders in the GitHub repository will be deployed.|
291290
292-
The following parameters are also supported, but are used only in specific cases:
291+
The following parameters are required for the Flex Consumption plan:
293292
294293
|Parameter |Explanation |
295294
|---------|---------|
296-
| _**package**_ | (Optional) Sets a subpath in your repository from which to publish. By default, this value is set to `.`, which means all files and folders in the GitHub repository are deployed. |
297-
| _**respect-pom-xml**_ | (Optional) Used only for Java functions. Whether it's required for your app's deployment artifact to be derived from the pom.xml file. When deploying Java function apps, you should set this parameter to `true` and set `package` to `.`. By default, this parameter is set to `false`, which means that the `package` parameter must point to your app's artifact location, such as `./target/azure-functions/` |
298-
| _**respect-funcignore**_ | (Optional) Whether GitHub Actions honors your .funcignore file to exclude files and folders defined in it. Set this value to `true` when your repository has a .funcignore file and you want to use it exclude paths and files, such as text editor configurations, .vscode/, or a Python virtual environment (.venv/). The default setting is `false`. |
299-
| _**scm-do-build-during-deployment**_ | (Optional) Whether the App Service deployment site (Kudu) performs predeployment operations. The deployment site for your function app can be found at `https://<APP_NAME>.scm.azurewebsites.net/`. Change this setting to `true` when you need to control the deployments in Kudu rather than resolving the dependencies in the GitHub Actions workflow. The default value is `false`. For more information, see the [SCM_DO_BUILD_DURING_DEPLOYMENT](./functions-app-settings.md#scm_do_build_during_deployment) setting. |
300-
| _**enable-oryx-build**_ |(Optional) Whether the Kudu deployment site resolves your project dependencies by using Oryx. Set to `true` when you want to use Oryx to resolve your project dependencies by using a remote build instead of the GitHub Actions workflow. When `true`, you should also set `scm-do-build-during-deployment` to `true`. The default value is `false`.|
295+
|_**sku**_ | Set this to `flexconsumption` when authenticating with publish-profile. When using RBAC credentials or deploying to a non-Flex Consumption plan, the Action can resolve the value, so the parameter does not need to be included. |
296+
|_**remote-build**_ | Set this to `true` to enable a build action from Kudu when the package is deployed to a Flex Consumption app. Oryx build is always performed during a remote build in Flex Consumption; do not set **scm-do-build-during-deployment** or **enable-oryx-build**. By default, this parameter is set to `false`. |
297+
298+
The following parameters are specific to the Consumption, Elastic Premium, and App Service (Dedicated) plans:
299+
300+
|Parameter |Explanation |
301+
|---------|---------|
302+
|_**scm-do-build-during-deployment**_ | (Optional) Allow the Kudu site (e.g. `https://<APP_NAME>.scm.azurewebsites.net/`) to perform pre-deployment operations, such as [remote builds](functions-deployment-technologies.md#remote-build). By default, this is set to `false`. Set this to `true` when you do want to control deployment behaviors using Kudu instead of resolving dependencies in your GitHub workflow. For more information, see the [`SCM_DO_BUILD_DURING_DEPLOYMENT`](./functions-app-settings.md#scm_do_build_during_deployment) setting.|
303+
|_**enable-oryx-build**_ | (Optional) Allow Kudu site to resolve your project dependencies with Oryx. By default, this is set to `false`. If you want to use [Oryx](https://github.com/Microsoft/Oryx) to resolve your dependencies instead of the GitHub Workflow, set both **scm-do-build-during-deployment** and **enable-oryx-build** to `true`.|
304+
305+
Optional parameters for all function app plans:
306+
307+
|Parameter |Explanation |
308+
|---------|---------|
309+
| ***slot-name*** | This is the [deployment slot](functions-deployment-slots.md) name to be deployed to. By default, this value is empty, which means the GitHub Action will deploy to your production site. When this setting points to a non-production slot, please ensure the **publish-profile** parameter contains the credentials for the slot instead of the production site. _Currently not supported in Flex Consumption_. |
310+
|***publish-profile*** | The name of the GitHub secret that contains your publish profile.|
311+
| _**respect-pom-xml**_ | Used only for Java functions. Whether it's required for your app's deployment artifact to be derived from the pom.xml file. When deploying Java function apps, you should set this parameter to `true` and set `package` to `.`. By default, this parameter is set to `false`, which means that the `package` parameter must point to your app's artifact location, such as `./target/azure-functions/` |
312+
| _**respect-funcignore**_ | Whether GitHub Actions honors your .funcignore file to exclude files and folders defined in it. Set this value to `true` when your repository has a .funcignore file and you want to use it exclude paths and files, such as text editor configurations, .vscode/, or a Python virtual environment (.venv/). The default setting is `false`. |
301313
302314
### Considerations
303315

articles/communication-services/quickstarts/email/includes/create-sender-username-resource-az-portal.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ ms.author: v-vprasannak
1818
An email domain that is provisioned to send email has a default MailFrom address, formatted as `[email protected]`. If you configure a custom domain such as `notification.azuremails.net`, then the default MailFrom address has `[email protected]` added. You can configure and add more MailFrom addresses and FROM display names to use values that are easier to read.
1919

2020
> [!NOTE]
21-
> Sender usernames cannot be enabled for Azure Managed Domains or custom domains with default sending limits. For more information, see [Service limits for Azure Communication Services](../../../concepts/service-limits.md#rate-limits).
21+
> Sender usernames cannot be enabled for Azure Managed Domains regardless of the sending limits or custom domains with default sending limits. For more information, see [Service limits for Azure Communication Services](../../../concepts/service-limits.md#rate-limits).
2222
2323
1. Open the Overview page of the Email Communication Service resource that you created in [Get started with Creating Email Communication Resource](../../../quickstarts/email/create-email-communication-resource.md).
2424
2. Click **Provision Domains** on the left navigation panel to see list of provisioned domains.

articles/dns/dns-reverse-dns-for-azure-services.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ services: dns
55
author: greg-lindsay
66
ms.service: azure-dns
77
ms.topic: how-to
8-
ms.date: 08/12/2024
8+
ms.date: 09/11/2024
99
ms.author: greglin
1010
ms.custom: devx-track-azurepowershell, devx-track-azurecli
1111
---
@@ -241,7 +241,7 @@ No. Azure supports a single reverse DNS record for each Azure Cloud Service or P
241241

242242
### Can I configure reverse DNS for IPv6 PublicIpAddress resources?
243243

244-
Yes. See [Azure support for reverse DNS](/azure/dns/dns-reverse-dns-overview#azure-support-for-reverse-dns).
244+
No. Azure DNS does not currently support reverse DNS (PTR records) for public IPv6 addresses.
245245

246246
### Can I send emails to external domains from my Azure Compute services?
247247

articles/dns/dns-reverse-dns-hosting.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Learn how to use Azure DNS to host the reverse DNS lookup zones for
44
author: greg-lindsay
55
ms.service: azure-dns
66
ms.topic: how-to
7-
ms.date: 06/07/2024
7+
ms.date: 09/12/2024
88
ms.author: greglin
99
ms.custom: devx-track-azurepowershell, devx-track-azurecli
1010
ms.devlang: azurecli

0 commit comments

Comments
 (0)