Arkivera en blob
Arkivnivån är en offlinenivå för lagring av blobdata som sällan används. Arkivnivån erbjuder de lägsta lagringskostnaderna, men högre kostnader för datahämtning och svarstid jämfört med onlinenivåerna (frekvent och lågfrekvent). Data måste ligga kvar på arkivlagringsnivån i minst 180 dagar, annars debiteras du en avgift för tidig borttagning. Mer information om arkivnivån finns i Arkivåtkomstnivå.
När en blob finns på arkivnivån kan den inte läsas eller ändras. Om du vill läsa eller ladda ned en blob på arkivnivån måste du först extrahera den till en onlinenivå, antingen frekvent eller lågfrekvent. Data på arkivnivån kan ta upp till 15 timmar att extrahera, beroende på vilken prioritet du anger för återfuktningsåtgärden. Mer information om blobrehydrering finns i Översikt över blobrehydrering från arkivnivån.
Varning
En blob på arkivnivån är offline. Den kan alltså inte läsas eller ändras förrän den är uttorkad. Rehydreringsprocessen kan ta flera timmar och har tillhörande kostnader. Innan du flyttar data till arkivnivån bör du överväga om det kan påverka dina arbetsflöden att ta blobdata offline.
Du kan använda Azure-portalen, PowerShell, Azure CLI eller något av Azure Storage-klientbiblioteken för att hantera dataarkivering.
Arkivera blobar vid uppladdning
Om du vill arkivera en eller flera blobar vid uppladdning skapar du bloben direkt på arkivnivån.
Följ dessa steg om du vill arkivera en blob eller uppsättning blobar vid uppladdning från Azure-portalen:
Navigera till målcontainern.
Välj knappen Ladda upp.
Välj den fil eller de filer som ska laddas upp.
Expandera avsnittet Avancerat och ange åtkomstnivån till Arkiv.
Välj knappen Ladda upp.
Arkivera en befintlig blob
Du kan flytta en befintlig blob till arkivnivån på något av två sätt:
Du kan ändra en blobnivå med åtgärden Ange blobnivå . Ange blobnivå flyttar en enskild blob från en nivå till en annan.
Tänk på att när du flyttar en blob till arkivnivån med Ange blobnivå kan du inte läsa eller ändra blobens data förrän du har extraherat bloben. Om du kan behöva läsa eller ändra blobens data innan det tidiga borttagningsintervallet har förflutit kan du överväga att använda en kopieringsblobåtgärd för att skapa en kopia av bloben på arkivnivån.
Du kan kopiera en blob på en onlinenivå till arkivnivån med åtgärden Kopiera blob . Du kan anropa åtgärden Kopiera blob för att kopiera en blob från en onlinenivå (frekvent eller lågfrekvent) till arkivnivån. Källbloben finns kvar på onlinenivån och du kan fortsätta att läsa eller ändra dess data på onlinenivån.
Arkivera en befintlig blob genom att ändra dess nivå
Använd åtgärden Ange blobnivå för att flytta en blob från frekvent eller lågfrekvent nivå till arkivnivån. Åtgärden Ange blobnivå passar bäst för scenarier där du inte behöver komma åt arkiverade data innan det tidiga borttagningsintervallet har förflutit.
Åtgärden Ange blobnivå ändrar nivån för en enskild blob. För att flytta en uppsättning blobar till arkivnivån med optimala prestanda rekommenderar Microsoft att du utför en massarkivåtgärd. Massarkivåtgärden skickar en batch med Set Blob Tier-anrop till tjänsten i en enda transaktion. Mer information finns i Massarkiv.
Följ dessa steg för att flytta en befintlig blob till arkivnivån i Azure-portalen:
Navigera till blobens container.
Välj den blob som ska arkiveras.
Välj knappen Ändra nivå.
Välj Arkiv i listrutan Åtkomstnivå .
Välj Spara.
Arkivera en befintlig blob med en kopieringsåtgärd
Använd åtgärden Kopiera blob för att kopiera en blob från den frekventa eller lågfrekventa nivån till arkivnivån. Källbloben förblir på den frekventa eller lågfrekventa nivån, medan målbloben skapas på arkivnivån.
En kopieringsblobåtgärd passar bäst för scenarier där du kan behöva läsa eller ändra arkiverade data innan det tidiga borttagningsintervallet har förflutit. Du kan komma åt källblobens data utan att behöva extrahera den arkiverade bloben.
Ej tillämpligt
Massarkiv
Om du vill flytta blobar till arkivnivån i en container eller en mapp räknar du upp blobar och anropar åtgärden Ange blobnivå på var och en. I följande exempel visas hur du utför den här åtgärden:
Saknas
När du flyttar ett stort antal blobar till arkivnivån använder du en batchåtgärd för optimala prestanda. En batchåtgärd skickar flera API-anrop till tjänsten med en enda begäran. De underåtgärder som stöds av Blob Batch-åtgärden inkluderar Ta bort blob och Ange blobnivå.
Om du vill arkivera blobar med en batchåtgärd använder du ett av Azure Storage-klientbiblioteken. Följande kodexempel visar hur du utför en grundläggande batchåtgärd med .NET-klientbiblioteket:
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);
}
}
Ett djupgående exempelprogram som visar hur du ändrar nivåer med en batchåtgärd finns i AzBulkSetBlobTier.
Använda livscykelhanteringsprinciper för att arkivera blobar
Du kan optimera kostnaderna för blobdata som sällan används genom att skapa principer för livscykelhantering som automatiskt flyttar blobar till arkivnivån när de inte har använts eller ändrats under en angiven tidsperiod. När du har konfigurerat en livscykelhanteringsprincip kör Azure Storage den en gång per dag. Mer information om principer för livscykelhantering finns i Optimera kostnader genom att automatiskt hantera datalivscykeln.
Du kan använda Azure-portalen, PowerShell, Azure CLI eller en Azure Resource Manager-mall för att skapa en livscykelhanteringsprincip. För enkelhetens skull visar det här avsnittet hur du skapar en princip för livscykelhantering endast i Azure-portalen. Fler exempel som visar hur du skapar principer för livscykelhantering finns i Konfigurera en livscykelhanteringsprincip.
Varning
Innan du använder en livscykelhanteringsprincip för att flytta data till arkivnivån kontrollerar du att data inte behöver tas bort eller flyttas till en annan nivå på minst 180 dagar. Data som tas bort eller flyttas till en annan nivå innan 180-dagarsperioden har förflutit är föremål för en avgift för tidig borttagning.
Tänk också på att data på arkivnivån måste extraheras innan de kan läsas eller ändras. Det kan ta flera timmar att extrahera en blob från arkivnivån och har tillhörande kostnader.
Följ dessa steg för att skapa en livscykelhanteringsprincip för att arkivera blobar i Azure-portalen:
Steg 1: Skapa regeln och ange blobtyp
Gå till ditt lagringskonto i portalen.
Under Datahantering letar du upp inställningarna för livscykelhantering .
Välj knappen Lägg till en regel.
På fliken Information anger du ett namn för regeln.
Ange regelomfånget: Använd antingen regeln för alla blobar i ditt lagringskonto eller Begränsa blobar med filter.
Välj de typer av blobar som regeln ska tillämpas för och ange om blobögonblicksbilder eller versioner ska inkluderas.
Steg 2: Lägg till regelvillkor
Beroende på dina val kan du konfigurera regler för basblobar (aktuella versioner), tidigare versioner eller blobögonblicksbilder. Ange ett av två villkor att söka efter:
- Objekt ändrades senast för ett antal dagar sedan.
- Objekt skapades för ett antal dagar sedan.
- Objekt användes senast för ett antal dagar sedan.
Endast ett av dessa villkor kan tillämpas för att flytta en viss typ av objekt till arkivnivån per regel. Om du till exempel definierar en åtgärd som arkiverar basblobar om de inte har ändrats på 90 dagar kan du inte heller definiera en åtgärd som arkiverar basblobar om de inte har använts på 90 dagar. På samma sätt kan du definiera en åtgärd per regel med något av dessa villkor för att arkivera tidigare versioner och en för att arkivera ögonblicksbilder.
Ange sedan antalet dagar som ska förflutit efter att objektet har ändrats eller använts.
Ange att objektet ska flyttas till arkivnivån när intervallet har förflutit.
Om du väljer att begränsa de blobar som påverkas av regeln med filter kan du ange ett filter, antingen med ett blobprefix eller en blobindexmatchning.
Steg 3: Se till att regeln undantar uttorkade blobar
Om du återskapar en blob genom att ändra dess nivå flyttas bloben tillbaka till arkivnivån om den senaste ändrade tiden, skapandetiden eller den senaste åtkomsttiden överskrider tröskelvärdet för principen.
Om du har valt villkoret Senast ändrad regel kan du förhindra att detta inträffar genom att välja Hoppa över blobar som har extraherats under den senaste och sedan ange hur många dagar du vill att en uttorkad blob ska undantas från den här regeln.
Kommentar
Det här alternativet visas bara om du har valt villkoret Senast ändrad regel.
Välj knappen Lägg till för att lägga till regeln i principen.
Visa princip-JSON
När du har skapat livscykelhanteringsprincipen kan du visa JSON för principen på sidan Livscykelhantering genom att växla från listvyn till kodvyn.
Här är JSON för den enkla livscykelhanteringsprincipen som skapats i bilderna som visas ovan:
{
"rules": [
{
"enabled": true,
"name": "sample-archive-rule",
"type": "Lifecycle",
"definition": {
"actions": {
"baseBlob": {
"tierToArchive": {
"daysAfterLastAccessTimeGreaterThan": 90,
"daysAfterLastTierChangeGreaterThan": 7
}
}
},
"filters": {
"blobTypes": [
"blockBlob"
]
}
}
}
]
}