Skip to content

Commit 9439f0f

Browse files
authored
Merge pull request #292374 from MicrosoftDocs/main
Merge main to live, 4 AM
2 parents eff2f89 + 158cf05 commit 9439f0f

20 files changed

+277
-255
lines changed

.openpublishing.redirection.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
{
22
"redirections": [
3+
{
4+
"source_path": "articles/cdn/akamai-retirement-faq.md",
5+
"redirect_url": "/previous-versions/azure/cdn/akamai-retirement-faq",
6+
"redirect_document_id": false
7+
},
38
{
49
"source_path": "articles/operator-5g-core/concept-centralized-lifecycle-management.md",
510
"redirect_url": "/previous-versions/azure/operator-5g-core/concept-centralized-lifecycle-management",

articles/azure-functions/functions-bindings-signalr-service.md

Lines changed: 49 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Azure Functions SignalR Service bindings
33
description: Understand how to use SignalR Service bindings with Azure Functions.
44
ms.topic: reference
55
ms.custom: devx-track-extended-java, devx-track-js, devx-track-python
6-
ms.date: 04/02/2024
6+
ms.date: 12/24/2024
77
zone_pivot_groups: programming-languages-set-functions-lang-workers
88
---
99

@@ -63,14 +63,59 @@ To use the SignalR Service annotations in Java functions, you need to add a depe
6363
```
6464
::: zone-end
6565

66-
## Connection string settings
66+
## Connections
6767

68-
Add the `AzureSignalRConnectionString` key to the _host.json_ file that points to the application setting with your connection string. For local development, this value may exist in the _local.settings.json_ file.
68+
You can use [connection string](#connection-string) or [Microsoft Entra identity](#identity-based-connections) to connect to Azure SignalR Service.
6969

70-
For details on how to configure and use SignalR Service and Azure Functions together, refer to [Azure Functions development and configuration with Azure SignalR Service](../azure-signalr/signalr-concept-serverless-development-config.md).
70+
### Connection string
71+
72+
For instructions on how to retrieve the connection string for your Azure SignalR Service, see [Connection strings in Azure SignalR Service](../azure-signalr/concept-connection-string.md#how-to-get-connection-strings)
73+
74+
This connection string should be stored in an application setting with a name `AzureSignalRConnectionString`. You can customize the application setting name with the `connectionStringSetting` property of the binding configuration.
75+
76+
### Identity-based connections
77+
78+
If you're using version 1.7.0 or higher, instead of using a connection string with a secret, you can have the app use an [Microsoft Entra identity](../active-directory/fundamentals/active-directory-whatis.md).
79+
80+
First of all, you should make sure your Microsoft Entra identity has role [SignalR Service Owner](../role-based-access-control/built-in-roles.md#signalr-service-owner).
81+
82+
Then you would define settings with a common prefix `AzureSignalRConnectionString`. You can customize prefix name with the `connectionStringSetting` property of the binding configuration.
83+
84+
In this mode, the settings include following items:
85+
86+
| Property | Environment variable template | Description | Required | Example value |
87+
|--------------|----------|-----|----------|
88+
| Service URI | `AzureSignalRConnectionString__serviceUri` | The URI of your service endpoint. When you only configure "Service URI", the extensions would attempt to use [DefaultAzureCredential](/dotnet/azure/sdk/authentication/credential-chains?tabs=dac#defaultazurecredential-overview) type to authenticate with the service. | Yes | https://mysignalrsevice.service.signalr.net|
89+
| Token Credential | `AzureSignalRConnectionString__credential` | Defines how a token should be obtained for the connection. This setting should be set to `managedidentity` if your deployed Azure Function intends to use managed identity authentication. This value is only valid when a managed identity is available in the hosting environment. | No | managedidentity |
90+
| Client ID | `AzureSignalRConnectionString__clientId` | When `credential` is set to `managedidentity`, this property can be set to specify the user-assigned identity to be used when obtaining a token. The property accepts a client ID corresponding to a user-assigned identity assigned to the application. It's invalid to specify both a Resource ID and a client ID. If not specified, the system-assigned identity is used. This property is used differently in [local development scenarios](./functions-reference.md#local-development-with-identity-based-connections), when `credential` shouldn't be set. | No | 00000000-0000-0000-0000-000000000000 |
91+
| Resource ID | `AzureSignalRConnectionString__managedIdentityResourceId` | When `credential` is set to `managedidentity`, this property can be set to specify the resource Identifier to be used when obtaining a token. The property accepts a resource identifier corresponding to the resource ID of the user-defined managed identity. It's invalid to specify both a resource ID and a client ID. If neither are specified, the system-assigned identity is used. This property is used differently in [local development scenarios](./functions-reference.md#local-development-with-identity-based-connections), when `credential` shouldn't be set. | No | /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup/providers/Microsoft.SignalRService/SignalR/mysignalrservice |
92+
93+
94+
> [!NOTE]
95+
> When using `local.settings.json` file at local, [Azure App Configuration](../azure-app-configuration/quickstart-azure-functions-csharp.md), or [Key Vault](/azure/key-vault/general/overview) to provide settings for identity-based connections, replace `__` with `:` in the setting name to ensure names are resolved correctly.
96+
>
97+
> For example, `AzureSignalRConnectionString:serviceUri`.
98+
99+
#### Multiple endpoints setting
100+
101+
You can also configure multiple endpoints and specify identity settings per endpoint.
102+
103+
In this case, prefix your settings with `Azure__SignalR__Endpoints__{endpointName}`. The `{endpointName}` is an arbitrary name assigned by you to associate a group of settings to a service endpoint. The prefix `Azure__SignalR__Endpoints__{endpointName}` can't be customized by `connectionStringSetting` property.
104+
105+
| Property | Environment variable template | Description | Required | Example value |
106+
|--------------|----------|-----|----------|
107+
| Service URI | `Azure__SignalR__Endpoints__{endpointName}__serviceUri` | The URI your service endpoint. When you only configure "Service URI", the extensions would attempt to use [DefaultAzureCredential](/dotnet/azure/sdk/authentication/credential-chains?tabs=dac#defaultazurecredential-overview) type to authenticate with the service. |Yes | https://mysignalrsevice1.service.signalr.net|
108+
| Endpoint Type | `Azure__SignalR__Endpoints__{endpointName}__type` | Indicates whether the service endpoint is primary or secondary. If not specified, it defaults to `Primary`. Valid values are `Primary` and `Secondary`, case-insensitive. | No | `Secondary` |
109+
| Token Credential | `Azure__SignalR__Endpoints__{endpointName}__credential` | Defines how a token should be obtained for the connection. This setting should be set to `managedidentity` if your deployed Azure Function intends to use managed identity authentication. This value is only valid when a managed identity is available in the hosting environment. | No | managedidentity |
110+
| Client ID | `Azure__SignalR__Endpoints__{endpointName}__clientId` | When `credential` is set to `managedidentity`, this property can be set to specify the user-assigned identity to be used when obtaining a token. The property accepts a client ID corresponding to a user-assigned identity assigned to the application. It's invalid to specify both a Resource ID and a client ID. If not specified, the system-assigned identity is used. This property is used differently in [local development scenarios](./functions-reference.md#local-development-with-identity-based-connections), when `credential` shouldn't be set. | No | 00000000-0000-0000-0000-000000000000 |
111+
| Resource ID | `Azure__SignalR__Endpoints__{endpointName}__managedIdentityResourceId` | When `credential` is set to `managedidentity`, this property can be set to specify the resource Identifier to be used when obtaining a token. The property accepts a resource identifier corresponding to the resource ID of the user-defined managed identity. It's invalid to specify both a resource ID and a client ID. If neither are specified, the system-assigned identity is used. This property is used differently in [local development scenarios](./functions-reference.md#local-development-with-identity-based-connections), when `credential` shouldn't be set. | No | /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myusermanagedidentity |
112+
113+
For more information about multiple endpoints, see [Scale SignalR Service with multiple instances](../azure-signalr/signalr-howto-scale-multi-instances.md?pivots=serverless-mode#for-signalr-functions-extensions)
71114

72115
## Next steps
73116

117+
For details on how to configure and use SignalR Service and Azure Functions together, refer to [Azure Functions development and configuration with Azure SignalR Service](../azure-signalr/signalr-concept-serverless-development-config.md).
118+
74119
- [Handle messages from SignalR Service (Trigger binding)](./functions-bindings-signalr-service-trigger.md)
75120
- [Return the service endpoint URL and access token (Input binding)](./functions-bindings-signalr-service-input.md)
76121
- [Send SignalR Service messages (Output binding)](./functions-bindings-signalr-service-output.md)

articles/backup/blob-backup-support-matrix.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Support matrix for Azure Blobs backup
33
description: Provides a summary of support settings and limitations when backing up Azure Blobs.
44
ms.topic: reference
5-
ms.date: 12/18/2024
5+
ms.date: 12/27/2024
66
ms.custom: references_regions, engagement-fy24
77
ms.service: azure-backup
88
author: AbhishekMallick-MS
@@ -56,7 +56,7 @@ Operational backup of blobs uses blob point-in-time restore, blob versioning, so
5656

5757
- You can back up only block blobs in a *standard general-purpose v2 storage account* using the vaulted backup solution for blobs.
5858
- HNS-enabled storage accounts are currently not supported. This includes *ADLS Gen2 accounts*, *accounts using NFS 3.0*, and *SFTP protocols* for blobs.
59-
- You can back up storage accounts with *up to 100 containers*. You can also select a subset of containers to back up (up to 100 containers).
59+
- You can back up storage accounts with *up to 100 containers*, there is no limit on the number of blobs within those containers. You can also select a subset of containers to back up (up to 100 containers).
6060
- If your storage account contains more than 100 containers, you need to select *up to 100 containers* to back up.
6161
- To back up any new containers that get created after backup configuration for the storage account, modify the protection of the storage account. These containers aren't backed up automatically.
6262
- The storage accounts to be backed up must contain *a minimum of one container*. If the storage account doesn't contain any containers or if no containers are selected, an error may appear when you configure backup.
@@ -69,6 +69,10 @@ Operational backup of blobs uses blob point-in-time restore, blob versioning, so
6969
- If you suspend and resume protection or delete the **Object Replication policy** on the **source storage account**, the policy triggers a full backup.
7070
- Backup vaults with User-Assigned Managed Identity (UAMI) aren't compatible with Azure Blob Vaulted backups. Only System-Assigned Managed Identity (SAMI) works, because the vault needs to access the storage account where the blobs are stored. The vault uses its system-assigned managed identity for this access.
7171

72+
- Enabling backups isn't supported for the blob container that are configured with native replication using data factory.
73+
- The protection of a container that is part of any object replication isn't supported, either as a source or destination. Attempting to back up such a container will result in backup failure.
74+
75+
7276
---
7377

7478
## Next steps

articles/batch/managed-identity-pools.md

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22
title: Configure managed identities in Batch pools
33
description: Learn how to enable user-assigned managed identities on Batch pools and how to use managed identities within the nodes.
44
ms.topic: conceptual
5-
ms.date: 08/12/2024
5+
ms.date: 12/23/2024
66
ms.devlang: csharp
7+
ai-usage: ai-assisted
78
ms.custom:
89
---
910
# Configure managed identities in Batch pools
@@ -13,6 +14,10 @@ complicated identity and credential management by providing an identity for the
1314
(Azure AD ID). This identity is used to obtain Microsoft Entra tokens to authenticate with target
1415
resources in Azure.
1516

17+
When adding a User-Assigned Managed Identity to a Batch Pool, it is crucial to set the *Identity* property in your configuration. This property links the managed identity to the pool, enabling it to access Azure resources securely. Incorrect setting of the *Identity* property can result in common errors, such as access issues or upload errors.
18+
19+
For more information on configuring managed identities in Azure Batch, please refer to the [Azure Batch Managed Identities documentation](/troubleshoot/azure/hpc/batch/use-managed-identities-azure-batch-account-pool).
20+
1621
This topic explains how to enable user-assigned managed identities on Batch pools and how to use managed identities within the nodes.
1722

1823
> [!IMPORTANT]
@@ -106,6 +111,23 @@ ArmOperation<BatchAccountPoolResource> armOperation = batchAccount.GetBatchAccou
106111
BatchAccountPoolResource pool = armOperation.Value;
107112
```
108113

114+
> [!NOTE]
115+
> To include the *Identity* property use the following example code:
116+
```csharp
117+
var pool = batchClient.PoolOperations.CreatePool(
118+
poolId: "myPool",
119+
virtualMachineSize: "STANDARD_D2_V2",
120+
cloudServiceConfiguration: new CloudServiceConfiguration(osFamily: "4"),
121+
targetDedicatedNodes: 1,
122+
identity: new PoolIdentity(
123+
type: PoolIdentityType.UserAssigned,
124+
userAssignedIdentities: new Dictionary<string, UserAssignedIdentity>
125+
{
126+
{ "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identity-name}", new UserAssignedIdentity() }
127+
}
128+
));
129+
```
130+
109131
## Use user-assigned managed identities in Batch nodes
110132

111133
Many Azure Batch functions that access other Azure resources directly on the compute nodes, such as Azure Storage or

articles/batch/tutorial-run-python-batch-azure-data-factory.md

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ title: 'Tutorial: Run a Batch job through Azure Data Factory'
33
description: Learn how to use Batch Explorer, Azure Storage Explorer, and a Python script to run a Batch workload through an Azure Data Factory pipeline.
44
ms.devlang: python
55
ms.topic: tutorial
6-
ms.date: 03/01/2024
6+
ms.date: 12/23/2024
7+
ai-usage: ai-assisted
78
ms.custom: mvc, devx-track-python
89
---
910

@@ -82,8 +83,10 @@ Paste the connection string into the following script, replacing the `<storage-a
8283
8384
``` python
8485
# Load libraries
85-
from azure.storage.blob import BlobClient
86+
# from azure.storage.blob import BlobClient
87+
from azure.storage.blob import BlobServiceClient
8688
import pandas as pd
89+
import io
8790

8891
# Define parameters
8992
connectionString = "<storage-account-connection-string>"
@@ -93,8 +96,16 @@ outputBlobName = "iris_setosa.csv"
9396
# Establish connection with the blob storage account
9497
blob = BlobClient.from_connection_string(conn_str=connectionString, container_name=containerName, blob_name=outputBlobName)
9598

99+
# Initialize the BlobServiceClient (This initializes a connection to the Azure Blob Storage, downloads the content of the 'iris.csv' file, and then loads it into a Pandas DataFrame for further processing.)
100+
blob_service_client = BlobServiceClient.from_connection_string(conn_str=connectionString)
101+
blob_client = blob_service_client.get_blob_client(container_name=containerName, blob_name=outputBlobName)
102+
103+
# Download the blob content
104+
blob_data = blob_client.download_blob().readall()
105+
96106
# Load iris dataset from the task node
97-
df = pd.read_csv("iris.csv")
107+
# df = pd.read_csv("iris.csv")
108+
df = pd.read_csv(io.BytesIO(blob_data))
98109

99110
# Take a subset of the records
100111
df = df[df['Species'] == "setosa"]
@@ -106,6 +117,8 @@ with open(outputBlobName, "rb") as data:
106117
blob.upload_blob(data, overwrite=True)
107118
```
108119

120+
For more information on working with Azure Blob Storage, refer to the [Azure Blob Storage documentation](/azure/storage/blobs/storage-blobs-introduction).
121+
109122
Run the script locally to test and validate functionality.
110123

111124
``` bash

articles/cdn/akamai-retirement-faq.md

Lines changed: 0 additions & 58 deletions
This file was deleted.
1.44 KB
Loading

0 commit comments

Comments
 (0)