Megosztás a következőn keresztül:


Azure Storage-blobok változáscsatorna-ügyfélkódtára a .NET-hez – 12.0.0-preview.33-es verzió

Kiszolgáló verziója: 2021-02-12, 2020-12-06, 2020-10-02, 2020-08-04, 2020-06-12 2020-04-08, 2020-02-10 és 2019-12-12

A változáscsatorna célja, hogy tranzakciónaplókat adjon meg a blobok és a tárfiók blob-metaadatainak változásairól. A változáscsatorna rendezett, garantált, tartós, nem módosítható, írásvédett naplót biztosít ezekről a változásokról. Az ügyfélalkalmazások bármikor elolvashatják ezeket a naplókat. A változáscsatorna lehetővé teszi, hogy hatékony és méretezhető megoldásokat hozzon létre, amelyek alacsony költséggel dolgozzák fel a Blob Storage-fiókban előforduló változáseseményeket.

Forráskód | Csomag (NuGet) | Termékdokumentáció

Első lépések

A csomag telepítése

Telepítse az Azure Storage Blobs ügyfélkódtárat a .NET-hez a NuGet használatával:

dotnet add package Azure.Storage.Blobs.ChangeFeed --prerelease

Előfeltételek

A csomag használatához Azure-előfizetésre és tárfiókra van szüksége.

Új tárfiók létrehozásához használhatja az Azure Portalt, Azure PowerShell vagy az Azure CLI-t. Íme egy példa az Azure CLI használatával:

az storage account create --name MyStorageAccount --resource-group MyResourceGroup --location westus --sku Standard_LRS

Az ügyfél hitelesítése

A hitelesítés ugyanúgy működik, mint az Azure.Storage.Blobsban.

Fő fogalmak

A változáscsatorna blobként van tárolva egy speciális tárolóban a tárfiókban standard blob díjszabási költséggel. A fájlok megőrzési időtartamát a követelmények alapján szabályozhatja (lásd az aktuális kiadás feltételeit). A változási események rekordként vannak hozzáfűzve a változáscsatornához az Apache Avro formátumspecifikációjában: egy kompakt, gyors bináris formátum, amely részletes adatstruktúrákat és beágyazott sémát biztosít. Ezt a formátumot széles körben használják a Hadoop-ökoszisztémában, a Stream Analyticsben és a Azure Data Factory.

Ezeket a naplókat növekményesen vagy teljes egészében is feldolgozhatja. Tetszőleges számú ügyfélalkalmazás képes egymástól függetlenül olvasni a változáscsatornát, párhuzamosan és a saját tempójukban. Az olyan elemzési alkalmazások, mint az Apache Drill vagy az Apache Spark, közvetlenül Avro-fájlokként használhatják fel a naplókat, így alacsony költséggel, nagy sávszélességgel és egyéni alkalmazás írása nélkül dolgozhatják fel őket.

Menetbiztonság

Garantáljuk, hogy minden ügyfélpéldány-metódus szálbiztos és független egymástól (iránymutatás). Ez biztosítja, hogy az ügyfélpéldányok újrafelhasználására vonatkozó javaslat mindig biztonságos legyen, még a szálak között is.

További fogalmak

Ügyfélbeállítások | A válasz | elérése Hosszú ideig futó műveletek | Hibák | kezelése Diagnosztika | Gúnyos | Ügyfélélettartam

Példák

A változáscsatorna összes eseményének lekérése

// Get all the events in the change feed.
List<BlobChangeFeedEvent> changeFeedEvents = new List<BlobChangeFeedEvent>();
await foreach (BlobChangeFeedEvent changeFeedEvent in changeFeedClient.GetChangesAsync())
{
    changeFeedEvents.Add(changeFeedEvent);
}

Események lekérése kezdés és befejezés között

// 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);
}

Folytatás folytatássalToken

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);
}

Hibaelhárítás

Minden Blob-szolgáltatásművelet egy RequestFailedException hibát jelez hasznos ErrorCodes-vel. Számos ilyen hiba helyreállítható.

Következő lépések

Ismerkedés a változáscsatorna-mintákkal:

  1. "Helló világ!" alkalmazás: A tárfiókban (vagy aszinkron módon) végrehajtott módosítások lekérése
  2. Hitelesítés: Hitelesítés kapcsolati sztringekkel, nyilvános hozzáféréssel, megosztott kulcsokkal, közös hozzáférésű jogosultságkódokkal és Azure Active Directoryval.

Közreműködés

A tár létrehozásával, tesztelésével és közreműködésével kapcsolatos részletekért tekintse meg a Tár CONTRIBUTING.md .

A projektben szívesen fogadjuk a hozzájárulásokat és a javaslatokat. A legtöbb hozzájáruláshoz el kell fogadnia egy Közreműködői licencszerződést (CLA-t), amelyben kijelenti, hogy jogosult arra, hogy ránk ruházza hozzájárulása felhasználási jogát, és ezt ténylegesen meg is teszi. A részletekért látogasson el a cla.microsoft.com.

A projekt a Microsoft nyílt forráskódú projekteket szabályozó etikai kódexe, a Microsoft Open Source Code of Conduct hatálya alá esik. További információkért lásd a viselkedési szabályzattal kapcsolatos gyakori kérdéseket , vagy vegye fel a kapcsolatot opencode@microsoft.com az esetleges további kérdésekkel vagy megjegyzésekkel.