Archivace objektu blob

Archivní úroveň je offline vrstva pro ukládání dat objektů blob, ke kterým se přistupuje jen zřídka. Archivní úroveň nabízí nejnižší náklady na úložiště, ale vyšší náklady na načítání dat a latenci v porovnání s online úrovněmi (horkou a studenou). Data musí zůstat v archivní úrovni po dobu minimálně 180 dní, jinak se na ně vztahují poplatky za předčasné odstranění. Další informace o archivní úrovni naleznete v tématu Archivní úroveň přístupu.

I když je objekt blob v archivní úrovni, nedá se číst ani upravovat. Pokud chcete číst nebo stáhnout objekt blob v archivní úrovni, musíte ho nejprve dosadit na online úroveň, buď horkou, nebo studenou. Dosazování dat v archivní úrovni může trvat až 15 hodin v závislosti na prioritě, kterou zadáte pro operaci dosazování. Další informace o dosazování objektů blob najdete v tématu Přehled dosazování objektů blob z archivní úrovně.

Upozornění

Objekt blob v archivní úrovni je offline. To znamená, že nelze číst ani upravovat, dokud se nenasadí. Proces dosazování může trvat několik hodin a má přidružené náklady. Než přesunete data do archivní vrstvy, zvažte, jestli může přechod dat objektů blob do offline režimu ovlivnit vaše pracovní postupy.

Ke správě archivace dat můžete použít Azure Portal, PowerShell, Azure CLI nebo jednu z klientských knihoven služby Azure Storage.

Archivace objektů blob při nahrání

Pokud chcete archivovat jeden nebo více objektů blob při nahrání, vytvořte objekt blob přímo v archivní úrovni.

Pokud chcete archivovat objekt blob nebo sadu objektů blob při nahrávání z webu Azure Portal, postupujte takto:

  1. Přejděte do cílového kontejneru.

  2. vyberte tlačítko Nahrát.

  3. Vyberte soubor nebo soubory, které chcete nahrát.

  4. Rozbalte část Upřesnit a nastavte úroveň Přístupu na Archiv.

  5. vyberte tlačítko Nahrát.

    Screenshot showing how to upload blobs to the archive tier in the Azure portal.

Archivace existujícího objektu blob

Existující objekt blob můžete přesunout do archivní úrovně jedním ze dvou způsobů:

  • Úroveň objektu blob můžete změnit pomocí operace Nastavit úroveň objektu blob. Nastavit úroveň objektu blob přesune jeden objekt blob z jedné vrstvy do jiné.

    Mějte na paměti, že když přesunete objekt blob do archivní úrovně s nastavenou úrovní objektů blob, nebudete moct číst ani upravovat data objektu blob, dokud objekt blob znovu dosadíte. Pokud možná budete muset číst nebo upravovat data objektu blob před uplynutím intervalu předčasného odstranění, zvažte použití operace kopírování objektu blob k vytvoření kopie objektu blob v archivní úrovni.

  • Objekt blob v online vrstvě můžete zkopírovat do archivní vrstvy pomocí operace Kopírovat objekt blob . Operaci kopírování objektu blob můžete volat a zkopírovat objekt blob z online vrstvy (horké nebo studené) do archivní úrovně. Zdrojový objekt blob zůstává v online vrstvě a můžete pokračovat ve čtení nebo úpravě dat v online vrstvě.

Archivace existujícího objektu blob změnou jeho úrovně

Pomocí operace Nastavit úroveň objektu blob přesuňte objekt blob z horké nebo studené úrovně na archivní úroveň. Operace nastavit úroveň objektu blob je nejvhodnější pro scénáře, kdy nebudete potřebovat přístup k archivovaným datům, než uplynul interval předčasného odstranění.

Operace Nastavit úroveň objektu blob změní úroveň jednoho objektu blob. Pokud chcete přesunout sadu objektů blob na archivní úroveň s optimálním výkonem, microsoft doporučuje provést hromadnou operaci archivace. Hromadná operace archivace odesílá do služby dávku volání set Blob Tier v jedné transakci. Další informace naleznete v tématu Hromadné archivace.

Pokud chcete existující objekt blob přesunout na archivní vrstvu na webu Azure Portal, postupujte takto:

  1. Přejděte do kontejneru objektu blob.

  2. Vyberte objekt blob, který chcete archivovat.

  3. Vyberte tlačítko Změnit úroveň.

  4. V rozevíracím seznamu Úrovně accessu vyberte Archiv.

  5. Zvolte Uložit.

    Screenshot showing how to set a blob's tier to Archive in the Azure portal

Archivace existujícího objektu blob pomocí operace kopírování

Pomocí operace kopírování objektu blob zkopírujte objekt blob z horké nebo studené úrovně do archivní úrovně. Zdrojový objekt blob zůstane v horké nebo studené úrovni, zatímco cílový objekt blob se vytvoří v archivní úrovni.

Operace kopírování objektů blob je nejvhodnější pro scénáře, kdy možná budete muset před uplynutím počátku intervalu odstranění přečíst nebo upravit archivovaná data. K datům zdrojového objektu blob se dostanete bez nutnosti dosazování archivovaného objektu blob.

Hromadný archiv

Pokud chcete přesunout objekty blob do archivní úrovně v kontejneru nebo složce, vytvořte výčet objektů blob a zavolejte operaci Nastavit úroveň objektů blob na každém z nich. Následující příklad ukazuje, jak provést tuto operaci:

Při přesunu velkého počtu objektů blob do archivní úrovně použijte dávkovou operaci pro optimální výkon. Dávková operace odesílá službě více volání rozhraní API s jediným požadavkem. Mezi podoperace podporované operací Batch objektů blob patří odstranění objektu blob a nastavení úrovně objektu blob.

Pokud chcete archivovat objekty blob pomocí dávkové operace, použijte jednu z klientských knihoven azure Storage. Následující příklad kódu ukazuje, jak provést základní dávkovou operaci s klientskou knihovnou .NET:

static async Task BulkArchiveContainerContents(string accountName, string containerName)
{
    string containerUri = string.Format("https://{0}.blob.core.windows.net/{1}",
                                    accountName,
                                    containerName);

    // Get container client, using Azure AD credentials.
    BlobUriBuilder containerUriBuilder = new BlobUriBuilder(new Uri(containerUri));
    BlobContainerClient blobContainerClient = new BlobContainerClient(containerUriBuilder.ToUri(), 
                                                                      new DefaultAzureCredential());

    // Get URIs for blobs in this container and add to stack.
    var uris = new Stack<Uri>();
    await foreach (var item in blobContainerClient.GetBlobsAsync())
    {
        uris.Push(blobContainerClient.GetBlobClient(item.Name).Uri);
    }

    // Get the blob batch client.
    BlobBatchClient blobBatchClient = blobContainerClient.GetBlobBatchClient();

    try
    {
        // Perform the bulk operation to archive blobs.
        await blobBatchClient.SetBlobsAccessTierAsync(blobUris: uris, accessTier: AccessTier.Archive);
    }
    catch (RequestFailedException e)
    {
        Console.WriteLine(e.Message);
    }
}

Podrobnou ukázkovou aplikaci, která ukazuje, jak změnit úrovně pomocí dávkové operace, najdete v tématu AzBulkSetBlobTier.

Použití zásad správy životního cyklu k archivaci objektů blob

Náklady na data objektů blob, ke kterým se přistupuje zřídka, můžete optimalizovat vytvořením zásad správy životního cyklu, které automaticky přesunou objekty blob do archivní úrovně, pokud nebyly po určitou dobu přístupné nebo změněné. Jakmile nakonfigurujete zásady správy životního cyklu, Azure Storage je spustí jednou denně. Další informace ozásadách

K vytvoření zásad správy životního cyklu můžete použít Azure Portal, PowerShell, Azure CLI nebo šablonu Azure Resource Manageru. Pro zjednodušení se v této části dozvíte, jak vytvořit zásady správy životního cyklu jenom na webu Azure Portal. Další příklady ukazující, jak vytvořit zásady správy životního cyklu, najdete v tématu Konfigurace zásad správy životního cyklu.

Upozornění

Než použijete zásadu správy životního cyklu k přesunu dat do archivní vrstvy, ověřte, že data nemusí být odstraněna nebo přesunuta do jiné vrstvy nejméně po dobu 180 dnů. Data odstraněná nebo přesunutá na jinou úroveň před uplynutím 180denního období podléhají poplatku za předčasné odstranění.

Mějte také na paměti, že data v archivní vrstvě musí být před čtením nebo úpravou rehydrována. Dosazování objektu blob z archivní úrovně může trvat několik hodin a má přidružené náklady.

Pokud chcete vytvořit zásadu správy životního cyklu pro archivaci objektů blob na webu Azure Portal, postupujte takto:

Krok 1: Vytvoření pravidla a zadání typu objektu blob

  1. Na portálu přejděte ke svému účtu úložiště.

  2. V části Správa dat vyhledejte nastavení správy životního cyklu.

  3. Vyberte tlačítko Přidat pravidlo.

  4. Na kartě Podrobnosti zadejte název pravidla.

  5. Zadejte obor pravidla: Použijte pravidlo u všech objektů blob v účtu úložiště nebo omezte objekty blob pomocí filtrů.

  6. Vyberte typy objektů blob, pro které se má pravidlo použít, a určete, jestli se mají zahrnout snímky nebo verze objektů blob.

    Screenshot showing how to configure a lifecycle management policy - Details tab.

Krok 2: Přidání podmínek pravidla

  1. V závislosti na výběru můžete nakonfigurovat pravidla pro základní objekty blob (aktuální verze), předchozí verze nebo snímky objektů blob. Zadejte jednu ze dvou podmínek, které chcete zkontrolovat:

    • Objekty byly naposledy změněny před několika dny.
    • Objekty byly vytvořeny před několika dny.
    • Objekty byly naposledy přístupné před několika dny.

    Pro přesunutí konkrétního typu objektu na archivní úroveň na pravidlo lze použít pouze jednu z těchto podmínek. Pokud například definujete akci, která archivuje základní objekty blob, pokud nebyly změněny po dobu 90 dnů, nemůžete také definovat akci, která archivuje základní objekty blob, pokud nebyly přístupné po dobu 90 dnů. Podobně můžete definovat jednu akci pro každé pravidlo s některou z těchto podmínek pro archivaci předchozích verzí a jednu pro archivní snímky.

  2. Dále zadejte počet dní, které uplynuly po změně nebo přístupu k objektu.

  3. Určete, že se objekt má přesunout do archivní vrstvy po uplynutí intervalu.

    Screenshot showing how to configure a lifecycle management policy - Base blob tab.

  4. Pokud jste se rozhodli omezit objekty blob ovlivněné pravidlem pomocí filtrů, můžete zadat filtr s předponou objektu blob nebo indexem objektů blob.

Krok 3: Ujistěte se, že pravidlo vylučuje rehydrované objekty blob.

Pokud dosazujete objekt blob změnou jeho úrovně, toto pravidlo přesune objekt blob zpět do archivní vrstvy, pokud čas poslední změny, čas vytvoření nebo čas posledního přístupu překročí prahovou hodnotu nastavenou pro zásadu.

Pokud jste vybrali podmínku pravidla poslední úpravy , můžete tomu zabránit tak, že vyberete Přeskočit objekty blob, které byly dosazovány za poslední, a potom zadáte počet dnů, po které se má rehydrovaný objekt blob vyloučit z tohoto pravidla.

Screenshot showing the skip blobs that have been rehydrated in the last setting.

Poznámka:

Tato možnost se zobrazí jenom v případě, že jste vybrali podmínku pravidla poslední změny .

Vyberte tlačítko Přidat a přidejte pravidlo do zásady.

Zobrazení kódu JSON zásad

Po vytvoření zásad správy životního cyklu můžete zobrazit JSON pro zásadu na stránce správa životního cyklu přepnutím ze zobrazení Seznam na zobrazení kódu.

Tady je JSON pro jednoduché zásady správy životního cyklu vytvořené na obrázcích uvedených výše:

{
  "rules": [
    {
      "enabled": true,
      "name": "sample-archive-rule",
      "type": "Lifecycle",
      "definition": {
        "actions": {
          "baseBlob": {
            "tierToArchive": {
              "daysAfterLastAccessTimeGreaterThan": 90,
              "daysAfterLastTierChangeGreaterThan": 7
            }
          }
        },
        "filters": {
          "blobTypes": [
            "blockBlob"
          ]
        }
      }
    }
  ]
}

Viz také