Skip to content

Commit 8a7ab57

Browse files
committed
Merge branch 'release-aio-m3' of https://github.com/MicrosoftDocs/azure-docs-pr into patricka-lnm-release-aio-m3
2 parents 79027ad + 22a1c97 commit 8a7ab57

27 files changed

+366
-181
lines changed

articles/active-directory-b2c/faq.yml

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,11 @@ sections:
2222
- question: |
2323
What is Microsoft Entra External ID?
2424
answer: |
25-
We announced an early preview of our next-generation Microsoft Entra External ID solution. This early preview represents an evolutionary step in unifying secure and engaging experiences across all external identities including partners, customers, citizens, patients, and others within a single, integrated platform. For more information about the preview, see [What is Microsoft Entra External ID for customers?](../active-directory/external-identities/customers/overview-customers-ciam.md).
25+
We have released our next generation Microsoft Entra External ID product which combines powerful solutions for working with people outside of your organization. With External ID capabilities, you can allow external identities to securely access your apps and resources. Whether you’re working with external partners, consumers, or business customers, users can bring their own identities. These identities can range from corporate or government-issued accounts to social identity providers like Google or Facebook. For more information, see [Introduction to Microsoft Entra External ID](/entra/external-id/external-identities-overview)
2626
- question: |
2727
How does this preview affect me?
2828
answer: |
29-
No action is required on your part at this time. The next-generation platform is currently in early preview only. We remain fully committed to supporting your current Azure AD B2C solution. There are no requirements for Azure AD B2C customers to migrate at this time and no plans to discontinue the current Azure AD B2C service. As the next generation platform approaches GA, details will be made available to all our valued B2C customers on available options including migration to the new platform.
30-
- question: |
31-
How do I participate in the preview?
32-
answer: |
33-
As the next-generation platform represents our future for customer identity and access management (CIAM), we welcome and encourage your participation and feedback during early preview. If you're interested in joining the early preview, contact your sales team for details.
29+
No action is required on your part at this time. We remain fully committed to supporting your current Azure AD B2C solution. There are no requirements for Azure AD B2C customers to migrate at this time and no plans to discontinue the current Azure AD B2C service.
3430
- name: General
3531
questions:
3632
- question: |
@@ -119,7 +115,7 @@ sections:
119115
Currently, you can’t change the "From:" field on the email.
120116
121117
> [!TIP]
122-
> With Azure AD B2C [custom policy](custom-policy-overview.md), you can customize the email Azure AD B2C sends to users, including the "From:" field on the email. The custom email verification requires the use of a third-party email provider like [Mailjet](custom-email-mailjet.md), [SendGrid](custom-email-sendgrid.md), or [SparkPost](https://messagebird.com/email/cloud-sending?sp=true).
118+
> With Azure AD B2C [custom policy](custom-policy-overview.md), you can customize the email Azure AD B2C sends to users, including the "From:" field on the email. The custom email verification requires the use of a third-party email provider like [Mailjet](custom-email-mailjet.md) or [SendGrid](custom-email-sendgrid.md).
123119
124120
- question: |
125121
How can I migrate my existing user names, passwords, and profiles from my database to Azure AD B2C?

articles/baremetal-infrastructure/workloads/nc2-on-azure/architecture.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ When planning your NC2 on Azure design, use the following table to understand wh
118118
| Japan East | AN36P |
119119
| North Central US | AN36P |
120120
| Southeast Asia | AN36P |
121+
| UAE North | AN36P |
121122
| UK South | AN36P |
122123
| West Europe | AN36P |
123124
| West US 2 | AN36 |

articles/communication-services/concepts/voice-video-calling/includes/known-issues/known-issues-safari-browser.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,14 @@ ms.custom: template-how-to
1515
## Safari Desktop
1616
___
1717

18+
### On macOS Safari 18 and up, the user is unable to share the screen for ~1 minute after canceling the action in a call. During this time, some of the options do not work while screen share recovers
19+
20+
**Browser version:** Safari 18 and up. <br>
21+
**Azure Communication Service calling SDK version:** All.<br>
22+
**Description:** After canceling a screen sharing attempt, the user is unable to start sharing the screen again for approximately 1 minute. During this period, some options become unresponsive, such as the ability to turn the camera on/off. After ~1 minute, the user is able to start screen sharing and use all available options in the call again.<br>
23+
**Known issue reference:** This regression is a known issue introduced on [Safari](https://bugs.webkit.org/show_bug.cgi?id=278915).<br>
24+
**Recommended workaround:** It is recommended to avoid using the “Cancel” option during screen sharing to prevent delays in restarting screen sharing. If sharing needs to be stopped, it’s advised to either complete the sharing action or wait for the recovery time before trying again.<br>
25+
1826
### On macOS Safari 17 and up, audio could become broken if macOS users connects Bluetooth headphones for during a call
1927

2028
**Browser version:** Safari 17 and up. <br>

articles/cost-management-billing/reservations/nutanix-bare-metal.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ ms.reviewer: primittal
66
ms.service: cost-management-billing
77
ms.subservice: reservations
88
ms.topic: how-to
9-
ms.date: 10/16/2024
9+
ms.date: 10/18/2024
1010
ms.author: banders
1111
# customer intent: As a billing administrator, I want to learn about saving costs with Nutanix Cloud Clusters on Azure BareMetal Infrastructure Reservations and buy one.
1212
---
@@ -19,7 +19,7 @@ You can save money on [Nutanix Cloud Clusters (NC2) on Azure](../../baremetal-in
1919

2020
Reservations for NC2 on Azure BareMetal Infrastructure are available with some exceptions.
2121

22-
- **Clouds** - Reservations are available only in the regions listed on the [Supported instances and regions](../../baremetal-infrastructure/workloads/nc2-on-azure/supported-instances-and-regions.md) page.
22+
- **Clouds** - Reservations are available only in the regions listed on the [Supported regions](../../baremetal-infrastructure/workloads/nc2-on-azure/architecture.md#supported-regions) page.
2323
- **Capacity restrictions** - In rare circumstances, Azure limits the purchase of new reservations for NC2 on Azure host SKUs because of low capacity in a region.
2424

2525
## Reservation scope

articles/event-grid/event-schema-blob-storage.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,8 @@ These events are triggered when a client creates, replaces, or deletes a blob by
101101
"contentType": "image/jpeg",
102102
"contentLength": 105891,
103103
"blobType": "BlockBlob",
104+
"accessTier": "Archive",
105+
"previousTier": "Cool",
104106
"url": "https://my-storage-account.blob.core.windows.net/testcontainer/Auto.jpg",
105107
"sequencer": "000000000000000000000000000089A4000000000018d6ea",
106108
"storageDiagnostics": {
@@ -208,6 +210,8 @@ These events are triggered when a client creates, replaces, or deletes a blob by
208210
"contentType": "image/jpeg",
209211
"contentLength": 105891,
210212
"blobType": "BlockBlob",
213+
"accessTier": "Archive",
214+
"previousTier": "Cool",
211215
"url": "https://my-storage-account.blob.core.windows.net/testcontainer/Auto.jpg",
212216
"sequencer": "000000000000000000000000000089A4000000000018d6ea",
213217
"storageDiagnostics": {
@@ -1246,6 +1250,8 @@ The data object has the following properties:
12461250
| `contentType` | string | The content type specified for the blob. |
12471251
| `contentLength` | integer | The size of the blob in bytes. |
12481252
| `blobType` | string | The type of blob. Valid values are either "BlockBlob" or "PageBlob". |
1253+
| `accessTier` | string | The target tier of the blob. Appears only for the event BlobTierChanged. |
1254+
| `previousTier` | string | The source tier of the blob. Appears only for the event BlobTierChanged. If the blob is inferring the tier from the storage account, this field will not appear. |
12491255
| `contentOffset` | number | The offset in bytes of a write operation taken at the point where the event-triggering application completed writing to the file. <br>Appears only for events triggered on blob storage accounts that have a hierarchical namespace.|
12501256
| `destinationUrl` |string | The url of the file that will exist after the operation completes. For example, if a file is renamed, the `destinationUrl` property contains the url of the new file name. <br>Appears only for events triggered on blob storage accounts that have a hierarchical namespace.|
12511257
| `sourceUrl` |string | The url of the file that exists before the operation is done. For example, if a file is renamed, the `sourceUrl` contains the url of the original file name before the rename operation. <br>Appears only for events triggered on blob storage accounts that have a hierarchical namespace. |

articles/event-hubs/event-hubs-go-get-started-send.md

Lines changed: 112 additions & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -49,47 +49,58 @@ Here's the code to send events to an event hub. The main steps in the code are:
4949
package main
5050

5151
import (
52-
"context"
52+
"context"
5353

54-
"github.com/Azure/azure-sdk-for-go/sdk/messaging/azeventhubs"
54+
"github.com/Azure/azure-sdk-for-go/sdk/messaging/azeventhubs"
5555
)
5656

5757
func main() {
58+
// create an Event Hubs producer client using a connection string to the namespace and the event hub
59+
producerClient, err := azeventhubs.NewProducerClientFromConnectionString("NAMESPACE CONNECTION STRING", "EVENT HUB NAME", nil)
5860

59-
// create an Event Hubs producer client using a connection string to the namespace and the event hub
60-
producerClient, err := azeventhubs.NewProducerClientFromConnectionString("NAMESPACE CONNECTION STRING", "EVENT HUB NAME", nil)
61+
if err != nil {
62+
panic(err)
63+
}
6164

62-
if err != nil {
63-
panic(err)
64-
}
65+
defer producerClient.Close(context.TODO())
6566

66-
defer producerClient.Close(context.TODO())
67+
// create sample events
68+
events := createEventsForSample()
6769

68-
// create sample events
69-
events := createEventsForSample()
70+
// create a batch object and add sample events to the batch
71+
newBatchOptions := &azeventhubs.EventDataBatchOptions{}
7072

71-
// create a batch object and add sample events to the batch
72-
newBatchOptions := &azeventhubs.EventDataBatchOptions{}
73+
batch, err := producerClient.NewEventDataBatch(context.TODO(), newBatchOptions)
7374

74-
batch, err := producerClient.NewEventDataBatch(context.TODO(), newBatchOptions)
75+
if err != nil {
76+
panic(err)
77+
}
7578

76-
for i := 0; i < len(events); i++ {
77-
err = batch.AddEventData(events[i], nil)
78-
}
79+
for i := 0; i < len(events); i++ {
80+
err = batch.AddEventData(events[i], nil)
7981

80-
// send the batch of events to the event hub
81-
producerClient.SendEventDataBatch(context.TODO(), batch, nil)
82+
if err != nil {
83+
panic(err)
84+
}
85+
}
86+
87+
// send the batch of events to the event hub
88+
err = producerClient.SendEventDataBatch(context.TODO(), batch, nil)
89+
90+
if err != nil {
91+
panic(err)
92+
}
8293
}
8394

8495
func createEventsForSample() []*azeventhubs.EventData {
85-
return []*azeventhubs.EventData{
86-
{
87-
Body: []byte("hello"),
88-
},
89-
{
90-
Body: []byte("world"),
91-
},
92-
}
96+
return []*azeventhubs.EventData{
97+
{
98+
Body: []byte("hello"),
99+
},
100+
{
101+
Body: []byte("world"),
102+
},
103+
}
93104
}
94105
```
95106

@@ -134,101 +145,104 @@ Here's the code to receive events from an event hub. The main steps in the code
134145
package main
135146

136147
import (
137-
"context"
138-
"errors"
139-
"fmt"
140-
"time"
141-
142-
"github.com/Azure/azure-sdk-for-go/sdk/messaging/azeventhubs"
143-
"github.com/Azure/azure-sdk-for-go/sdk/messaging/azeventhubs/checkpoints"
144-
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/container"
148+
"context"
149+
"errors"
150+
"fmt"
151+
"time"
152+
153+
"github.com/Azure/azure-sdk-for-go/sdk/messaging/azeventhubs"
154+
"github.com/Azure/azure-sdk-for-go/sdk/messaging/azeventhubs/checkpoints"
155+
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/container"
145156
)
146157

147158
func main() {
148159

149-
// create a container client using a connection string and container name
150-
checkClient, err := container.NewClientFromConnectionString("AZURE STORAGE CONNECTION STRING", "CONTAINER NAME", nil)
151-
152-
// create a checkpoint store that will be used by the event hub
153-
checkpointStore, err := checkpoints.NewBlobStore(checkClient, nil)
160+
// create a container client using a connection string and container name
161+
checkClient, err := container.NewClientFromConnectionString("AZURE STORAGE CONNECTION STRING", "CONTAINER NAME", nil)
162+
163+
if err != nil {
164+
panic(err)
165+
}
154166

155-
if err != nil {
156-
panic(err)
157-
}
167+
// create a checkpoint store that will be used by the event hub
168+
checkpointStore, err := checkpoints.NewBlobStore(checkClient, nil)
158169

159-
// create a consumer client using a connection string to the namespace and the event hub
160-
consumerClient, err := azeventhubs.NewConsumerClientFromConnectionString("NAMESPACE CONNECTION STRING", "EVENT HUB NAME", azeventhubs.DefaultConsumerGroup, nil)
170+
if err != nil {
171+
panic(err)
172+
}
161173

162-
if err != nil {
163-
panic(err)
164-
}
174+
// create a consumer client using a connection string to the namespace and the event hub
175+
consumerClient, err := azeventhubs.NewConsumerClientFromConnectionString("NAMESPACE CONNECTION STRING", "EVENT HUB NAME", azeventhubs.DefaultConsumerGroup, nil)
165176

166-
defer consumerClient.Close(context.TODO())
177+
if err != nil {
178+
panic(err)
179+
}
167180

168-
// create a processor to receive and process events
169-
processor, err := azeventhubs.NewProcessor(consumerClient, checkpointStore, nil)
181+
defer consumerClient.Close(context.TODO())
170182

171-
if err != nil {
172-
panic(err)
173-
}
183+
// create a processor to receive and process events
184+
processor, err := azeventhubs.NewProcessor(consumerClient, checkpointStore, nil)
174185

175-
// for each partition in the event hub, create a partition client with processEvents as the function to process events
176-
dispatchPartitionClients := func() {
177-
for {
178-
partitionClient := processor.NextPartitionClient(context.TODO())
186+
if err != nil {
187+
panic(err)
188+
}
179189

180-
if partitionClient == nil {
181-
break
182-
}
190+
// for each partition in the event hub, create a partition client with processEvents as the function to process events
191+
dispatchPartitionClients := func() {
192+
for {
193+
partitionClient := processor.NextPartitionClient(context.TODO())
183194

184-
go func() {
185-
if err := processEvents(partitionClient); err != nil {
186-
panic(err)
187-
}
188-
}()
189-
}
190-
}
195+
if partitionClient == nil {
196+
break
197+
}
191198

192-
// run all partition clients
193-
go dispatchPartitionClients()
199+
go func() {
200+
if err := processEvents(partitionClient); err != nil {
201+
panic(err)
202+
}
203+
}()
204+
}
205+
}
194206

195-
processorCtx, processorCancel := context.WithCancel(context.TODO())
196-
defer processorCancel()
207+
// run all partition clients
208+
go dispatchPartitionClients()
197209

198-
if err := processor.Run(processorCtx); err != nil {
199-
panic(err)
200-
}
210+
processorCtx, processorCancel := context.WithCancel(context.TODO())
211+
defer processorCancel()
212+
213+
if err := processor.Run(processorCtx); err != nil {
214+
panic(err)
215+
}
201216
}
202217

203218
func processEvents(partitionClient *azeventhubs.ProcessorPartitionClient) error {
204-
defer closePartitionResources(partitionClient)
205-
for {
206-
receiveCtx, receiveCtxCancel := context.WithTimeout(context.TODO(), time.Minute)
207-
events, err := partitionClient.ReceiveEvents(receiveCtx, 100, nil)
208-
receiveCtxCancel()
209-
210-
if err != nil && !errors.Is(err, context.DeadlineExceeded) {
211-
return err
212-
}
213-
214-
fmt.Printf("Processing %d event(s)\n", len(events))
215-
216-
for _, event := range events {
217-
fmt.Printf("Event received with body %v\n", string(event.Body))
218-
}
219-
220-
if len(events) != 0 {
221-
if err := partitionClient.UpdateCheckpoint(context.TODO(), events[len(events)-1]); err != nil {
222-
return err
223-
}
224-
}
225-
}
219+
defer closePartitionResources(partitionClient)
220+
for {
221+
receiveCtx, receiveCtxCancel := context.WithTimeout(context.TODO(), time.Minute)
222+
events, err := partitionClient.ReceiveEvents(receiveCtx, 100, nil)
223+
receiveCtxCancel()
224+
225+
if err != nil && !errors.Is(err, context.DeadlineExceeded) {
226+
return err
227+
}
228+
229+
fmt.Printf("Processing %d event(s)\n", len(events))
230+
231+
for _, event := range events {
232+
fmt.Printf("Event received with body %v\n", string(event.Body))
233+
}
234+
235+
if len(events) != 0 {
236+
if err := partitionClient.UpdateCheckpoint(context.TODO(), events[len(events)-1], nil); err != nil {
237+
return err
238+
}
239+
}
240+
}
226241
}
227242

228243
func closePartitionResources(partitionClient *azeventhubs.ProcessorPartitionClient) {
229-
defer partitionClient.Close(context.TODO())
244+
defer partitionClient.Close(context.TODO())
230245
}
231-
232246
```
233247

234248
## Run receiver and sender apps

articles/expressroute/expressroute-howto-linkvnet-cli.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ The response contains the authorization key and status:
9696
"authorizationKey": "0a7f3020-541f-4b4b-844a-5fb43472e3d7",
9797
"authorizationUseStatus": "Available",
9898
"etag": "W/\"010353d4-8955-4984-807a-585c21a22ae0\"",
99-
"id": "/subscriptions/81ab786c-56eb-4a4d-bb5f-f60329772466/resourceGroups/ExpressRouteResourceGroup/providers/Microsoft.Network/expressRouteCircuits/MyCircuit/authorizations/MyAuthorization1",
99+
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ExpressRouteResourceGroup/providers/Microsoft.Network/expressRouteCircuits/MyCircuit/authorizations/MyAuthorization1",
100100
"name": "MyAuthorization1",
101101
"provisioningState": "Succeeded",
102102
"resourceGroup": "ExpressRouteResourceGroup"

articles/expressroute/gateway-migration.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ Historically, users had to use the Resize-AzVirtualNetworkGateway PowerShell com
3939

4040
With the guided gateway migration experience you can deploy a second virtual network gateway in the same GatewaySubnet and Azure automatically transfers the control plane and data path configuration from the old gateway to the new one. During the migration process, there will be two virtual network gateways in operation within the same GatewaySubnet. This feature is designed to support migrations without downtime. However, users may experience brief connectivity issues or interruptions during the migration process.
4141

42+
> [!NOTE]
43+
> The total time required for the migration to complete can take up to one hour. During this period, the gateway will remain locked, and no changes will be permitted.
44+
4245
Gateway migration is recommended if you have a non-Az enabled Gateway SKU or a non-Az enabled Gateway Basic IP Gateway SKU.
4346

4447
| Migrate from Non-Az enabled Gateway SKU | Migrate to Az-enabled Gateway SKU |

articles/frontdoor/front-door-route-matching.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ The following table shows which routing rule the incoming request gets matched t
135135
| www\.contoso.com/path/zzz | B |
136136

137137
>[!WARNING]
138-
> If there are no routing rules for an exact-match frontend host with a catch-all route Path (`/*`), then there will not be a match to any routing rule.
138+
> If there are no routing rules for an exact-match frontend host without a catch-all route path (/*), then no routing rule will be matched.
139139
>
140140
> Example configuration:
141141
>

articles/iot-operations/connect-to-cloud/concept-dataflow-conversions.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ ms.topic: concept-article
88
ms.date: 08/03/2024
99

1010
#CustomerIntent: As an operator, I want to understand how to use dataflow conversions to transform data.
11+
ms.service: azure-iot-operations
1112
---
1213

1314
# Convert data by using dataflow conversions

0 commit comments

Comments
 (0)