Archiviere einen Blob

Die Archivebene ist eine Offline-Schicht zur Speicherung von Blob-Daten, die selten genutzt werden. Die Archivstufe bietet die niedrigsten Speicherkosten, aber höhere Kosten für die Datenabrufe und Latenz im Vergleich zu den Online-Stufen (heiß und kühl). Die Daten müssen sich mindestens 180 Tage lang auf der Archivspeicherebene befinden, sonst unterliegen sie einer Gebühr für frühe Löschung. Weitere Informationen zur Archiv-Ebene finden Sie unter Archivzugriffs-Ebene.

Solange sich ein Blob auf der Archivebene befindet, kann es nicht gelesen oder geändert werden. Um einen Blob in der Archiv-Ebene zu lesen oder herunterzuladen, müssen Sie ihn zunächst in eine Online-Ebene rehydrieren, entweder in die Ebene „Heiß“ oder „Kalt“. Abhängig von der Priorität, die Sie für den Aktivierungsvorgang angeben, kann es bis zu 15 Stunden dauern, bis die Daten auf der Archivebene aktiviert sind. Weitere Informationen zur Blobaktivierung finden Sie unter Übersicht über die Aktivierung von Blobs aus der Archivebene.

Vorsicht

Ein Blob im Archiv-Tier ist offline. Das heißt, sie kann nicht gelesen oder verändert werden, bis sie rehydriert ist. Der Rehydrierungsprozess kann mehrere Stunden dauern und mit entsprechenden Kosten verbunden sein. Bevor Sie Daten in die Archivschicht verschieben, überlegen Sie, ob das Offline-Nehmen von Blob-Daten Ihre Arbeitsabläufe beeinträchtigen kann.

Sie können das Azure Portal, PowerShell, Azure CLI oder eine der Azure Storage Client-Bibliotheken verwenden, um die Datenarchivierung zu verwalten.

Archiv-Blobs beim Hochladen

Um einen oder mehrere Blobs beim Hochladen zu archivieren, erstellen Sie den Blob direkt im Archivtier.

Um einen Blob oder eine Menge von Blobs beim Upload aus dem Azure-Portal zu archivieren, folgen Sie diesen Schritten:

  1. Navigieren Sie zum Zielcontainer.

  2. Wählen Sie die Schaltfläche Hochladen.

  3. Wählen Sie die Datei oder die Dateien aus, die Sie hochladen möchten.

  4. Erweitern Sie den Abschnitt Erweitert und setzen Sie die Zugriffsebene auf Archiv.

  5. Wählen Sie die Schaltfläche Hochladen.

    Screenshot, der zeigt, wie man Blobs im Azure-Portal auf die Archivstufe hochlädt.

Archiviere einen bestehenden Blob

Du kannst einen bestehenden Blob auf zwei Arten auf die Archivstufe verschieben:

  • Du kannst die Stufe eines Blobs mit der Set Blob Tier-Operation ändern. Set Blob Tier bewegt einen einzelnen Blob von einer Stufe zur nächsten.

    Beachte, dass du die Daten eines Blobs nicht lesen oder ändern kannst, wenn du ihn mit Set Blob Tier in die Archivstufe verschiebst, bis du den Blob rehydriert hast. Wenn Sie die Daten des Blobs lesen oder ändern müssen, bevor das frühe Löschintervall abgelaufen ist, sollten Sie eine Copy Blob-Operation in Betracht ziehen, um eine Kopie des Blobs in der Archivschicht zu erstellen.

  • Sie können einen Blob in einem Onlinetier mit dem Vorgang Copy Blob in das Archivtier kopieren. Du kannst die Operation Copy Blob aufrufen, um einen Blob von einer Online-Stufe (heiß oder cool) auf die Archiv-Stufe zu kopieren. Der Quellblob bleibt im Online-Tier, und du kannst seine Daten weiterhin im Online-Tier lesen oder verändern.

Archiviere einen bestehenden Blob, indem du seine Stufe änderst

Verwenden Sie den Vorgang Set Blob Tier, um einen Blob aus der heißen oder kalten Ebene in die Archivebene zu verschieben. Die Set Blob Tier-Operation eignet sich am besten für Szenarien, in denen Sie nicht auf die archivierten Daten zugriffen müssen, bevor das frühe Löschintervall abgelaufen ist.

Die Set Blob Tier-Operation ändert die Stufe eines einzelnen Blobs. Um eine Menge von Blobs mit optimaler Leistung in die Archivebene zu verschieben, empfiehlt Microsoft eine Bulk-Archivierungsoperation. Der Massenarchivierungsvorgang sendet in einer einzigen Transaktion mehrere Set Blob Tier-Aufrufe an den Dienst. Weitere Informationen finden Sie unter Massenarchivierung.

Um einen bestehenden Blob im Azure-Portal auf die Archivebene zu verschieben, folgen Sie diesen Schritten:

  1. Navigieren Sie zum Container des Blobs.

  2. Wählen Sie den Blob zum Archivieren aus.

  3. Wählen Sie die Schaltfläche "Stufen ändern " aus.

  4. Wählen Sie Archive aus dem Dropdownmenü Access tier aus.

  5. Wählen Sie Speichern aus.

    Screenshot, der zeigt, wie man die Stufe eines Blobs im Azure-Portal auf Archive setzt

Archiviere einen bestehenden Blob mit einer Kopieroperation

Verwenden Sie den Vorgang Copy Blob, um einen Blob aus der Hot- oder Cool-Ebene in die Archivebene zu kopieren. Der Quellblob bleibt in der heißen oder kalten Schicht, während der Ziel-Blob in der Archiv-Schicht erstellt wird.

Eine Copy Blob-Operation eignet sich am besten für Situationen, in denen Sie die archivierten Daten lesen oder bearbeiten müssen, bevor das frühe Löschintervall abgelaufen ist. Man kann auf die Daten des Quellblobs zugreifen, ohne den archivierten Blob rehydrieren zu müssen.

N/A

Massenarchivierung

Um Blobs in einen Container oder Ordner auf die Archivebene zu verschieben, zählen Sie Blobs auf und rufen Sie auf jedem die Set Blob Tier-Operation auf. Das folgende Beispiel zeigt, wie Sie diesen Vorgang ausführen:

N/A

Beim Verschieben einer großen Anzahl von Blobs auf die Archivebene verwenden Sie eine Batch-Operation für optimale Leistung. Ein Batchvorgang sendet mehrere API-Befehle mit einer einzelnen Anfrage an den Dienst. Zu den vom Blobbatchvorgang unterstützten Untervorgängen gehören Blob löschen und Blob-Ebene festlegen.

Um Blobs mit einer Batch-Operation zu archivieren, verwenden Sie eine der Azure Storage-Clientbibliotheken. Das folgende Codebeispiel zeigt, wie Sie einen einfachen Batchvorgang mit der .NET Clientbibliothek ausführen:

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

Ein ausführliches Beispiel, das zeigt, wie Sie Ebenen mit einem Batchvorgang ändern, finden Sie unter AzBulkSetBlobTier.

Verwenden Sie Lebenszyklusverwaltungsrichtlinien, um Blobs zu archivieren

Man kann die Kosten für selten abgerufene Blob-Daten optimieren, indem man Lebenszyklus-Management-Richtlinien erstellt, die Blobs automatisch auf die Archivebene verschieben, wenn sie für einen bestimmten Zeitraum nicht abgerufen oder verändert wurden. Nachdem du eine Lebenszyklus-Management-Richtlinie konfiguriert hast, führt Azure Storage sie einmal täglich aus. Weitere Informationen zu Lebenszyklus-Management-Richtlinien finden Sie unter Kosten optimieren durch automatisches Management des Datenlebenszyklus.

Sie können das Azure-Portal, PowerShell, Azure CLI oder eine Azure Resource Manager-Vorlage verwenden, um eine Lebenszyklus-Management-Richtlinie zu erstellen. Der Einfachheit halber zeigt dieser Abschnitt, wie man eine Lebenszyklus-Management-Richtlinie nur im Azure-Portal erstellt. Für weitere Beispiele, die zeigen, wie man Lebenszyklus-Management-Richtlinien erstellt, siehe Konfigurieren einer Lebenszyklus-Management-Richtlinie.

Vorsicht

Bevor Sie eine Lebenszyklus-Management-Richtlinie verwenden, um Daten in die Archivschicht zu verschieben, überprüfen Sie, dass diese Daten mindestens 180 Tage lang nicht gelöscht oder auf eine andere Ebene verschoben werden müssen. Daten, die vor Ablauf des 180-Tage-Zeitraums gelöscht oder in eine andere Stufe verschoben werden, unterliegen einer Gebühr für eine vorzeitige Löschung.

Beachten Sie auch, dass die Daten im Archiv-Tier rehydratisiert werden müssen, bevor sie gelesen oder verändert werden können. Das Rehydrieren eines Blobs aus der Archivstufe kann mehrere Stunden dauern und ist mit zusätzlichen Kosten verbunden.

Um eine Lebenszyklus-Management-Richtlinie zur Archivierung von Blobs im Azure-Portal zu erstellen, folgen Sie diesen Schritten:

Schritt 1: Erstellen Sie die Regel und geben Sie den Blob-Typ an

  1. Navigieren Sie im Portal zu Ihrem Speicherkonto.

  2. Unter Datenmanagement suchen Sie die Einstellungen für Lebenszyklusverwaltung .

  3. Wählen Sie die Schaltfläche "Regel hinzufügen ".

  4. Geben Sie auf der Details-Registerkarte Ihrer Regel einen Namen.

  5. Spezifizieren Sie den Regelumfang: Entweder wenden Sie die Regel auf alle Blobs in Ihrem Speicherkonto an oder limitieren Sie Blobs mit Filtern.

  6. Wählen Sie die Arten von Blobs aus, für die die Regel angewendet werden soll, und geben Sie an, ob Blob-Snapshots oder Versionen enthalten sein sollen.

    Screenshot, der zeigt, wie man eine Lebenszyklus-Management-Richtlinie konfiguriert – Reiter Details.

Schritt 2: Fügen Sie Regelbedingungen hinzu

  1. Je nach deiner Auswahl kannst du Regeln für Basis-Blobs (aktuelle Versionen), frühere Versionen oder Blob-Snapshots konfigurieren. Geben Sie eine von zwei Bedingungen an, auf die Sie achten sollten:

    • Objekte wurden zuletzt vor einigen Tagen verändert.
    • Objekte wurden vor einigen Tagen erstellt.
    • Die Objekte wurden vor einigen Tagen zuletzt abgerufen.

    Nur eine dieser Bedingungen kann angewendet werden, um einen bestimmten Objekttyp gemäß der Regel auf die Archivebene zu verschieben. Wenn du zum Beispiel eine Aktion definierst, die Basisblobs archiviert, wenn sie seit 90 Tagen nicht verändert wurden, kannst du auch keine Aktion definieren, die Basisblobs archiviert, wenn sie seit 90 Tagen nicht abgerufen wurden. Ebenso kannst du pro Regel eine Aktion mit einer dieser Bedingungen definieren, um frühere Versionen zu archivieren, und eine für das Archivieren von Snapshots.

  2. Als Nächstes geben Sie die Anzahl der Tage an, die nach der Änderung oder dem Zugriff auf das Objekt vergehen müssen.

  3. Geben Sie an, dass das Objekt nach Ablauf des Intervalls in die Archivebene verschoben werden soll.

    Screenshot, der zeigt, wie man eine Lebenszyklus-Management-Richtlinie konfiguriert – Basis-Blob-Tab.

  4. Wenn du dich entscheidest, die von der Regel betroffenen Blobs mit Filtern zu begrenzen, kannst du einen Filter angeben, entweder mit einem Blob-Präfix oder einem Blob-Index-Match.

Schritt 3: Stellen Sie sicher, dass die Regel rehydrierte Klumpen ausschließt

Wenn Sie einen Blob durch Ändern seiner Stufe rehydrieren, verschiebt diese Regel den Blob zurück in die Archivstufe, wenn die letzte Änderungszeit, die Erstellungszeit oder die letzte Zugriffszeit den in der Richtlinie festgelegten Schwellenwert überschreitet.

Wenn Sie die Regelbedingung Zuletzt geändert ausgewählt haben, können Sie dies verhindern, indem Sie Blobs überspringen, die in den letzten rehydriert wurden, und dann die Anzahl der Tage eingeben, für die ein rehydrierter Blob von dieser Regel ausgeschlossen werden soll.

Screenshot, der die Skip-Blobs zeigt, die in der letzten Einstellung rehydriert wurden.

Note

Diese Option erscheint nur, wenn du die Bedingung der zuletzt geänderten Regel ausgewählt hast.

Wählen Sie die Schaltfläche "Hinzufügen ", um die Regel zur Richtlinie hinzuzufügen.

Sehen Sie sich das JSON der Richtlinie an

Nachdem Sie die Lebenszyklus-Management-Policy erstellt haben, können Sie das JSON für die Richtlinie auf der Lifecycle Management-Seite anzeigen, indem Sie von der Listenansicht zur Code-Ansicht wechseln.

Hier ist das JSON für die einfache Richtlinie für die Lebenszyklusverwaltung, die in den oben gezeigten Abbildungen erstellt wurde:

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

Siehe auch