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/app-service/overview-vnet-integration.md
-6Lines changed: 0 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -76,12 +76,6 @@ Because subnet size can't be changed after assignment, use a subnet that's large
76
76
77
77
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.
78
78
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
-
85
79
### Windows Containers specific limits
86
80
87
81
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.
Copy file name to clipboardExpand all lines: articles/azure-functions/functions-deployment-slots.md
+12-1Lines changed: 12 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,18 @@ ms.date: 02/27/2024
6
6
---
7
7
# Azure Functions deployment slots
8
8
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 |
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.
188
188
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.
190
190
191
191
```yaml
192
192
trigger:
@@ -435,35 +435,74 @@ You'll deploy with the [Azure Function App Deploy v2](/azure/devops/pipelines/ta
435
435
436
436
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.
437
437
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`.
439
439
440
+
### [Windows App](#tab/windows)
440
441
```yaml
441
442
trigger:
442
443
- main
443
444
444
445
variables:
445
446
# 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
#Uncomment the next lines to deploy to a deployment slot
459
487
#Note that deployment slots is not supported for Linux Dynamic SKU
460
488
#deployToSlotOrASE: true
461
-
#resourceGroupName: '<Resource Group Name>'
462
-
#slotName: '<Slot name>'
489
+
#resourceGroupName: '<RESOURCE_GROUP>'
490
+
#slotName: '<SLOT_NAME>'
463
491
```
464
492
465
493
The snippet assumes that the build steps in your YAML file produce the zip archive in the `$(System.ArtifactsDirectory)` folder on your agent.
466
494
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
+
467
506
## Deploy a container
468
507
469
508
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:
480
519
481
520
variables:
482
521
# 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>
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.
500
539
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
-
528
540
## Create a pipeline with Azure CLI
529
541
530
542
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.
@@ -281,23 +281,35 @@ The Azure Functions action (`Azure/azure-functions`) defines how your code is pu
281
281
282
282
### Parameters
283
283
284
-
The following parameters are most commonly used with this action:
284
+
The following parameters are required for all function app plans:
285
285
286
286
|Parameter |Explanation |
287
287
|---------|---------|
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.|
291
290
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:
293
292
294
293
|Parameter |Explanation |
295
294
|---------|---------|
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`. |
Copy file name to clipboardExpand all lines: articles/communication-services/quickstarts/email/includes/create-sender-username-resource-az-portal.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
@@ -18,7 +18,7 @@ ms.author: v-vprasannak
18
18
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.
19
19
20
20
> [!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).
22
22
23
23
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).
24
24
2. Click **Provision Domains** on the left navigation panel to see list of provisioned domains.
0 commit comments