Änderungsfeed-Clientbibliothek für Azure Storage-Blobs für .NET– Version 12.0.0-preview.40
Serverversion: 12.02.2021, 2020-12-06, 2020-10-02, 2020-08-04, 2020-06-12 2020-04-08, 2020-02-10 und 2019-12-12
Zweck des Änderungsfeeds ist es, Transaktionsprotokolle für alle Änderungen bereitzustellen, die in den Blobs und Blobmetadaten in Ihrem Speicherkonto auftreten. Der Änderungsfeed bietet sortierte, garantierte, permanente, unveränderliche und schreibgeschützte Protokolle dieser Änderungen. Clientanwendungen können diese Protokolle jederzeit lesen. Der Änderungsfeed ermöglicht es Ihnen, effiziente und skalierbare Lösungen zu erstellen, mit denen Änderungsereignisse, die in Ihrem Blob Storage-Konto auftreten, kostengünstig verarbeitet werden.
Quellcode | Paket (NuGet) | Produktdokumentation
Erste Schritte
Installieren des Pakets
Installieren Sie die Azure Storage Blobs-Clientbibliothek für .NET mit NuGet:
dotnet add package Azure.Storage.Blobs.ChangeFeed --prerelease
Voraussetzungen
Sie benötigen ein Azure-Abonnement und ein Speicherkonto , um dieses Paket verwenden zu können.
Zum Erstellen eines neuen Speicherkontos können Sie das Azure-Portal, Azure PowerShell oder die Azure CLI verwenden. Beispiel für die Verwendung der Azure-Befehlszeilenschnittstelle:
az storage account create --name MyStorageAccount --resource-group MyResourceGroup --location westus --sku Standard_LRS
Authentifizieren des Clients
Die Authentifizierung funktioniert genauso wie in Azure.Storage.Blobs.
Wichtige Begriffe
Der Änderungsfeed wird in Form von Blobs in einem speziellen Container Ihres Speicherkontos zu standardmäßigen Blobpreisen gespeichert. Sie können den Aufbewahrungszeitraum dieser Dateien Ihren Anforderungen entsprechend steuern (Informationen hierzu finden Sie in den Bedingungen für das aktuelle Release). Änderungsereignisse werden in der Apache Avro-Formatspezifikation als Datensätze an den Änderungsfeed angehängt. Dies ist ein kompaktes, schnelles Binärformat, das umfangreiche Datenstrukturen mit Inlineschemas bereitstellt. Dieses Format wird häufig im Hadoop-Ökosystem, von Stream Analytics und von Azure Data Factory verwendet.
Sie können diese Protokolle inkrementell oder vollständig verarbeiten. Eine beliebige Anzahl von Clientanwendungen kann den Änderungsfeed unabhängig, gleichzeitig und in der jeweils eigenen Geschwindigkeit lesen. Analyseanwendungen wie Apache Drill oder Apache Spark können Protokolle direkt als Avro-Dateien nutzen, sodass sie kostengünstig, mit hoher Bandbreite und ohne benutzerdefinierte Anwendung verarbeitet werden können.
Threadsicherheit
Wir garantieren, dass alle Client-instance Methoden threadsicher und unabhängig voneinander sind (Richtlinie). Dadurch wird sichergestellt, dass die Empfehlung, Clientinstanzen wiederzuverwenden, immer sicher ist, auch über Threads hinweg.
Zusätzliche Konzepte
Clientoptionen | Zugreifen auf die Antwort | Vorgänge | mit langer AusführungsdauerBehandeln von Fehlern | Diagnose | Spott | Clientlebensdauer
Beispiele
Abrufen aller Ereignisse im Änderungsfeed
// Get all the events in the change feed.
List<BlobChangeFeedEvent> changeFeedEvents = new List<BlobChangeFeedEvent>();
await foreach (BlobChangeFeedEvent changeFeedEvent in changeFeedClient.GetChangesAsync())
{
changeFeedEvents.Add(changeFeedEvent);
}
Abrufen von Ereignissen zwischen einer Start- und Endzeit
// Create the start and end time. The change feed client will round start time down to
// the nearest hour, and round endTime up to the next hour if you provide DateTimeOffsets
// with minutes and seconds.
DateTimeOffset startTime = new DateTimeOffset(2017, 3, 2, 15, 0, 0, TimeSpan.Zero);
DateTimeOffset endTime = new DateTimeOffset(2020, 10, 7, 2, 0, 0, TimeSpan.Zero);
// You can also provide just a start or end time.
await foreach (BlobChangeFeedEvent changeFeedEvent in changeFeedClient.GetChangesAsync(
start: startTime,
end: endTime))
{
changeFeedEvents.Add(changeFeedEvent);
}
Fortsetzen mit continuationToken
string continuationToken = null;
await foreach (Page<BlobChangeFeedEvent> page in changeFeedClient.GetChangesAsync().AsPages(pageSizeHint: 10))
{
foreach (BlobChangeFeedEvent changeFeedEvent in page.Values)
{
changeFeedEvents.Add(changeFeedEvent);
}
// Get the change feed continuation token. The continuation token is not required to get each page of events,
// it is intended to be saved and used to resume iterating at a later date.
continuationToken = page.ContinuationToken;
break;
}
// Resume iterating from the pervious position with the continuation token.
await foreach (BlobChangeFeedEvent changeFeedEvent in changeFeedClient.GetChangesAsync(
continuationToken: continuationToken))
{
changeFeedEvents.Add(changeFeedEvent);
}
Problembehandlung
Alle Blobdienstvorgänge lösen bei Einem Fehler eine RequestFailedException mit hilfreichenErrorCode
s aus. Viele dieser Fehler können wiederhergestellt werden.
Nächste Schritte
Erste Schritte mit unseren Änderungsfeedbeispielen:
- Hallo Welt: Abrufen von Änderungen, die in Ihrem Speicherkonto (oder asynchron) aufgetreten sind
- Authentifizierung: Authentifizieren Sie sich mit Verbindungszeichenfolgen, öffentlichem Zugriff, freigegebenen Schlüsseln, Shared Access Signatures und Azure Active Directory.
Mitwirken
Ausführliche Informationen zum Erstellen, Testen und Mitwirken zu dieser Bibliothek finden Sie unter Storage CONTRIBUTING.md .
Beiträge und Vorschläge für dieses Projekt sind willkommen. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. Weitere Informationen finden Sie unter cla.microsoft.com.
Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den häufig gestellten Fragen zum Verhaltenskodex. Sie können sich auch an opencode@microsoft.com wenden, wenn Sie weitere Fragen oder Anmerkungen haben.