Archiver un objet blob

Le niveau d’archive est un niveau hors ligne permettant de stocker des données blob rarement consultées. Le niveau d'archive offre les coûts de stockage les plus bas, mais des coûts de récupération des données et une latence plus élevés que les niveaux en ligne (chaud et froid). Les données doivent rester dans le niveau d’accès archive pendant au moins 180 jours ; sinon, elles sont soumises à des frais de suppression anticipée. Pour plus d'informations sur le niveau d'archive, consultez Niveau d'accès aux archives.

Tant qu'un objet blob se trouve dans le niveau Archive, il ne peut être ni lu ni modifié. Pour lire ou télécharger un objet blob dans le niveau Archive, vous devez d’abord le réactiver sur un niveau en ligne, chaud ou froid. La réhydratation des données dans le niveau archive peut prendre jusqu’à 15 heures, en fonction de la priorité que vous spécifiez pour l’opération de réhydratation. Pour plus d’informations sur la réactivation des objets blob, consultez Vue d’ensemble de la réactivation d’objets blob à partir du niveau Archive.

Attention

Un objet blob du niveau archive est hors ligne. Autrement dit, il ne peut être ni lu ni modifié tant qu’il n’est pas réhydraté. Le processus de réhydratation peut prendre plusieurs heures et comporte des coûts. Avant de déplacer des données vers le niveau d'archivage, déterminez si la mise hors ligne des données blob peut affecter vos flux de travail.

Vous pouvez utiliser le Portail Azure, PowerShell, Azure CLI ou l’une des bibliothèques clientes Stockage Azure pour gérer l’archivage des données.

Archiver les objets blob lors de leur chargement

Pour archiver un ou plusieurs objets blob lors du téléchargement, créez l’objet blob directement dans le niveau d’archive.

Pour archiver un objet blob ou un ensemble d’objets blob lors de leur chargement à partir du Portail Azure, procédez comme suit :

  1. Accédez au conteneur cible.

  2. Cliquez sur le bouton Charger.

  3. Sélectionnez le ou les fichiers à charger.

  4. Développez la section Avancé et définissez le Niveau d’accès sur Archive.

  5. Cliquez sur le bouton Charger.

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

Archiver un objet blob existant

Vous pouvez déplacer un objet blob existant vers le niveau archive de deux manières :

  • Vous pouvez modifier le niveau d’un objet blob à l’aide de l’opération Définir le niveau du blob. L’opération Définir le niveau du blob déplace un seul objet blob d’un niveau vers un autre.

    Gardez à l’esprit que lorsque vous déplacez un objet blob vers le niveau d’archive avec Set Blob Tier, vous ne pouvez pas lire ou modifier les données de l’objet blob tant que vous n’avez pas réhydraté l’objet blob. Si vous devez lire ou modifier les données de l’objet blob avant l’expiration de l’intervalle de suppression anticipée, envisagez d’utiliser une opération Copier l’objet blob pour créer une copie de l’objet blob dans le niveau d’archive.

  • Vous pouvez copier un objet blob d’un niveau en ligne vers le niveau d’archive à l’aide de l’opération Copier un objet blob. Vous pouvez appeler l’opération Copier un objet blob pour copier un objet blob d’un niveau en ligne (chaud ou froid) vers le niveau archive. L’objet blob source reste dans le niveau en ligne et vous pouvez continuer à lire ou modifier ses données dans le niveau en ligne.

Archiver un objet blob existant en modifiant son niveau

Utilisez l’opération Définir le niveau Blob pour déplacer un blob du niveau Chaud ou Cool vers le niveau Archive. L’opération Définir le niveau du blob est idéale pour les scénarios où vous n’aurez pas besoin d’accéder aux données archivées avant l’expiration de l’intervalle de suppression anticipée.

L’opération Définir le niveau du blob modifie le niveau d’un seul objet blob. Pour déplacer un ensemble d’objets blob vers le niveau archive avec des performances optimales, Microsoft recommande d’effectuer une opération d’archivage en bloc. L’opération d’archivage en bloc envoie un lot d’appels Définir le niveau du blob au service dans une seule transaction. Pour plus d’informations, consultez Archivage en bloc.

Pour déplacer un objet blob existant vers le niveau archive dans le portail Azure, procédez comme suit :

  1. Accédez au conteneur de l’objet blob.

  2. Sélectionnez l’objet blob à archiver.

  3. Sélectionnez le bouton Modifier le niveau.

  4. Sélectionnez Archiver dans la liste déroulante Niveau d’accès.

  5. Cliquez sur Enregistrer.

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

Archiver un objet blob existant avec une opération de copie

Utilisez l’opération Copier un objet blob pour copier un objet blob du niveau chaud ou froid vers le niveau archive. L’objet blob source reste dans le niveau chaud ou froid, tandis que l’objet blob de destination est créé dans le niveau archive.

L’opération Copier l’objet blob est idéale pour les scénarios où vous avez éventuellement besoin de lire ou modifier les données archivées avant l’expiration de l’intervalle de suppression anticipée. Vous pouvez accéder aux données de l’objet blob source sans avoir à réhydrater l’objet blob archivé.

N/A

Archivage en bloc

Pour déplacer des objets blob vers le niveau archive dans un conteneur ou un dossier, énumérez les objets blob et appelez l’opération Définir le niveau de l’objet blob sur chacun d’eux. L’exemple suivant montre comment effectuer cette opération :

N/A

Lorsque vous déplacez un grand nombre d’objets blob vers le niveau d’archive, utilisez une opération par lots pour des performances optimales. Une opération de traitement par lots envoie plusieurs appels d’API au service avec une seule requête. Les sous-opérations prises en charge par l’opération Traitement par lot des objets blob incluent Supprimer l’objet blob et Définir le niveau du blob.

Pour archiver des objets blob avec une opération de traitement par lots, utilisez l’une des bibliothèques clientes Stockage Azure. L’exemple de code suivant montre comment effectuer une opération de traitement par lots de base avec la bibliothèque cliente .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);
    }
}

Pour voir un exemple d’application détaillé qui montre comment modifier des niveaux à l’aide d’une opération de traitement par lots, consultez AzBulkSetBlobTier.

Utiliser des stratégies de gestion de cycle de vie pour archiver des objets blob

Vous pouvez optimiser les coûts des données blob rarement consultées en créant des politiques de gestion du cycle de vie qui déplacent automatiquement les objets blob vers le niveau d'archivage lorsqu'ils n'ont pas été consultés ou modifiés pendant une période de temps spécifiée. Une fois que vous avez configuré une stratégie de gestion de cycle de vie, Stockage Azure l’exécute une fois par jour. Pour plus d’informations sur les stratégies de gestion de cycle de vie, consultez Optimiser les coûts en gérant automatiquement le cycle de vie des données.

Vous pouvez utiliser le portail Azure, PowerShell, Azure CLI ou un modèle Azure Resource Manager pour créer une stratégie de gestion de cycle de vie. Par souci de simplicité, cette section montre comment créer une stratégie de gestion de cycle de vie dans le portail Azure uniquement. Pour obtenir des exemples supplémentaires montrant comment créer des stratégies de gestion de cycle de vie, consultez Configurer une stratégie de gestion de cycle de vie.

Attention

Avant d'utiliser une stratégie de gestion du cycle de vie pour déplacer des données vers le niveau d'archivage, vérifiez que ces données n'ont pas besoin d'être supprimées ou déplacées vers un autre niveau pendant au moins 180 jours. Les données qui sont supprimées ou déplacées vers un autre niveau avant l’expiration de la période de 180 jours sont soumises à des frais de suppression anticipée.

Gardez également à l’esprit que les données du niveau archive doivent être réhydratées avant de pouvoir être lues ou modifiées. La réhydratation d’un blob à partir du niveau archive peut prendre plusieurs heures et entraîner des coûts associés.

Pour créer une stratégie de gestion de cycle de vie pour l’archivage des objets blob dans le portail Azure, procédez comme suit :

Étape 1 : Créer la règle et spécifier le type d’objet blob

  1. Accédez à votre compte de stockage dans le portail.

  2. Sous Gestion des données, recherchez les paramètres de Gestion du cycle de vie.

  3. Sélectionnez le bouton Ajouter une règle.

  4. Sous l’onglet Détails, spécifiez un nom pour votre règle.

  5. Spécifiez l’étendue de la règle : Appliquer la règle à tous les objets blob de votre compte de stockage ou Limiter les objets blob avec des filtres.

  6. Sélectionnez les types d’objets blob auxquels la règle doit être appliquée et spécifiez s’il faut inclure les versions ou les instantanés d’objet blob.

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

Étape 2 : Ajouter des conditions de règle

  1. Selon vos sélections, vous pouvez configurer des règles pour les objets blob de base (versions actuelles), les versions précédentes ou les instantanés d’objets blob. Spécifiez une des deux conditions à vérifier :

    • Les objets ont été modifiés pour la dernière fois il y a un certain nombre de jours.
    • Les objets ont été créés il y a un certain nombre de jours.
    • Les objets ont été consultés pour la dernière fois il y a un certain nombre de jours.

    Une seule de ces conditions peut être appliquée pour déplacer un type particulier d’objet vers le niveau d’archive par règle. Par exemple, si vous définissez une action qui archive les objets blob de base s’ils n’ont pas été modifiés depuis 90 jours, vous ne pouvez pas définir une action qui archive les objets blob de base si ces derniers n’ont pas été consultés depuis 90 jours. De même, vous pouvez définir une action par règle avec l’une de ces conditions pour archiver les versions précédentes et une autre pour archiver des instantanés.

  2. Spécifiez ensuite le nombre de jours devant s’écouler après la modification ou l’accès à l’objet.

  3. Spécifiez que l'objet doit être déplacé vers le niveau d'archive une fois l'intervalle écoulé.

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

  4. Si vous avez choisi de limiter les objets blob affectés par la règle à l’aide de filtres, vous pouvez spécifier un filtre, avec un préfixe d’objet blob ou une correspondance d’index d’objet blob.

Étape 3 : Vérifier que la règle exclut les objets blob réhydratés

Si vous réhydratez un objet blob en changeant son niveau, cette règle redéplace l’objet blob au niveau archive si l’heure de dernière modification, l’heure de création ou l’heure de dernier accès est au-delà du seuil défini pour la stratégie.

Si vous avez sélectionné la condition de règle Dernière modification, vous pouvez empêcher cela de se produire en sélectionnant Ignorer les objets blob qui ont été réalimentés au cours de la dernière, puis en entrant le nombre de jours pour lequel vous souhaitez qu’un objet blob réhydraté soit exclu de cette règle.

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

Remarque

Cette option s’affiche uniquement si vous avez sélectionné la condition de règle Dernière modification.

Sélectionnez le bouton Ajouter pour ajouter la règle à la stratégie.

Afficher le JSON de stratégie

Une fois que vous avez créé la stratégie de gestion de cycle de vie, vous pouvez afficher le code JSON de la stratégie sur la page Gestion de cycle de vie en basculant du mode Liste au mode Code.

Voici le code JSON pour la stratégie de gestion du cycle de vie simple créée dans les images ci-dessus :

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

Voir aussi