Lease Container

Tramite l'operazione Lease Container viene definito e gestito un blocco su un contenitore per le operazioni di eliminazione. La durata del blocco può variare da 15 a 60 secondi o può essere infinita.

È possibile chiamare l'operazione Lease Container in una delle modalità seguenti:

  • Acquire, per richiedere un nuovo lease.

  • Renew, per rinnovare un lease esistente.

  • Change, per modificare l'ID di un lease esistente.

  • Release, per liberare il lease se non è più necessario, in modo che un altro client possa acquisire immediatamente un lease sul contenitore.

  • Break, per terminare il lease, ma assicurarsi che un altro client non possa acquisire un nuovo lease fino alla scadenza del periodo di lease corrente.

Nota

L'operazione Lease Container è disponibile nella versione 2012-02-12 e successive.

Richiesta

È possibile costruire la Lease Container richiesta come indicato di seguito. È consigliato il protocollo HTTPS. Sostituire myaccount con il nome dell'account di archiviazione.

Metodo URI richiesta Versione HTTP
PUT https://myaccount.blob.core.windows.net/mycontainer?comp=lease&restype=container HTTP/1.1

Per specificare il contenitore radice, immettere $root come nome del contenitore.

URI del servizio di archiviazione emulato

Quando si effettua una richiesta sul servizio di archiviazione emulato, specificare il nome host dell'emulatore e Archiviazione BLOB di Azure porta come 127.0.0.1:10000, seguito dal nome dell'account di archiviazione emulato.

Metodo URI richiesta Versione HTTP
PUT http://127.0.0.1:10000/mycontainer?comp=lease&restype=container HTTP/1.0

HTTP/1.1

Per altre informazioni, vedere Usare l'emulatore Azurite per lo sviluppo locale di Archiviazione di Azure.

Parametri URI

È possibile specificare il parametro aggiuntivo seguente nell'URI della richiesta.

Parametro Descrizione
timeout Facoltativa. Il parametro timeout viene espresso in secondi. Per altre informazioni, vedere Impostazione dei timeout per le operazioni di archiviazione BLOB.

Intestazioni della richiesta

Nella seguente tabella vengono descritte le intestazioni di richiesta obbligatorie e facoltative.

Intestazione della richiesta Descrizione
Authorization Obbligatorio. Specifica lo schema di autorizzazione, il nome dell'account e la firma. Per altre informazioni, vedere Autorizzare le richieste ad Archiviazione di Azure.
Date o x-ms-date Obbligatorio. Specifica la data per la richiesta nel fuso orario UTC (Coordinated Universal Time). Per altre informazioni, vedere Autorizzare le richieste ad Archiviazione di Azure.
x-ms-version facoltativo. Specifica la versione dell'operazione da usare per questa richiesta. Per altre informazioni, vedere Controllo delle versioni per i servizi di archiviazione di Azure.
x-ms-lease-id: <ID> Obbligatoria per rinnovare, modificare o rilasciare il lease.

È possibile specificare il valore di in qualsiasi formato di x-ms-lease-id stringa GUID valido. Per un elenco di formati validi, vedere Costruttore Guid (String).
x-ms-lease-action: <acquire ¦ renew ¦ change ¦ release ¦ break> acquire: richiede un nuovo lease. Se il contenitore non ha un lease attivo, Archiviazione BLOB crea un lease nel contenitore e restituisce un nuovo ID lease. Se il contenitore ha un lease attivo, è possibile richiedere un nuovo lease usando l'ID lease attivo. È tuttavia possibile specificare un nuovo x-ms-lease duration, incluso uno negativo (-1) per un lease che non scade mai.

renew: rinnova il lease. È possibile rinnovare il lease se l'ID lease specificato nella richiesta corrisponde a quello associato al contenitore. Si noti che il lease può essere rinnovato anche se è scaduto, purché il contenitore non sia stato ancora eseguito il lease dopo la scadenza del lease. Quando si rinnova un lease, la durata del lease viene reimpostata.

change: modifica l'ID lease di un lease attivo. Un change deve includere l'ID lease corrente in x-ms-lease-ide un nuovo ID lease in x-ms-proposed-lease-id.

release: rilascia il lease. È possibile rilasciare il lease se l'ID lease specificato nella richiesta corrisponde a quello associato al contenitore. Il rilascio del lease consente a un altro client di acquisire immediatamente il lease per il contenitore, non appena viene completata la versione.

break: interrompe il lease, se il contenitore presenta un lease attivo. Dopo che un lease viene interrotto, non può essere rinnovato. Qualsiasi richiesta autorizzata può interrompere il lease. La richiesta non è necessaria per specificare un ID lease corrispondente. Quando un lease viene interrotto, il periodo di interruzione del lease può essere trascorso. È possibile eseguire e release eseguire break operazioni di lease solo nel contenitore durante questo periodo. Quando un lease viene interrotto correttamente, la risposta indica l'intervallo in secondi che deve trascorrere prima che possa essere acquisito un nuovo lease.

Anche un lease che è stato interrotto può essere rilasciato. Un client può acquisire immediatamente un lease del contenitore che è stato rilasciato.
x-ms-lease-break-period: N facoltativo. Per un'operazione break , questa intestazione è la durata proposta che il lease deve continuare prima di essere interrotto, tra 0 e 60 secondi. Questo periodo di interruzione viene usato solo se è più breve del tempo rimanente nel lease. Se più lungo, viene utilizzato il tempo rimanente sul lease. Un nuovo lease non sarà disponibile prima della scadenza del periodo di interruzione, ma il lease può essere mantenuto per più tempo del periodo di interruzione. Se questa intestazione non viene visualizzata con un'operazione break , un lease a durata fissa si interrompe dopo il periodo di lease rimanente e un'interruzione infinita del lease viene interrotta immediatamente.
x-ms-lease-duration: -1 ¦ n seconds Obbligatoria per acquire. Specifica la durata del lease, in secondi, o un uno negativo (-1) per un lease che non scade mai. Un lease non infinito può essere compreso tra 15 e 60 secondi. Non è possibile modificare una durata del lease usando renew o change.
x-ms-proposed-lease-id: <ID> Facoltativo per e obbligatorio per acquirechange. ID lease proposto, in un formato di stringa GUID. Archiviazione BLOB restituisce 400 (Invalid request) se l'ID lease proposto non è nel formato corretto. Per un elenco di formati validi, vedere Costruttore Guid (String).
Origin facoltativo. Specifica l'origine da cui proviene la richiesta. La presenza di questa intestazione determina la presenza di intestazioni di condivisione delle risorse multiorigine (CORS) nella risposta. Per informazioni dettagliate, vedere SUPPORTO CORS per i servizi di archiviazione .
x-ms-client-request-id facoltativo. Fornisce un valore opaco generato dal client con un limite di caratteri di 1 kibibyte (KiB) registrato nei log quando la registrazione è configurata. È consigliabile usare questa intestazione per correlare le attività lato client con le richieste ricevute dal server. Per altre informazioni, vedere Monitorare Archiviazione BLOB di Azure.

Questa operazione supporta anche l'uso di intestazioni condizionali per eseguire l'operazione solo se viene soddisfatta una condizione specificata. Per altre informazioni, vedere Specifica delle intestazioni condizionali per le operazioni di archiviazione BLOB.

Testo della richiesta

Nessuno.

Richiesta di esempio

Nella richiesta di esempio seguente mostra come acquisire un lease:

  
Request Syntax:  
PUT https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=lease HTTP/1.1  
  
Request Headers:  
x-ms-version: 2012-02-12  
x-ms-lease-action: acquire  
x-ms-lease-duration: -1  
x-ms-proposed-lease-id: 1f812371-a41d-49e6-b123-f4b542e851c5  
x-ms-date: Thu, 26 Jan 2012 23:30:18 GMT  
Authorization: SharedKey testaccount1:esSKMOYdK4o+nGTuTyeOLBI+xqnqi6aBmiW4XI699+o=  
  

Risposta

Nella risposta sono inclusi un codice di stato HTTP e un set di intestazioni per la risposta.

Codice stato

I codici di stato per le operazioni completate correttamente restituiti per le operazioni di lease sono i seguenti:

  • Acquire: un'operazione completata correttamente restituisce il codice di stato 201 (Creato).

  • Renew: un'operazione completata correttamente restituisce il codice di stato 200 (OK).

  • Change: un'operazione completata correttamente restituisce il codice di stato 200 (OK).

  • Release: un'operazione completata correttamente restituisce il codice di stato 200 (OK).

  • Break: un'operazione completata correttamente restituisce il codice di stato 202 (Accettato).

Per informazioni sui codici di stato, vedere Codici di stato e di errore.

Intestazioni di risposta

Nella risposta per questa operazione sono incluse le intestazioni riportate di seguito; La risposta può includere anche intestazioni HTTP standard aggiuntive. Tutte le intestazioni standard sono conformi alla specifica del protocollo HTTP/1.1.

Sintassi Descrizione
ETag Oggetto ETag per il contenitore. Questa intestazione viene restituita per le richieste effettuate rispetto alla versione 2013-08-15 e successive e il ETag valore è racchiuso tra virgolette. Lease Container le operazioni eseguite sulla versione 2013-08-15 e successive non modificano questa proprietà, ma le versioni precedenti lo fanno.
Last-Modified Restituito per le richieste effettuate rispetto alla versione 2013-08-15 e successive. Restituisce la data e l'ora dell'ultima modifica apportata al contenitore. Per altre informazioni, vedere Rappresentazione dei valori di data e ora nelle intestazioni.

Qualsiasi operazione che modifica il contenitore o le relative proprietà o metadati aggiorna l'ora dell'ultima modifica. Ciò include l'impostazione delle autorizzazioni del contenitore. Le operazioni sui BLOB non influiscono sull'ora dell'ultima modifica del contenitore. Lease Container le operazioni eseguite sulla versione 2013-08-15 e successive non modificano questa proprietà, ma le versioni precedenti lo fanno.
x-ms-lease-id: <id> Quando si richiede un lease, Archiviazione BLOB restituisce un ID lease univoco. Quando il lease è attivo, è necessario includere l'ID lease con qualsiasi richiesta per eliminare il contenitore o per rinnovare, modificare o rilasciare il lease.

Un'operazione di rinnovo completata correttamente restituisce anche l'ID del lease attivo.
x-ms-lease-time: seconds Tempo approssimativo rimanente nel periodo di lease, in secondi. Questa intestazione viene restituita solo per una richiesta di interruzione del lease completata correttamente. Se l'interruzione è immediata, viene restituito 0.
x-ms-request-id Questa intestazione identifica in modo univoco la richiesta effettuata e può essere usata per la risoluzione dei problemi della richiesta. Per altre informazioni, vedere Risoluzione dei problemi relativi alle operazioni api.
x-ms-version Indica la versione di Archiviazione BLOB usata per eseguire la richiesta. Questa intestazione viene restituita per le richieste effettuate nella versione 2009-09-19 e successive.
Data Valore di data/ora UTC che indica l'ora in cui è stata avviata la risposta. Il servizio genera questo valore.
Access-Control-Allow-Origin Restituito se la richiesta include un'intestazione Origin e CORS è abilitato con una regola corrispondente. Questa intestazione restituisce il valore dell'intestazione della richiesta di origine nel caso di una corrispondenza.
Access-Control-Expose-Headers Restituito se la richiesta include un'intestazione Origin e CORS è abilitato con una regola corrispondente. Restituisce l'elenco delle intestazioni di risposta che devono essere esposte al client o all'emittente della richiesta.
Access-Control-Allow-Credentials Restituito se la richiesta include un'intestazione Origin e CORS è abilitato con una regola corrispondente che non consente tutte le origini. Questa intestazione verrà impostata su true.
x-ms-client-request-id È possibile usare questa intestazione per risolvere i problemi relativi alle richieste e alle risposte corrispondenti. Il valore di questa intestazione è uguale al valore dell'intestazione x-ms-client-request-id , se presente nella richiesta. Il valore è al massimo 1.024 caratteri ASCII visibili. Se l'intestazione x-ms-client-request-id non è presente nella richiesta, non sarà presente nella risposta.

Corpo della risposta

Nessuno.

Risposta di esempio

Di seguito è riportata una risposta di esempio per una richiesta di acquisizione di un lease:

Response Status:  
HTTP/1.1 201 Created  
  
Response Headers:  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  
x-ms-request-id: cc6b209a-b593-4be1-a38a-dde7c106f402  
x-ms-version: 2012-02-12  
x-ms-lease-id: 1f812371-a41d-49e6-b123-f4b542e851c5  
Date: Thu, 26 Jan 2012 23:30:18 GMT  
  

Autorizzazione

L'autorizzazione è necessaria quando si chiama un'operazione di accesso ai dati in Archiviazione di Azure. È possibile autorizzare l'operazione Lease Container come descritto nelle sezioni seguenti.

Archiviazione di Azure supporta l'uso di Microsoft Entra ID per autorizzare le richieste ai dati BLOB. Con Microsoft Entra ID è possibile usare il controllo degli accessi in base al ruolo di Azure per concedere le autorizzazioni a un'entità di sicurezza. L'entità di sicurezza può essere un utente, un gruppo, un'entità servizio applicazione o un'identità gestita di Azure. L'entità di sicurezza viene autenticata da Microsoft Entra ID per restituire un token OAuth 2.0. Il token può quindi essere usato per autorizzare una richiesta nell'archiviazione BLOB.

Per altre informazioni sull'autorizzazione tramite Microsoft Entra ID, vedere Autorizzare l'accesso ai BLOB usando Microsoft Entra ID.

Autorizzazioni

Le azioni di controllo degli accessi in base al ruolo seguenti sono necessarie per un utente, un gruppo o un'entità servizio di Microsoft Entra per chiamare l'operazione Lease Container e il ruolo controllo degli accessi in base al ruolo di Azure con privilegi minimi che include questa azione:

Per altre informazioni sull'assegnazione dei ruoli tramite il controllo degli accessi in base al ruolo di Azure, vedere Assegnare un ruolo di Azure per l'accesso ai dati BLOB.

Commenti

Un lease su un contenitore fornisce un accesso esclusivo in eliminazione al contenitore. Un lease di contenitori controlla solo la possibilità di eliminare il contenitore usando l'operazione Elimina contenitore . Per eliminare un contenitore con un lease attivo, un client deve includere l'ID lease attivo con la richiesta di eliminazione. Se l'ID lease non è incluso, l'operazione ha esito negativo con 412 (Precondizione non riuscita). Tutte le altre operazioni del contenitore hanno esito positivo su un contenitore lease, senza includere l'ID lease. Il lease viene concesso per la durata specificata quando il lease viene acquisito, che può essere compreso tra 15 e 60 secondi o una durata infinita.

Quando un client acquisisce un lease, viene restituito un ID lease. L'archiviazione BLOB genera un ID lease, se non è specificato nella richiesta di acquisizione. Il client può usare questo ID lease per rinnovare il lease, modificare l'ID lease o rilasciare il lease. Il diagramma seguente illustra gli stati possibili di un lease e i comandi o gli eventi che causano modifiche dello stato di lease.

Diagramma degli stati di lease del contenitore e dei trigger di modifica dello stato.

Un lease può essere in uno di cinque stati, in base al fatto che il lease sia bloccato o sbloccato e che il lease sia rinnovabile in tale stato. Le azioni di lease visualizzate nel diagramma precedente causano transizioni di stato.

Stato rinnovo Lease bloccato Lease sbloccato
Lease rinnovabile Con lease Scaduto
Lease non rinnovabile Interruzione Interrotto, disponibile
  • Available, il lease è sbloccato e può essere acquisito. Azione consentita: acquire.

  • Leased, il lease è bloccato. Azioni consentite: acquire (solo stesso ID lease), renew, change, release e break.

  • Expired, la durata del lease è scaduta. Operazioni consentite: acquire, renew, release e break.

  • Breaking, il lease è stato interrotto, ma il lease continuerà a essere bloccato fino alla scadenza del periodo di interruzione. Operazioni consentite: release e break.

  • Broken, il lease è stato interrotto e il periodo di interruzione è scaduto. Azioni consentite: acquire, release e break.

L'archiviazione BLOB gestisce l'ID lease dopo la scadenza di un lease del contenitore. Un client può rinnovare o rilasciare il lease usando l'ID lease scaduto. Se il client tenta di rinnovare o rilasciare un lease scaduto con il relativo ID lease precedente e la richiesta ha esito negativo, il contenitore è stato eseguito nuovamente o eliminato dopo l'ultima attività del lease del client.

Se un lease scade anziché essere rilasciato in modo esplicito, un client potrebbe dover attendere fino a un minuto prima che un nuovo lease possa essere acquisito per il contenitore. Il client, tuttavia, può rinnovare il lease immediatamente con l'ID lease scaduto.

La proprietà del Last-Modified-Time contenitore non viene aggiornata dalle chiamate a Lease Container.

Nelle tabelle seguenti vengono mostrati i risultati delle azioni sui contenitori con lease in vari stati. Lettere (A), (B) e (C) rappresentano ID lease e (X) rappresenta un ID lease generato dall'archiviazione BLOB.

Risultati dei tentativi di utilizzo sui contenitori in base allo stato

Azione Disponibile Con lease (A) Interruzione in corso (A) Interrotto (A) Scaduto (A)
Elimina con (A) Esito negativo (412) Con lease (A), l'eliminazione ha esito positivo Interruzione in corso (A), l'eliminazione ha esito positivo Esito negativo (412) Esito negativo (412)
Elimina con (B) Esito negativo (412) Errore (409) Esito negativo (412) Esito negativo (412) Esito negativo (412)
Eliminazione, nessun lease specificato Disponibile, l'eliminazione ha esito positivo Esito negativo (412) Esito negativo (412) Disponibile, l'eliminazione ha esito positivo Disponibile, l'eliminazione ha esito positivo
Altre operazioni con (A) Esito negativo (412) Con lease (A), l'operazione ha esito positivo Interruzione in corso (A), l'operazione ha esito positivo Esito negativo (412) Esito negativo (412)
Altre operazioni con (B) Esito negativo (412) Errore (409) Errore (409) Esito negativo (412) Esito negativo (412)
Operazioni, nessun lease specificato Disponibile, l'operazione ha esito positivo Con lease (A), l'operazione ha esito positivo Interruzione in corso (A), l'operazione ha esito positivo Interrotto (A), l'operazione ha esito positivo Scaduto (A), l'operazione ha esito positivo

Risultati delle operazioni di lease sui contenitori in base allo stato

Azione Disponibile Con lease (A) Interruzione in corso (A) Interrotto (A) Scaduto (A)
Acquire, nessun ID lease proposto Con lease (X) Errore (409) Errore (409) Con lease (X) Con lease (X)
Acquire (A) Con lease (A) Con lease (A), nuova durata Errore (409) Con lease (A) Con lease (A)
Acquire (B) Con lease (B) Esito negativo (409) Esito negativo (409) Con lease (B) Con lease (B)
Break, periodo=0 Esito negativo (409) Interrotto (A) Interrotto (A) Interrotto (A) Interrotto (A)
Break, periodo>0 Esito negativo (409) Interruzione in corso (A) Interruzione in corso (A) Interrotto (A) Interrotto (A)
Change, (A) - (B) Esito negativo (409) Con lease (B) Esito negativo (409) Esito negativo (409) Esito negativo (409)
Change, (B) - (A) Esito negativo (409) Con lease (A) Esito negativo (409) Esito negativo (409) Esito negativo (409)
Change, (B) - (C) Esito negativo (409) Esito negativo (409) Esito negativo (409) Esito negativo (409) Esito negativo (409)
Renew (A) Esito negativo (409) Con lease (A), reimpostazione della scadenza Esito negativo (409) Esito negativo (409) Con lease (A)
Renew (B) Esito negativo (409) Esito negativo (409) Esito negativo (409) Esito negativo (409) Esito negativo (409)
Release (A) Esito negativo (409) Disponibile Disponibile Disponibile Disponibile
Release (B) Esito negativo (409) Esito negativo (409) Esito negativo (409) Esito negativo (409) Esito negativo (409)
La durata scade Disponibile Scaduto (A) Interrotto (A) Interrotto (A) Scaduto (A)

Fatturazione

Le richieste di determinazione dei prezzi possono provenire dai client che usano le API di archiviazione BLOB, direttamente tramite l'API REST di Archiviazione BLOB o da una libreria client di Archiviazione di Azure. Queste richieste accumulano addebiti per transazione. Il tipo di transazione influisce sul modo in cui viene addebitato l'account. Ad esempio, le transazioni di lettura si accumulano in una categoria di fatturazione diversa rispetto alle transazioni di scrittura. La tabella seguente illustra la categoria di fatturazione per Lease Container le richieste in base al tipo di account di archiviazione:

Operazione Tipo di account di archiviazione Categoria di fatturazione
Contenitore di lease (acquisizione, rilascio, rinnovo) BLOB in blocchi Premium
Utilizzo generico v2 Standard
Altre operazioni
Contenitore di lease (acquisizione, rilascio, rinnovo) Standard per utilizzo generico v1 Operazioni di lettura
Contenitore lease (interruzione, modifica) BLOB in blocchi Premium
Utilizzo generico v2 Standard
Altre operazioni
Contenitore lease (interruzione, modifica) Standard per utilizzo generico v1 Operazioni di scrittura

Per informazioni sui prezzi per la categoria di fatturazione specificata, vedere prezzi Archiviazione BLOB di Azure.

Vedi anche

Autorizzare le richieste ad Archiviazione di Azure
Stato e codici errore
Codici di errore di Archiviazione BLOB
Lease BLOB