Lease Container
L'opération Lease Container
établit et gère un verrou sur un conteneur pour les opérations de suppression. La durée du verrou peut être de 15 à 60 secondes, ou peut être infinie.
Vous pouvez appeler l’opération Lease Container
dans l’un des modes suivants :
Acquire
, pour demander un nouveau bail.Renew
, pour renouveler un bail existant.Change
, pour modifier l'ID d'un bail existant.Release
, pour libérer le bail s’il n’est plus nécessaire, afin qu’un autre client puisse immédiatement acquérir un bail contre le conteneur.Break
, pour mettre fin au bail, mais s’assurer qu’un autre client ne peut pas acquérir un nouveau bail tant que la période de bail actuelle n’a pas expiré.
Notes
L'opération Lease Container
est disponible dans la version du 12/02/2012 et les versions ultérieures.
Requête
Vous pouvez construire la Lease Container
requête comme suit. HTTPS est recommandé. Remplacez myaccount par le nom de votre compte de stockage.
Méthode | URI de demande | Version HTTP |
---|---|---|
PUT |
https://myaccount.blob.core.windows.net/mycontainer?comp=lease&restype=container |
HTTP/1.1 |
Pour spécifier le conteneur racine, entrez $root
comme nom de conteneur.
URI de service de stockage émulé
Lorsque vous effectuez une demande auprès du service de stockage émulé, spécifiez le nom d’hôte de l’émulateur et Stockage Blob Azure port comme 127.0.0.1:10000
, suivi du nom du compte de stockage émulé.
Méthode | URI de demande | Version HTTP |
---|---|---|
PUT |
http://127.0.0.1:10000/mycontainer?comp=lease&restype=container |
HTTP/1.0 HTTP/1.1 |
Pour plus d’informations, consultez Utiliser l’émulateur Azurite pour le développement local de Stockage Azure.
Paramètres URI
Vous pouvez spécifier le paramètre supplémentaire suivant sur l’URI de demande.
Paramètre | Description |
---|---|
timeout |
facultatif. Le paramètre timeout est exprimé en secondes. Pour plus d’informations, consultez Définition de délais d’expiration pour les opérations de stockage Blob. |
En-têtes de requête
Le tableau suivant décrit les en-têtes de demande obligatoires ou facultatifs.
En-tête de requête | Description |
---|---|
Authorization |
Obligatoire. Spécifie le schéma d’autorisation, le nom du compte et la signature. Pour plus d’informations, consultez Autoriser les requêtes auprès du Stockage Azure. |
Date ou x-ms-date |
Obligatoire. Spécifie la date/heure en temps universel coordonné (UTC) pour la requête. Pour plus d’informations, consultez Autoriser les requêtes auprès du Stockage Azure. |
x-ms-version |
facultatif. Spécifie la version de l'opération à utiliser pour cette demande. Pour plus d'informations, consultez la page Contrôle de version pour les services de Stockage Microsoft Azure. |
x-ms-lease-id: <ID> |
Obligatoire pour renouveler, modifier ou libérer le bail. Vous pouvez spécifier la valeur de dans n’importe quel format de x-ms-lease-id chaîne GUID valide. Pour obtenir la liste des formats valides , consultez Constructeur guid (String ). |
x-ms-lease-action: <acquire ¦ renew ¦ change ¦ release ¦ break> |
acquire : demande un nouveau bail. Si le conteneur n’a pas de bail actif, Stockage Blob crée un bail sur le conteneur et retourne un nouvel ID de bail. Si le conteneur a un bail actif, vous pouvez uniquement demander un nouveau bail à l’aide de l’ID de bail actif. Vous pouvez toutefois spécifier un nouveau x-ms-lease duration , y compris négatif (-1) pour un bail qui n’expire jamais.renew : renouvelle le bail. Vous pouvez renouveler le bail si l’ID de bail spécifié dans la demande correspond à celui associé au conteneur. Notez que le bail peut être renouvelé même s’il a expiré, tant que le conteneur n’a pas été à nouveau loué depuis l’expiration de ce bail. Lorsque vous renouvelez un bail, la durée de bail est réinitialisée.change : modifie l'ID du bail d'un bail actif. Un change doit inclure l’ID de bail actuel dans x-ms-lease-id , et un nouvel ID de bail dans x-ms-proposed-lease-id .release : libère le bail. Vous pouvez libérer le bail si l’ID de bail spécifié sur la demande correspond à celui associé au conteneur. La libération du bail permet à un autre client d’acquérir immédiatement le bail du conteneur, dès que la mise en production est terminée.break : résilie le bail, si le conteneur a un bail actif. Une fois qu’un bail est rompu, il ne peut pas être renouvelé. Toute demande autorisée peut rompre le bail. La demande n’est pas nécessaire pour spécifier un ID de bail correspondant. Lorsqu’un bail est rompu, la période d’interruption de bail est autorisée à s’écouler. Vous pouvez uniquement effectuer et release louer des break opérations sur le conteneur pendant cette période. Lorsqu'un bail est correctement résilié, la réponse indique l'intervalle en secondes avant qu'un nouveau bail puisse être acquis.Un bail qui a été résilié peut également être libéré. Un client peut immédiatement acquérir un bail de conteneur qui a été libéré. |
x-ms-lease-break-period: N |
facultatif. Pour une break opération, cet en-tête est la durée proposée pendant laquelle le bail doit continuer avant d’être rompu, entre 0 et 60 secondes. Cette période d’arrêt n’est utilisée que si elle est plus courte que le temps restant sur le bail. Si elle est plus longue, la durée restante du bail est utilisée. Un nouveau bail ne sera pas disponible avant l’expiration de la période de pause, mais le bail peut être conservé plus longtemps que la période d’interruption. Si cet en-tête n’apparaît pas avec une break opération, un bail à durée fixe s’interrompt une fois la période de bail restante écoulée et un bail infini s’interrompt immédiatement. |
x-ms-lease-duration: -1 ¦ n seconds |
Requis pour acquire . Spécifie la durée de bail, en secondes, ou moins un (- 1) pour un bail qui n'expire jamais. Un bail qui n'est pas infini peut durer entre 15 et 60 secondes. La durée d’un bail ne peut pas être modifiée à l’aide de renew ou change . |
x-ms-proposed-lease-id: <ID> |
Facultatif pour acquire et obligatoire pour change . ID de bail proposé, dans un format de chaîne GUID. Stockage Blob retourne 400 (Invalid request) si l’ID de bail proposé n’est pas au format correct. Pour obtenir la liste des formats valides , consultez Constructeur guid (String ). |
Origin |
facultatif. Spécifie l'origine à partir de laquelle la demande est émise. La présence de cet en-tête entraîne des en-têtes de partage de ressources cross-origine (CORS) dans la réponse. Pour plus d’informations, consultez Prise en charge CORS pour les services de stockage . |
x-ms-client-request-id |
facultatif. Fournit une valeur opaque générée par le client avec une limite de caractères de 1 kibioctet (Kio) enregistrée dans les journaux lors de la configuration de la journalisation. Nous vous recommandons vivement d’utiliser cet en-tête pour mettre en corrélation les activités côté client avec les demandes reçues par le serveur. Pour plus d’informations, consultez Surveiller Stockage Blob Azure. |
Cette opération prend également en charge l’utilisation d’en-têtes conditionnels pour exécuter l’opération uniquement si une condition spécifiée est remplie. Pour plus d’informations, consultez Spécification d’en-têtes conditionnels pour les opérations de stockage Blob.
Corps de la demande
Aucun.
Exemple de requête
L'exemple de demande suivant montre comment acquérir un bail :
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=
response
La réponse inclut un code d'état HTTP et un ensemble d'en-têtes de réponse.
Code d’état
Les codes d'état de réussite retournés pour les opérations de bail sont les suivants :
Acquire
: une opération ayant réussi retourne le code d'état 201 (Créée).Renew
: une opération ayant réussi retourne le code d'état 200 (OK).Change
: une opération ayant réussi retourne le code d'état 200 (OK).Release
: une opération ayant réussi retourne le code d'état 200 (OK).Break
: une opération ayant réussi retourne le code d'état 202 (Acceptée).
Pour plus d’informations sur les codes status, consultez Codes d’état et d’erreur.
En-têtes de réponse
La réponse de l'opération inclut les en-têtes suivants. La réponse peut également inclure des en-têtes HTTP standard supplémentaires. Tous les en-têtes standard sont conformes à la spécification du protocole HTTP/1.1.
Syntaxe | Description |
---|---|
ETag |
ETag pour le conteneur. Cet en-tête est retourné pour les demandes effectuées sur la version 2013-08-15 et ultérieure, et la ETag valeur est entre guillemets.
Lease Container les opérations effectuées sur la version 2013-08-15 et ultérieures ne modifient pas cette propriété, mais les versions antérieures le font. |
Last-Modified |
Retourné pour les demandes effectuées sur la version 2013-08-15 et ultérieures. Renvoie la date et l'heure de la dernière modification du conteneur. Pour plus d’informations, consultez Représentation des valeurs date-heure dans les en-têtes. Toute opération qui modifie le conteneur, ses propriétés ou métadonnées, met à jour l’heure de la dernière modification. Cela inclut la définition des autorisations du conteneur. Les opérations sur les objets blob n’affectent pas l’heure de dernière modification du conteneur. Lease Container les opérations effectuées sur la version 2013-08-15 et ultérieures ne modifient pas cette propriété, mais les versions antérieures le font. |
x-ms-lease-id: <id> |
Lorsque vous demandez un bail, Stockage Blob retourne un ID de bail unique. Pendant que le bail est actif, vous devez inclure l'ID de bail avec les demandes de suppression du conteneur, ou de renouvellement, de modification ou de libération du bail. Une opération de renouvellement réussie retourne également l'ID du bail pour le bail actif. |
x-ms-lease-time: seconds |
Durée approximative restante de la période du bail, en secondes. Cet en-tête est retourné uniquement pour une demande réussie de résiliation du bail. Si la résiliation est immédiate, 0 est retourné. |
x-ms-request-id |
Cet en-tête identifie de manière unique la requête qui a été effectuée et peut être utilisé pour la résolution des problèmes de la demande. Pour plus d’informations, consultez Résolution des problèmes liés aux opérations d’API. |
x-ms-version |
Indique la version de Stockage Blob utilisée pour exécuter la requête. Cet en-tête est renvoyé pour les demandes effectuées avec la version 2009-09-19 ou une version ultérieure. |
Date | Valeur de date/heure UTC qui indique l’heure à laquelle la réponse a été lancée. Le service génère cette valeur. |
Access-Control-Allow-Origin |
Retourné si la requête inclut un Origin en-tête et que CORS est activé avec une règle de correspondance. Cet en-tête retourne la valeur de l'en-tête de demande d'origine en cas de correspondance. |
Access-Control-Expose-Headers |
Retourné si la requête inclut un Origin en-tête et que CORS est activé avec une règle de correspondance. Retourne la liste des en-têtes de réponse qui doivent être exposés au client ou à l'émetteur de la demande. |
Access-Control-Allow-Credentials |
Retourné si la requête inclut un Origin en-tête et que CORS est activé avec une règle de correspondance qui n’autorise pas toutes les origines. Cet en-tête est défini sur true . |
x-ms-client-request-id |
Vous pouvez utiliser cet en-tête pour résoudre les problèmes liés aux demandes et aux réponses correspondantes. La valeur de cet en-tête est égale à la valeur de l’en-tête x-ms-client-request-id , s’il est présent dans la requête. La valeur est au maximum de 1 024 caractères ASCII visibles. Si l’en-tête x-ms-client-request-id n’est pas présent dans la demande, il ne sera pas présent dans la réponse. |
Response body
Aucun.
Exemple de réponse
Voici un exemple de réponse pour une demande d'acquisition de bail :
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
Autorisation
Une autorisation est requise lorsque vous appelez une opération d’accès aux données dans stockage Azure. Vous pouvez autoriser l’opération Lease Container
comme décrit dans les sections suivantes.
Important
Microsoft recommande d’utiliser Microsoft Entra ID avec des identités managées pour autoriser les demandes dans le stockage Azure. Microsoft Entra ID offre une sécurité et une facilité d’utilisation supérieures par rapport à l’autorisation de clé partagée.
Le Stockage Azure prend en charge l’utilisation de Microsoft Entra ID pour autoriser les demandes de données blob. Avec Microsoft Entra ID, vous pouvez utiliser le contrôle d’accès en fonction du rôle Azure (Azure RBAC) pour accorder des autorisations à un principal de sécurité. Le principal de sécurité peut être un utilisateur, un groupe, un principal de service d’application ou une identité managée Azure. Le principal de sécurité est authentifié par Microsoft Entra ID pour retourner un jeton OAuth 2.0. Le jeton peut ensuite être utilisé pour autoriser une demande sur le Stockage Blob.
Pour en savoir plus sur l’autorisation à l’aide de Microsoft Entra ID, consultez Autoriser l’accès aux objets blob à l’aide de Microsoft Entra ID.
Autorisations
Les actions RBAC suivantes sont nécessaires pour qu’un utilisateur, un groupe, une identité managée ou un principal de service Microsoft Entra appelle l’opérationLease Container
, ainsi que le rôle RBAC intégré Azure le moins privilégié qui inclut cette action :
- Action RBAC Azure : Microsoft.Storage/storageAccounts/blobServices/containers/write
- Rôle intégré avec privilèges minimum : Contributeur aux données Blob du stockage
Pour en savoir plus sur l’attribution de rôles à l’aide d’Azure RBAC, consultez Attribuer un rôle Azure pour accéder aux données blob.
Remarques
Un bail sur un conteneur fournit un accès exclusif en suppression au conteneur. Un bail de conteneur contrôle uniquement la possibilité de supprimer le conteneur à l’aide de l’opération Supprimer le conteneur . Pour supprimer un conteneur avec un bail actif, le client doit inclure l'identificateur du bail actif dans la demande de suppression. Si l’ID de bail n’est pas inclus, l’opération échoue avec 412 (échec de la condition préalable). Toutes les autres opérations de conteneur réussissent sur un conteneur loué, sans inclure l’ID de bail. Le bail est accordé pour la durée spécifiée lors de l’acquisition du bail, qui peut être comprise entre 15 et 60 secondes, ou une durée infinie.
Lorsqu'un client acquiert un bail, un ID de bail est retourné. Stockage Blob génère un ID de bail, si celui-ci n’est pas spécifié dans la demande d’acquisition. Le client peut utiliser cet ID de bail pour renouveler le bail, modifier son ID de bail ou libérer le bail. Le diagramme suivant montre les états possibles d’un bail, ainsi que les commandes ou événements qui provoquent des changements d’état du bail.
Un bail peut se trouver dans l’un des cinq États, selon que le bail est verrouillé ou déverrouillé, et si le bail est renouvelable dans cet état. Les actions de bail indiquées dans le diagramme précédent entraînent des transitions d’état.
Renouvellement status | Bail verrouillé | Bail déverrouillé |
---|---|---|
Bail renouvelable | Loué | Expiré |
Bail non renouvelable | Rupture | Résilié, disponible |
Available
, le bail est déverrouillé et peut être acquis. Action autorisée :acquire
.Leased
, le bail est verrouillé. Actions autorisées :acquire
(ID de bail identique uniquement),renew
,change
,release
, etbreak
.Expired
, la durée du bail a expiré. Actions autorisées :acquire
,renew
,release
, etbreak
.Breaking
, le bail a été rompu, mais le bail continuera d’être verrouillé jusqu’à l’expiration de la période d’interruption. Actions autorisées :release
etbreak
.Broken
, le bail a été rompu et la période d’arrêt a expiré. Actions autorisées :acquire
,release
etbreak
.
Stockage Blob conserve l’ID de bail après l’expiration d’un bail de conteneur. Un client peut renouveler ou libérer le bail à l’aide de son ID de bail expiré. Si le client tente de renouveler ou de libérer un bail expiré avec son ID de bail précédent et que la demande échoue, le conteneur a été à nouveau loué ou supprimé depuis la dernière fois que le bail du client a été actif pour la dernière fois.
Si un bail expire plutôt que d’être libéré explicitement, un client peut devoir attendre jusqu’à une minute avant qu’un nouveau bail puisse être acquis pour le conteneur. Toutefois, le client peut renouveler le bail avec l'ID de bail expiré immédiatement.
La propriété du Last-Modified-Time
conteneur n’est pas mise à jour par des appels à Lease Container
.
Les tableaux ci-dessous montrent les résultats des actions sur les conteneurs avec des baux dans différents états. Les lettres (A), (B) et (C) représentent les ID de bail, et (X) représentent un ID de bail généré par Stockage Blob.
Résultats des tentatives d'utilisation dans des conteneurs par état du bail
Action | Disponible | Loué (A) | En cours de résiliation (A) | Résilié (A) | Expiré (A) |
---|---|---|---|---|---|
Supprimer avec (A) | Échecs (412) | Loué (A), la suppression a réussi | En cours de résiliation (A), la suppression a réussi | Échecs (412) | Échecs (412) |
Supprimer avec (B) | Échecs (412) | Échec (409) | Échecs (412) | Échecs (412) | Échecs (412) |
Supprimer, aucun bail spécifié | Disponible, la suppression a réussi | Échecs (412) | Échecs (412) | Disponible, la suppression a réussi | Disponible, la suppression a réussi |
Autres opérations avec (A) | Échecs (412) | Loué (A), l'opération a réussi | En cours de résiliation (A), l'opération a réussi | Échecs (412) | Échecs (412) |
Autres opérations avec (B) | Échecs (412) | Échec (409) | Échec (409) | Échecs (412) | Échecs (412) |
Opérations, aucun bail spécifié | Non disponible, l'opération a réussi | Loué (A), l'opération a réussi | En cours de résiliation (A), l'opération a réussi | Résilié (A), l'opération a réussi | Expiré (A), l'opération a réussi |
Résultats des opérations de bail sur des conteneurs par état de bail
Action | Disponible | Loué (A) | En cours de résiliation (A) | Résilié (A) | Expiré (A) |
---|---|---|---|---|---|
Acquire , aucun ID de bail proposé |
Loué (X) | Échec (409) | Échec (409) | Loué (X) | Loué (X) |
Acquire (A) |
Loué (A) | Loué (A), nouvelle durée | Échec (409) | Loué (A) | Loué (A) |
Acquire (B) |
Loué (B) | Échec (409) | Échec (409) | Loué (B) | Loué (B) |
Break , période=0 |
Échec (409) | Résilié (A) | Résilié (A) | Résilié (A) | Résilié (A) |
Break , période>0 |
Échec (409) | En cours de résiliation (A) | En cours de résiliation (A) | Résilié (A) | Résilié (A) |
Change , (A) à (B) |
Échec (409) | Loué (B) | Échec (409) | Échec (409) | Échec (409) |
Change , (B) à (A) |
Échec (409) | Loué (A) | Échec (409) | Échec (409) | Échec (409) |
Change , (B) à (C) |
Échec (409) | Échec (409) | Échec (409) | Échec (409) | Échec (409) |
Renew (A) |
Échec (409) | Loué (A), réinitialisation de l'horloge d'expiration | Échec (409) | Échec (409) | Loué (A) |
Renew (B) |
Échec (409) | Échec (409) | Échec (409) | Échec (409) | Échec (409) |
Release (A) |
Échec (409) | Disponible | Disponible | Disponible | Disponible |
Release (B) |
Échec (409) | Échec (409) | Échec (409) | Échec (409) | Échec (409) |
Durée expire | Disponible | Expiré (A) | Résilié (A) | Résilié (A) | Expiré (A) |
Facturation
Les demandes de tarification peuvent provenir de clients qui utilisent les API Stockage Blob, soit directement via l’API REST Stockage Blob, soit à partir d’une bibliothèque cliente stockage Azure. Ces demandes accumulent des frais par transaction. Le type de transaction affecte la façon dont le compte est facturé. Par exemple, les transactions de lecture s’accumulent dans une catégorie de facturation différente de celle des transactions d’écriture. Le tableau suivant montre la catégorie de facturation pour Lease Container
les demandes en fonction du type de compte de stockage :
Opération | Type de compte de stockage | Catégorie de facturation |
---|---|---|
Bail Conteneur (acquérir, mettre en production, renouveler) | Objet blob de blocs Premium Usage général v2 Standard |
Autres opérations |
Bail Conteneur (acquérir, mettre en production, renouveler) | Usage général v1 standard | Lire les opérations |
Conteneur de baux (arrêt, modification) | Objet blob de blocs Premium Usage général v2 Standard |
Autres opérations |
Conteneur de baux (arrêt, modification) | Usage général v1 standard | Opérations d’écriture |
Pour en savoir plus sur la tarification de la catégorie de facturation spécifiée, consultez tarification Stockage Blob Azure.
Voir aussi
Autoriser les demandes dans le Stockage Azure
Codes d’état et d’erreur
Codes d’erreur stockage Blob
Bail Blob