Skip to content

Commit d815163

Browse files
authored
Merge pull request #114174 from MicrosoftDocs/master
UHF Header
2 parents f57297a + 71bee19 commit d815163

File tree

52 files changed

+1438
-598
lines changed

Some content is hidden

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

52 files changed

+1438
-598
lines changed

.openpublishing.redirection.json

+10-5
Original file line numberDiff line numberDiff line change
@@ -28210,6 +28210,16 @@
2821028210
"redirect_url": "/azure/storage/blobs/storage-blob-snapshots",
2821128211
"redirect_document_id": true
2821228212
},
28213+
{
28214+
"source_path": "articles/storage/blobs/storage-blob-snapshots.md",
28215+
"redirect_url": "/azure/storage/blobs/snapshots-overview",
28216+
"redirect_document_id": false
28217+
},
28218+
{
28219+
"source_path": "articles/storage/blobs/storage-blob-soft-delete.md",
28220+
"redirect_url": "/azure/storage/blobs/soft-delete-overview",
28221+
"redirect_document_id": true
28222+
},
2821328223
{
2821428224
"source_path": "articles/storage/storage-blob-storage-tiers.md",
2821528225
"redirect_url": "/azure/storage/blobs/storage-blob-storage-tiers",
@@ -52333,11 +52343,6 @@
5233352343
"source_path": "articles/load-balancer/azure-media-player/components-limitations.md",
5233452344
"redirect_url": "/articles/load-balancer/concepts",
5233552345
"redirect_document_id": false
52336-
},
52337-
{
52338-
"source_path": "articles/virtual-machines/troubleshooting/linux-virtual-machine-cannot-start-fstab-errors.md",
52339-
"redirect_url": "/articles/virtual-machines/troubleshooting",
52340-
"redirect_document_id": false
5234152346
}
5234252347

5234352348
]

articles/active-directory/develop/msal-authentication-flows.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -229,4 +229,4 @@ Apart from the [Integrated Windows Authentication constraints](#integrated-windo
229229

230230
### Azure AD B2C specifics
231231

232-
For more information on using MSAL.NET and Azure AD B2C, see [Using ROPC with Azure AD B2C (MSAL.NET)](msal-net-aad-b2c-considerations.md#resource-owner-password-credentials-ropc-with-azure-ad-b2c).
232+
For more information on using ROPC in MSAL.NET and Azure AD B2C, see [Using ROPC with Azure AD B2C](msal-net-aad-b2c-considerations.md#resource-owner-password-credentials-ropc).

articles/active-directory/develop/msal-net-aad-b2c-considerations.md

+86-73
Large diffs are not rendered by default.

articles/azure-monitor/platform/diagnostics-extension-windows-install.md

+22-22
Original file line numberDiff line numberDiff line change
@@ -119,28 +119,28 @@ Following is a minimal example of a configuration file that enables collection o
119119
"PublicConfig": {
120120
"WadCfg": {
121121
"DiagnosticMonitorConfiguration": {
122-
"overallQuotaInMB": 10000
123-
},
124-
"DiagnosticInfrastructureLogs": {
125-
"scheduledTransferLogLevelFilter": "Error"
126-
},
127-
"PerformanceCounters": {
128-
"scheduledTransferPeriod": "PT1M",
129-
"PerformanceCounterConfiguration": [
130-
{
131-
"counterSpecifier": "\\Processor(_Total)\\% Processor Time",
132-
"sampleRate": "PT3M",
133-
"unit": "percent"
134-
}
135-
]
136-
},
137-
"WindowsEventLog": {
138-
"scheduledTransferPeriod": "PT1M",
139-
"DataSource": [
140-
{
141-
"name": "Application!*[System[(Level=1 or Level=2 or Level=3)]]"
142-
}
143-
]
122+
"overallQuotaInMB": 10000,
123+
"DiagnosticInfrastructureLogs": {
124+
"scheduledTransferLogLevelFilter": "Error"
125+
},
126+
"PerformanceCounters": {
127+
"scheduledTransferPeriod": "PT1M",
128+
"PerformanceCounterConfiguration": [
129+
{
130+
"counterSpecifier": "\\Processor(_Total)\\% Processor Time",
131+
"sampleRate": "PT3M",
132+
"unit": "percent"
133+
}
134+
]
135+
},
136+
"WindowsEventLog": {
137+
"scheduledTransferPeriod": "PT1M",
138+
"DataSource": [
139+
{
140+
"name": "Application!*[System[(Level=1 or Level=2 or Level=3)]]"
141+
}
142+
]
143+
}
144144
}
145145
},
146146
"StorageAccount": "mystorageaccount",

articles/load-balancer/TOC.yml

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
items:
55
- name: What is Azure Load Balancer?
66
href: load-balancer-overview.md
7+
- name: Frequently asked questions
8+
href: load-balancer-faqs.md
79
- name: Quickstart
810
items:
911
- name: Create Load Balancer - Portal

articles/load-balancer/index.yml

+4
Original file line numberDiff line numberDiff line change
@@ -106,3 +106,7 @@ landingContent:
106106
url: https://docs.microsoft.com/powershell/module/az.network/?view=azps-2.5.0#load_balancer
107107
- text: Azure CLI
108108
url: https://docs.microsoft.com/cli/azure/network/lb?view=azure-cli-latest
109+
- text: ARM templates
110+
url: https://docs.microsoft.com/azure/templates/microsoft.network/loadbalancers#quickstart-templates
111+
- text: Frequently asked Load Balancer questions
112+
url: load-balancer-faqs.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
---
2+
title: Frequently asked questions - Azure Load Balancer
3+
description: Answers to frequently asked questions about the Azure Load Balancer.
4+
services: load-balancer
5+
author: erichrt
6+
ms.service: load-balancer
7+
ms.topic: article
8+
ms.date: 04/22/2020
9+
ms.author: errobin
10+
---
11+
# Frequently asked questions
12+
13+
## What types of Load Balancer exist?
14+
Internal load balancers which balance traffic within a VNET and external load balancers which balance traffic to and from an internet connected endpoint. For more information, see [Load Balancer Types] (https://docs.microsoft.com/azure/load-balancer/concepts-limitations#load-balancer-types).
15+
16+
For both these types, Azure offers a Basic SKU and Standard SKU that have different functional, performance, security and health tracking capabilities. These differences are explained in our [SKU Comparison] (https://docs.microsoft.com/azure/load-balancer/concepts-limitations#skus) article.
17+
18+
## How can I upgrade from a Basic to a Standard Load Balancer?
19+
See the [upgrade from Basic to Standard](upgrade-basic-standard.md) article for an automated script and guidance on upgrading a Load Balancer SKU.
20+
21+
## What are the different load-balancing options in Azure?
22+
See the [load balancer technology guide](https://docs.microsoft.com/azure/architecture/guide/technology-choices/load-balancing-overview) for the available load-balancing services and recommended uses for each.
23+
24+
## Where can I find Load Balancer ARM templates?
25+
See the [list of Azure Load Balancer quickstart templates](https://docs.microsoft.com/azure/templates/microsoft.network/loadbalancers#quickstart-templates) for ARM templates of common deployments.
26+
27+
## How are inbound NAT rules different from load-balancing rules?
28+
NAT rules are used to specify a backend resource to route traffic to. For example, configuring a specific load balancer port to send RDP traffic to a specific VM. Load-balancing rules are used to specify a pool of backend resources to route traffic to, balancing the load across each instance. For example, a load balancer rule can route TCP packets on port 80 of the load balancer across a pool of web servers.
29+
30+
## Next Steps
31+
If your question is not listed above, please send feedback about this page with your question. This will create a GitHub issue for the product team to ensure all of our valued customer questions are answered.

articles/storage/blobs/TOC.yml

+20-8
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,16 @@
147147
href: ../common/storage-private-endpoints.md?toc=%2fazure%2fstorage%2fblobs%2ftoc.json
148148
- name: Data redundancy
149149
href: ../common/storage-redundancy.md?toc=%2fazure%2fstorage%2fblobs%2ftoc.json
150+
- name: Data protection
151+
items:
152+
- name: Versioning
153+
href: versioning-overview.md
154+
- name: Soft delete
155+
href: soft-delete-overview.md
156+
- name: Snapshots
157+
href: snapshots-overview.md
158+
- name: Change feed
159+
href: storage-blob-change-feed.md
150160
- name: Access and performance tiers
151161
items:
152162
- name: Access tiers
@@ -243,8 +253,6 @@
243253
href: ../common/storage-monitoring-diagnosing-troubleshooting.md?toc=%2fazure%2fstorage%2fblobs%2ftoc.json
244254
- name: Event handling
245255
href: storage-blob-event-overview.md
246-
- name: Change feed
247-
href: storage-blob-change-feed.md
248256
- name: Page blob features
249257
href: storage-blob-pageblob-overview.md
250258
- name: Static websites
@@ -278,8 +286,6 @@
278286
href: storage-blob-properties-metadata.md
279287
- name: Copy a blob (.NET)
280288
href: storage-blob-copy.md
281-
- name: Create and manage blob snapshots (.NET)
282-
href: storage-blob-snapshots.md
283289
- name: Secure blob data
284290
items:
285291
- name: Authorize access to blob data
@@ -372,14 +378,22 @@
372378
href: ../common/redundancy-migration.md?toc=%2fazure%2fstorage%2fblobs%2ftoc.json
373379
- name: Design highly available applications
374380
href: ../common/geo-redundant-design.md?toc=%2fazure%2fstorage%2fblobs%2ftoc.json
381+
- name: Protect your data
382+
items:
383+
- name: Enable blob versioning
384+
href: versioning-enable.md
385+
- name: Enable soft delete
386+
href: soft-delete-enable.md
387+
- name: Create snapshots (.NET)
388+
href: snapshots-manage-dotnet.md
389+
- name: Process change feed logs
390+
href: storage-blob-change-feed-how-to.md
375391
- name: Manage disaster recovery
376392
items:
377393
- name: Check the Last Sync Time property
378394
href: ../common/last-sync-time-get.md?toc=%2fazure%2fstorage%2fblobs%2ftoc.json
379395
- name: Initiate account failover
380396
href: ../common/storage-initiate-account-failover.md?toc=%2fazure%2fstorage%2fblobs%2ftoc.json
381-
- name: Recover deleted blobs
382-
href: storage-blob-soft-delete.md
383397
- name: Use a storage emulator
384398
items:
385399
- name: Use the Azurite open-source emulator
@@ -398,8 +412,6 @@
398412
href: storage-blob-event-quickstart.md
399413
- name: Utilize Blob Index
400414
href: storage-blob-index-how-to.md
401-
- name: Process change feed logs
402-
href: storage-blob-change-feed-how-to.md
403415
- name: Transfer data
404416
items:
405417
- name: AzCopy
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
---
2+
title: Create and manage a blob snapshot in .NET
3+
titleSuffix: Azure Storage
4+
description: Learn how to create a read-only snapshot of a blob to back up blob data at a given moment in time.
5+
services: storage
6+
author: tamram
7+
8+
ms.service: storage
9+
ms.topic: article
10+
ms.date: 04/02/2020
11+
ms.author: tamram
12+
ms.subservice: blobs
13+
---
14+
15+
# Create and manage a blob snapshot in .NET
16+
17+
A snapshot is a read-only version of a blob that's taken at a point in time. This article shows how to create and manage blob snapshots using the [Azure Storage client library for .NET](/dotnet/api/overview/azure/storage?view=azure-dotnet).
18+
19+
For more information about blob snapshots in Azure Storage, see [Create and manage a blob snapshot in .NET](snapshots-overview.md).
20+
21+
## Create a snapshot
22+
23+
# [.NET version 12.x](#tab/v12)
24+
25+
To create a snapshot of a block blob using version 12.x of the Azure Storage client library for .NET, use one of the following methods:
26+
27+
- [CreateSnapshot](/dotnet/api/azure.storage.blobs.specialized.blobbaseclient.createsnapshot)
28+
- [CreateSnapshotAsync](/dotnet/api/azure.storage.blobs.specialized.blobbaseclient.createsnapshotasync)
29+
30+
The following code example shows how to create a snapshot with version 12.x. Include a reference to the [Azure.Identity](https://www.nuget.org/packages/azure.identity) library to use your Azure AD credentials to authorize requests to the service.
31+
32+
```csharp
33+
private static async Task CreateBlockBlobSnapshot(string accountName, string containerName, string blobName, Stream data)
34+
{
35+
const string blobServiceEndpointSuffix = ".blob.core.windows.net";
36+
Uri containerUri = new Uri("https://" + accountName + blobServiceEndpointSuffix + "/" + containerName);
37+
38+
// Get a container client object and create the container.
39+
BlobContainerClient containerClient = new BlobContainerClient(containerUri,
40+
new DefaultAzureCredential());
41+
await containerClient.CreateIfNotExistsAsync();
42+
43+
// Get a blob client object.
44+
BlobClient blobClient = containerClient.GetBlobClient(blobName);
45+
46+
try
47+
{
48+
// Upload text to create a block blob.
49+
await blobClient.UploadAsync(data);
50+
51+
// Add blob metadata.
52+
IDictionary<string, string> metadata = new Dictionary<string, string>
53+
{
54+
{ "ApproxBlobCreatedDate", DateTime.UtcNow.ToString() },
55+
{ "FileType", "text" }
56+
};
57+
await blobClient.SetMetadataAsync(metadata);
58+
59+
// Sleep 5 seconds.
60+
System.Threading.Thread.Sleep(5000);
61+
62+
// Create a snapshot of the base blob.
63+
// You can specify metadata at the time that the snapshot is created.
64+
// If no metadata is specified, then the blob's metadata is copied to the snapshot.
65+
await blobClient.CreateSnapshotAsync();
66+
}
67+
catch (RequestFailedException e)
68+
{
69+
Console.WriteLine(e.Message);
70+
Console.ReadLine();
71+
throw;
72+
}
73+
}
74+
```
75+
76+
# [.NET version 11.x](#tab/v11)
77+
78+
To create a snapshot of a block blob using version 11.x of the Azure Storage client library for .NET, use one of the following methods:
79+
80+
- [CreateSnapshot](/dotnet/api/microsoft.azure.storage.blob.cloudblockblob.createsnapshot)
81+
- [CreateSnapshotAsync](/dotnet/api/microsoft.azure.storage.blob.cloudblockblob.createsnapshotasync)
82+
83+
The following code example shows how to create a snapshot with version 11.x. This example specifies additional metadata for the snapshot when it is created.
84+
85+
```csharp
86+
private static async Task CreateBlockBlobSnapshot(CloudBlobContainer container)
87+
{
88+
// Create a new block blob in the container.
89+
CloudBlockBlob baseBlob = container.GetBlockBlobReference("sample-base-blob.txt");
90+
91+
// Add blob metadata.
92+
baseBlob.Metadata.Add("ApproxBlobCreatedDate", DateTime.UtcNow.ToString());
93+
94+
try
95+
{
96+
// Upload the blob to create it, with its metadata.
97+
await baseBlob.UploadTextAsync(string.Format("Base blob: {0}", baseBlob.Uri.ToString()));
98+
99+
// Sleep 5 seconds.
100+
System.Threading.Thread.Sleep(5000);
101+
102+
// Create a snapshot of the base blob.
103+
// You can specify metadata at the time that the snapshot is created.
104+
// If no metadata is specified, then the blob's metadata is copied to the snapshot.
105+
Dictionary<string, string> metadata = new Dictionary<string, string>();
106+
metadata.Add("ApproxSnapshotCreatedDate", DateTime.UtcNow.ToString());
107+
await baseBlob.CreateSnapshotAsync(metadata, null, null, null);
108+
Console.WriteLine(snapshot.SnapshotQualifiedStorageUri.PrimaryUri);
109+
}
110+
catch (StorageException e)
111+
{
112+
Console.WriteLine(e.Message);
113+
Console.ReadLine();
114+
throw;
115+
}
116+
}
117+
```
118+
119+
---
120+
121+
## Delete snapshots
122+
123+
To delete a blob, you must first delete any snapshots of that blob. You can delete a snapshot individually, or specify that all snapshots be deleted when the source blob is deleted. If you attempt to delete a blob that still has snapshots, an error results.
124+
125+
# [.NET version 12.x](#tab/v12)
126+
127+
To delete a blob and its snapshots using version 12.x of the Azure Storage client library for .NET, use one of the following methods, and include the [DeleteSnapshotsOption](/dotnet/api/azure.storage.blobs.models.deletesnapshotsoption) enum:
128+
129+
- [Delete](/dotnet/api/azure.storage.blobs.specialized.blobbaseclient.delete)
130+
- [DeleteAsync](/dotnet/api/azure.storage.blobs.specialized.blobbaseclient.deleteasync)
131+
- [DeleteIfExists](/dotnet/api/azure.storage.blobs.specialized.blobbaseclient.deleteifexists)
132+
- [DeleteIfExistsAsync](/dotnet/api/azure.storage.blobs.specialized.blobbaseclient.deleteifexistsasync)
133+
134+
The following code example shows how to delete a blob and its snapshots in .NET, where `blobClient` is an object of type [BlobClient](/dotnet/api/azure.storage.blobs.blobclient)):
135+
136+
```csharp
137+
await blobClient.DeleteIfExistsAsync(DeleteSnapshotsOption.IncludeSnapshots, null, default);
138+
```
139+
140+
# [.NET version 11.x](#tab/v11)
141+
142+
To delete a blob and its snapshots using version 11.x of the Azure Storage client library for .NET, use one of the following blob deletion methods, and include the [DeleteSnapshotsOption](/dotnet/api/microsoft.azure.storage.blob.deletesnapshotsoption) enum:
143+
144+
- [Delete](/dotnet/api/microsoft.azure.storage.blob.cloudblob.delete)
145+
- [DeleteAsync](/dotnet/api/microsoft.azure.storage.blob.cloudblob.deleteasync)
146+
- [DeleteIfExists](/dotnet/api/microsoft.azure.storage.blob.cloudblob.deleteifexists)
147+
- [DeleteIfExistsAsync](/dotnet/api/microsoft.azure.storage.blob.cloudblob.deleteifexistsasync)
148+
149+
The following code example shows how to delete a blob and its snapshots in .NET, where `blockBlob` is an object of type [CloudBlockBlob][dotnet_CloudBlockBlob]:
150+
151+
```csharp
152+
await blockBlob.DeleteIfExistsAsync(DeleteSnapshotsOption.IncludeSnapshots, null, null, null);
153+
```
154+
155+
---
156+
157+
## Next steps
158+
159+
- [Blob snapshots](snapshots-overview.md)
160+
- [Blob versions (preview)](versioning-overview.md)
161+
- [Soft delete for blobs](storage-blob-soft-delete.md)

0 commit comments

Comments
 (0)