Skip to content

Commit 19ad31a

Browse files
committed
MI updates for ACR/ACA
1 parent 1f63ed7 commit 19ad31a

File tree

3 files changed

+38
-11
lines changed

3 files changed

+38
-11
lines changed

articles/azure-functions/functions-app-settings.md

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Application settings in a function app contain configuration options that affect
1414

1515
In this article, example connection string values are truncated for readability.
1616

17-
Because Azure Functions leverages the Azure App Service platform for hosting, you might find some settings relevant to your function app hosting documented in [Environment variables and app settings in Azure App Service](../app-service/reference-app-settings.md).
17+
Because Azure Functions uses the Azure App Service platform for hosting, you might find some settings relevant to your function app hosting documented in [Environment variables and app settings in Azure App Service](../app-service/reference-app-settings.md).
1818

1919
## App setting considerations
2020

@@ -75,8 +75,8 @@ This authentication requirement is applied to connections from the Functions hos
7575

7676
The connection string for Application Insights. Don't use both `APPINSIGHTS_INSTRUMENTATIONKEY` and `APPLICATIONINSIGHTS_CONNECTION_STRING`. While the use of `APPLICATIONINSIGHTS_CONNECTION_STRING` is recommended in all cases, it's required in the following cases:
7777

78-
+ When your function app requires the added customizations supported by using the connection string.
79-
+ When your Application Insights instance runs in a sovereign cloud, which requires a custom endpoint.
78+
+ When your function app requires the added customizations supported by using the connection string
79+
+ When your Application Insights instance runs in a sovereign cloud, which requires a custom endpoint
8080

8181
For more information, see [Connection strings](/azure/azure-monitor/app/sdk-connection-string).
8282

@@ -189,7 +189,7 @@ When this app setting is omitted or set to `false`, a page similar to the follow
189189

190190
## AzureWebJobsDotNetReleaseCompilation
191191

192-
`true` means use Release mode when compiling .NET code; `false` means use Debug mode. Default is `true`.
192+
`true` means use `Release` mode when compiling .NET code; `false` means use Debug mode. Default is `true`.
193193

194194
|Key|Sample value|
195195
|---|------------|
@@ -438,7 +438,7 @@ For Node.js v18 or lower, the app setting is used, and the default behavior depe
438438

439439
## FUNCTIONS\_REQUEST\_BODY\_SIZE\_LIMIT
440440

441-
Overrides the default limit on the body size of requests sent to HTTP endpoints. The value is given in bytes, with a default maximum request size of 104857600 bytes.
441+
Overrides the default limit on the body size of requests sent to HTTP endpoints. The value is given in bytes, with a default maximum request size of 104,857,600 bytes.
442442

443443
|Key|Sample value|
444444
|---|------------|
@@ -812,6 +812,21 @@ Indicates whether the `/home` directory is shared across scaled instances, with
812812

813813
Some configurations must be maintained at the App Service level as site settings, such as language versions. These settings are managed in the portal, by using REST APIs, or by using Azure CLI or Azure PowerShell. The following are site settings that could be required, depending on your runtime language, OS, and versions:
814814

815+
## AcrUseManagedIdentityCreds
816+
817+
Indicates whether the image is obtained from an Azure Container Registry instance using managed identity authentication. A value of `true` requires that managed identity be used, which is recommended over stored authentication credentials as a security best practice.
818+
819+
## AcrUserManagedIdentityID
820+
821+
Indicates the managed identity to use when obtaining the image from an Azure Container Registry instance. Requires that `AcrUseManagedIdentityCreds` is set to `true`. These are the valid values:
822+
823+
| Value | Description |
824+
| ---- | ---- |
825+
| `system` | The system assigned managed identity of the function app is used. |
826+
| `<USER_IDENTITY_RESOURCE_ID>` | The fully qualified resource ID of a user-assigned managed identity. |
827+
828+
The identity that you specify must be added to the `ACRPull` role in the container registry. For more information, see [Create and configure a function app on Azure with the image](functions-deploy-container-apps.md?tabs=acr#create-and-configure-a-function-app-on-azure-with-the-image).
829+
815830
## alwaysOn
816831

817832
On a function app running in a [Dedicated (App Service) plan](./dedicated-plan.md), the Functions runtime goes idle after a few minutes of inactivity, a which point only requests to an HTTP trigger _wakes up_ your function app. To make sure that your non-HTTP triggered functions run correctly, including Timer trigger functions, enable Always On for the function app by setting the `alwaysOn` site setting to a value of `true`.
@@ -894,7 +909,7 @@ In the [Flex Consumption plan](./flex-consumption-plan.md), these site propertie
894909
| `WEBSITE_CONTENTAZUREFILECONNECTIONSTRING` |Replaced by functionAppConfig's deployment section|
895910
| `WEBSITE_CONTENTOVERVNET` |Not used for networking in Flex Consumption|
896911
| `WEBSITE_CONTENTSHARE` |Replaced by functionAppConfig's deployment section|
897-
| `WEBSITE_DNS_SERVER` |DNS is inherited from the integrated VNet in Flex|
912+
| `WEBSITE_DNS_SERVER` |DNS is inherited from the integrated virtual network in Flex|
898913
| `WEBSITE_NODE_DEFAULT_VERSION` |Replaced by `version` in `properties.functionAppConfig.runtime`|
899914
| `WEBSITE_RUN_FROM_PACKAGE`|Not used for deployments in Flex Consumption|
900915
| `WEBSITE_SKIP_CONTENTSHARE_VALIDATION` |Content share is not used in Flex Consumption|

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,10 @@ Keep in mind the following considerations when deploying your function app conta
104104
+ The protocol value of `ssl` isn't supported when hosted on Container Apps. Use a [different protocol value](functions-bindings-kafka-trigger.md?pivots=programming-language-csharp#attributes).
105105
+ For a Kafka trigger to dynamically scale when connected to Event Hubs, the `username` property must resolve to an application setting that contains the actual username value. When the default `$ConnectionString` value is used, the Kafka trigger won't be able to cause the app to scale dynamically.
106106
+ For the built-in Container Apps [policy definitions](../container-apps/policy-reference.md#policy-definitions), currently only environment-level policies apply to Azure Functions containers.
107-
+ You can use managed identities both for [trigger and binding connections](functions-reference.md#configure-an-identity-based-connection) and for [deployments from an Azure Container Registry](https://azure.github.io/AppService/2021/07/03/Linux-container-from-ACR-with-private-endpoint.html#using-user-assigned-managed-identity).
107+
+ You can use managed identities for these connections:
108+
+ [Deployment from an Azure Container Registry](functions-deploy-container-apps.md?tabs=acr#create-and-configure-a-function-app-on-azure-with-the-image)
109+
+ [Triggers and bindings](functions-reference.md#configure-an-identity-based-connection)
110+
+ [Required host storage connection](functions-identity-based-connections-tutorial)
108111
+ When either your function app and Azure Container Registry-based deployment use managed identity-based connections, you can't modify the CPU and memory allocation settings in the portal. You must instead [use the Azure CLI](functions-how-to-custom-container.md?tabs=acr%2Cazure-cli2%2Cazure-cli&pivots=container-apps#container-apps-workload-profiles).
109112
+ You currently can't move a Container Apps hosted function app deployment between resource groups or between subscriptions. Instead, you would have to recreate the existing containerized app deployment in a new resource group, subscription, or region.
110113
+ When using Container Apps, you don't have direct access to the lower-level Kubernetes APIs.

articles/azure-functions/functions-infrastructure-as-code.md

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Automate function app resource deployment to Azure
33
description: Learn how to build, validate, and use a Bicep file or an Azure Resource Manager template to deploy your function app and related Azure resources.
44
ms.assetid: d20743e3-aab6-442c-a836-9bcea09bfd32
55
ms.topic: conceptual
6-
ms.date: 08/22/2024
6+
ms.date: 10/21/2024
77
ms.custom: fasttrack-edit, devx-track-bicep, devx-track-arm-template, linux-related-content
88
zone_pivot_groups: functions-hosting-plan
99
---
@@ -1197,17 +1197,19 @@ For a complete end-to-end example, see this [azuredeploy.json template](https://
11971197
---
11981198

11991199
::: zone-end
1200-
::: zone pivot="dedicated-plan,premium-plan"
12011200
## Deployment sources
1201+
::: zone pivot="container-apps,azure-arc"
1202+
You can use the [`linuxFxVersion`](./functions-app-settings.md#linuxfxversion) site setting to request that a specific Linux container be deployed to your app when it's created. More settings are required to access images in a private repository. For more information, see [Application configuration](#application-configuration).
12021203

1204+
[!INCLUDE [functions-linux-custom-container-note](../../includes/functions-linux-custom-container-note.md)]
1205+
::: zone-end
1206+
::: zone pivot="dedicated-plan,premium-plan"
12031207
Your Bicep file or ARM template can optionally also define a deployment for your function code, which could include these methods:
12041208

12051209
+ [Zip deployment package](./deployment-zip-push.md)
12061210
+ [Linux container](./functions-how-to-custom-container.md)
12071211
::: zone-end
12081212
::: zone pivot="flex-consumption-plan"
1209-
## Deployment sources
1210-
12111213
In the Flex Consumption plan, your project code is deployed from a zip-compressed package published to a Blob storage container. For more information, see [Deployment](flex-consumption-plan.md#deployment). The specific storage account and container used for deployments, the authentication method, and credentials are set in the `functionAppConfig.deployment.storage` element of the `properties` for the site. The container and any application settings must exist when the app is created. For an example of how to create the storage container, see [Deployment container](#deployment-container).
12121214

12131215
This example uses a system assigned managed identity to access the specified blob storage container, which is created elsewhere in the deployment:
@@ -1749,6 +1751,13 @@ These site settings are required on the `siteConfig` property:
17491751
+ [`alwaysOn`](functions-app-settings.md#alwayson)
17501752
+ [`linuxFxVersion`](functions-app-settings.md#linuxfxversion)
17511753
::: zone-end
1754+
::: zone pivot="dedicated-plan,premium-plan,azure-arc,container-apps"
1755+
1756+
These site settings are only required when using managed identities to obtain an image from an Azure Container Registry instance:
1757+
1758+
+ [`AcrUseManagedIdentityCreds`](functions-app-settings.md#acrusemanagedidentitycreds)
1759+
+ [`AcrUserManagedIdentityID`](functions-app-settings.md#acrusermanagedidentityid)
1760+
17521761
::: zone pivot="consumption-plan,premium-plan,dedicated-plan"
17531762
These application settings are required (or recommended) for a specific operating system and hosting option:
17541763
::: zone-end

0 commit comments

Comments
 (0)