Udostępnij za pośrednictwem


Tworzenie dzierżaw kontenerów i zarządzanie nimi za pomocą języka JavaScript lub TypeScript

W tym artykule pokazano, jak tworzyć dzierżawy kontenerów i zarządzać nimi przy użyciu biblioteki klienta usługi Azure Storage dla języka JavaScript. Bibliotekę klienta można używać do uzyskiwania, odnawiania, wydawania i przerywania dzierżaw kontenerów.

Wymagania wstępne

  • W przykładach w tym artykule założono, że masz już skonfigurowany projekt do pracy z biblioteką klienta usługi Azure Blob Storage dla języka JavaScript. Aby dowiedzieć się więcej o konfigurowaniu projektu, w tym instalacji pakietu, importowaniu modułów i tworzeniu autoryzowanego obiektu klienta do pracy z zasobami danych, zobacz Rozpoczynanie pracy z usługami Azure Blob Storage i JavaScript.
  • Mechanizm autoryzacji musi mieć uprawnienia do pracy z dzierżawą kontenera. Aby dowiedzieć się więcej, zobacz wskazówki dotyczące autoryzacji dla następującej operacji interfejsu API REST:

Informacje o dzierżawach kontenerów

Dzierżawa ustanawia blokadę w kontenerze i zarządza nią na potrzeby operacji usuwania. Czas trwania blokady może wynosić od 15 do 60 sekund lub może być nieskończony. Dzierżawa kontenera zapewnia wyłączny dostęp do kontenera. Dzierżawa kontenera kontroluje tylko możliwość usunięcia kontenera przy użyciu operacji Usuń interfejs API REST kontenera . Aby usunąć kontener z aktywną dzierżawą, klient musi uwzględnić aktywny identyfikator dzierżawy z żądaniem usunięcia. Wszystkie inne operacje kontenera kończą się powodzeniem dla dzierżawionego kontenera bez identyfikatora dzierżawy. Jeśli włączono usuwanie nietrwałe kontenera, możesz przywrócić usunięte kontenery.

Aby dowiedzieć się więcej na temat stanów dzierżawy i tego, kiedy można wykonać daną akcję w dzierżawie, zobacz Dzierżawa stanów i akcji.

Operacje dzierżawy są obsługiwane przez klasę BlobLeaseClient , która udostępnia klienta zawierającego wszystkie operacje dzierżawy dla obiektów blob i kontenerów. Aby dowiedzieć się więcej o dzierżawach obiektów blob przy użyciu biblioteki klienta, zobacz Tworzenie dzierżaw obiektów blob i zarządzanie nimi za pomocą języka JavaScript.

Uzyskiwanie dzierżawy

Po uzyskaniu dzierżawy kontenera uzyskujesz identyfikator dzierżawy, którego kod może użyć do działania w kontenerze. Jeśli kontener ma już aktywną dzierżawę, możesz zażądać tylko nowej dzierżawy przy użyciu aktywnego identyfikatora dzierżawy. Można jednak określić nowy czas trwania dzierżawy.

Aby uzyskać dzierżawę, utwórz wystąpienie klasy BlobLeaseClient , a następnie użyj jednej z następujących metod:

Poniższy przykład uzyskuje 30-sekundową dzierżawę dla kontenera:

async function acquireContainerLeaseAsync(blobContainerClient) {

  const leaseClient = blobContainerClient.getBlobLeaseClient();
  await leaseClient.acquireLease(30);
  return leaseClient;
}

Odnawianie dzierżawy

Dzierżawę kontenera można odnowić, jeśli identyfikator dzierżawy określony w żądaniu jest zgodny z identyfikatorem dzierżawy skojarzonym z kontenerem. Dzierżawę można odnowić, nawet jeśli wygaśnie, o ile kontener nie został ponownie wydzierżawiony od czasu wygaśnięcia tej dzierżawy. Po odnowieniu dzierżawy czas trwania resetowania dzierżawy.

Aby odnowić dzierżawę, użyj jednej z następujących metod w wystąpieniu obiektu BlobLeaseClient :

Poniższy przykład odnawia dzierżawę kontenera:

async function renewContainerLeaseAsync(blobContainerClient, leaseID) {
  
  const leaseClient = blobContainerClient.getBlobLeaseClient(leaseID);
  await leaseClient.renewLease();
}

Zwalnianie dzierżawy

Dzierżawę kontenera można zwolnić, jeśli identyfikator dzierżawy określony w żądaniu jest zgodny z identyfikatorem dzierżawy skojarzonym z kontenerem. Zwolnienie dzierżawy umożliwia innemu klientowi uzyskanie dzierżawy dla kontenera natychmiast po zakończeniu wydania.

Dzierżawę można zwolnić przy użyciu jednej z następujących metod w wystąpieniu obiektu BlobLeaseClient :

Poniższy przykład zwalnia dzierżawę w kontenerze:

async function releaseContainerLeaseAsync(blobContainerClient, leaseID) {
  
  const leaseClient = blobContainerClient.getBlobLeaseClient(leaseID);
  await leaseClient.releaseLease();
}

Przerywanie dzierżawy

Dzierżawę kontenera można przerwać, jeśli kontener ma aktywną dzierżawę. Każde autoryzowane żądanie może przerwać dzierżawę; żądanie nie jest wymagane do określenia zgodnego identyfikatora dzierżawy. Nie można odnowić dzierżawy po jej uszkodzeniu i przerwanie dzierżawy uniemożliwia uzyskanie nowej dzierżawy, dopóki oryginalna dzierżawa nie wygaśnie lub zostanie zwolniona.

Dzierżawę można przerwać przy użyciu jednej z następujących metod w wystąpieniu obiektu BlobLeaseClient :

Poniższy przykład powoduje przerwanie dzierżawy w kontenerze:

async function breakContainerLeaseAsync(blobContainerClient) {
  
  const leaseClient = blobContainerClient.getBlobLeaseClient();
  await leaseClient.breakLease();
}

Stany dzierżawy i akcje

Na poniższym diagramie przedstawiono pięć stanów dzierżawy oraz polecenia lub zdarzenia, które powodują zmiany stanu dzierżawy.

Diagram przedstawiający stany dzierżawy kontenera i wyzwalacze zmian stanu.

W poniższej tabeli wymieniono pięć stanów dzierżawy, podano krótki opis każdego z nich i wymieniono akcje dzierżawy dozwolone w danym stanie. Te akcje dzierżawy powodują przejścia stanu, jak pokazano na diagramie.

Stan dzierżawy opis Dozwolone akcje dzierżawy
Dostępny Dzierżawa jest odblokowana i można jej uzyskać. acquire
Dzierżawionych Dzierżawa jest zablokowana. acquire (tylko ten sam identyfikator dzierżawy), renew, change, releasei break
Wygasła Czas trwania dzierżawy wygasł. acquire, renew, releasei break
Łamanie Dzierżawa została przerwana, ale dzierżawa będzie nadal blokowana do czasu wygaśnięcia okresu przerwania. release i break
Złamane Dzierżawa została przerwana, a okres przerwania wygasł. acquire, release i break

Po wygaśnięciu dzierżawy identyfikator dzierżawy jest utrzymywany przez usługę Blob Service do momentu ponownego zmodyfikowania lub ponownego dzierżawy kontenera. Klient może próbować odnowić lub zwolnić dzierżawę przy użyciu wygasłego identyfikatora dzierżawy. Jeśli żądanie zakończy się niepowodzeniem, klient wie, że kontener został ponownie wydzierżawiony lub kontener został usunięty od czasu ostatniego aktywnego działania dzierżawy.

Jeśli dzierżawa wygaśnie, a nie zostanie jawnie zwolniona, może być konieczne odczekenie do jednej minuty przed uzyskaniem nowej dzierżawy dla kontenera. Klient może jednak natychmiast odnowić dzierżawę z wygasłym identyfikatorem dzierżawy.

Zasoby

Aby dowiedzieć się więcej na temat zarządzania dzierżawami kontenerów przy użyciu biblioteki klienta usługi Azure Blob Storage dla języka JavaScript, zobacz następujące zasoby.

Przykłady kodu

Operacje interfejsu API REST

Zestaw Azure SDK dla języka JavaScript zawiera biblioteki, które bazują na interfejsie API REST platformy Azure, co umożliwia interakcję z operacjami interfejsu API REST za pomocą znanych paradygmatów języka JavaScript. Metody biblioteki klienta do zarządzania dzierżawami kontenerów używają następującej operacji interfejsu API REST:

Zasoby biblioteki klienta

Zobacz też

  • Ten artykuł jest częścią przewodnika dla deweloperów usługi Blob Storage dla języka JavaScript/Typescript. Aby dowiedzieć się więcej, zobacz pełną listę artykułów z przewodnika dla deweloperów na stronie Tworzenie aplikacji JavaScript/Typescript.