Bagikan melalui


Sewa Kontainer

Operasi menetapkan Lease Container dan mengelola kunci pada kontainer untuk operasi penghapusan. Durasi penguncian bisa 15 hingga 60 detik, atau bisa tak terbatas.

Anda dapat memanggil Lease Container operasi dalam salah satu mode berikut:

  • Acquire, untuk meminta sewa baru.

  • Renew, untuk memperbarui sewa yang ada.

  • Change, untuk mengubah ID sewa yang ada.

  • Release, untuk membebaskan sewa jika tidak lagi diperlukan, sehingga klien lain dapat segera memperoleh sewa terhadap kontainer.

  • Break, untuk mengakhiri sewa, tetapi pastikan bahwa klien lain tidak dapat memperoleh sewa baru sampai periode sewa saat ini telah kedaluwarsa.

Catatan

Operasi Lease Container ini tersedia dalam versi 2012-02-12 dan yang lebih baru.

Minta

Anda dapat membuat Lease Container permintaan sebagai berikut. HTTPS disarankan. Ganti myaccount dengan nama akun penyimpanan Anda.

Metode Meminta URI Versi HTTP
PUT https://myaccount.blob.core.windows.net/mycontainer?comp=lease&restype=container HTTP/1.1

Untuk menentukan kontainer akar, masukkan $root sebagai nama kontainer.

URI layanan penyimpanan yang ditimulasi

Saat Anda membuat permintaan terhadap layanan penyimpanan yang ditimulasi, tentukan nama host emulator dan port Azure Blob Storage sebagai 127.0.0.1:10000, diikuti dengan nama akun penyimpanan yang ditimulasi.

Metode Meminta URI Versi HTTP
PUT http://127.0.0.1:10000/mycontainer?comp=lease&restype=container HTTP/1.0

HTTP/1.1

Untuk informasi selengkapnya, lihat Menggunakan emulator Azurite untuk pengembangan Azure Storage lokal.

Parameter URI

Anda dapat menentukan parameter tambahan berikut pada URI permintaan.

Parameter Deskripsi
timeout Opsional. Parameter timeout dinyatakan dalam hitung detik. Untuk informasi selengkapnya, lihat Mengatur batas waktu untuk operasi Blob Storage.

Header permintaan

Tabel berikut ini menjelaskan header permintaan yang diperlukan dan opsional.

Meminta kop Deskripsi
Authorization Wajib diisi. Menentukan skema otorisasi, nama akun, dan tanda tangan. Untuk informasi selengkapnya, lihat Mengotorisasi permintaan ke Azure Storage.
Date atau x-ms-date Wajib diisi. Menentukan Waktu Universal Terkoordinasi (UTC) untuk permintaan tersebut. Untuk informasi selengkapnya, lihat Mengotorisasi permintaan ke Azure Storage.
x-ms-version Opsional. Menentukan versi operasi yang akan digunakan untuk permintaan ini. Untuk informasi selengkapnya, lihat Penerapan versi untuk layanan Azure Storage.
x-ms-lease-id: <ID> Diperlukan untuk memperbarui, mengubah, atau melepaskan sewa.

Anda dapat menentukan nilai x-ms-lease-id dalam format string GUID yang valid. Lihat Konstruktor Guid (String) untuk daftar format yang valid.
x-ms-lease-action: <acquire ¦ renew ¦ change ¦ release ¦ break> acquire: Meminta sewa baru. Jika kontainer tidak memiliki sewa aktif, Blob Storage membuat sewa pada kontainer, dan mengembalikan ID sewa baru. Jika kontainer memiliki sewa aktif, Anda hanya dapat meminta sewa baru dengan menggunakan ID sewa aktif. Namun, Anda dapat menentukan yang baru x-ms-lease duration, termasuk yang negatif (-1) untuk sewa yang tidak pernah kedaluwarsa.

renew: Memperbarui sewa. Anda dapat memperbarui sewa jika ID sewa yang ditentukan pada permintaan cocok dengan yang terkait dengan kontainer. Perhatikan bahwa sewa dapat diperpanjang bahkan jika telah kedaluwarsa, selama kontainer belum disewa lagi sejak kedaluwarsa sewa tersebut. Saat Anda memperbarui sewa, jam durasi sewa direset.

change: Ubah ID sewa sewa aktif. change harus menyertakan ID sewa saat ini di x-ms-lease-id, dan ID sewa baru di x-ms-proposed-lease-id.

release: Lepaskan sewa. Anda dapat merilis sewa jika ID sewa yang ditentukan pada permintaan cocok dengan yang terkait dengan kontainer. Melepaskan sewa memungkinkan klien lain untuk segera memperoleh sewa untuk kontainer, segera setelah rilis selesai.

break: Putuskan sewa, jika kontainer memiliki sewa aktif. Setelah sewa rusak, sewa tidak dapat diperpanjang. Setiap permintaan yang diotorisasi dapat melanggar sewa. Permintaan tidak diperlukan untuk menentukan ID sewa yang cocok. Ketika sewa rusak, periode jeda sewa diizinkan untuk berlalu. Anda hanya dapat melakukan break operasi sewa dan release pada kontainer selama waktu ini. Ketika sewa berhasil rusak, respons menunjukkan interval dalam hitungan detik sampai sewa baru dapat diperoleh.

Sewa yang telah rusak juga dapat dilepaskan. Klien dapat segera memperoleh sewa kontainer yang telah dirilis.
x-ms-lease-break-period: N Pilihan. break Untuk operasi, header ini adalah durasi yang diusulkan bahwa sewa harus dilanjutkan sebelum rusak, antara 0 dan 60 detik. Periode istirahat ini hanya digunakan jika lebih pendek dari waktu yang tersisa pada sewa. Jika lebih lama, waktu yang tersisa pada sewa digunakan. Sewa baru tidak akan tersedia sebelum periode istirahat berakhir, tetapi sewa dapat ditahan lebih lama dari periode istirahat. Jika header ini tidak muncul dengan break operasi, sewa durasi tetap berhenti setelah periode sewa yang tersisa berlalu, dan sewa tak terbatas segera berhenti.
x-ms-lease-duration: -1 ¦ n seconds Diperlukan untuk acquire. Menentukan durasi sewa, dalam detik, atau negatif satu (-1) untuk sewa yang tidak pernah kedaluwarsa. Sewa yang tidak terbatas bisa antara 15 dan 60 detik. Durasi sewa tidak dapat diubah dengan menggunakan renew atau change.
x-ms-proposed-lease-id: <ID> Opsional untuk acquire, dan diperlukan untuk change. ID sewa yang diusulkan, dalam format string GUID. Blob Storage mengembalikan 400 (Invalid request) jika ID sewa yang diusulkan tidak dalam format yang benar. Lihat Konstruktor Guid (String) untuk daftar format yang valid.
Origin Pilihan. Menentukan asal dari mana permintaan dikeluarkan. Kehadiran header ini menghasilkan header berbagi sumber daya lintas asal (CORS) pada respons. Lihat dukungan CORS untuk layanan Penyimpanan untuk detailnya.
x-ms-client-request-id Pilihan. Menyediakan nilai buram yang dihasilkan klien dengan batas karakter 1 kibibyte (KiB) yang dicatat dalam log saat pengelogan dikonfigurasi. Kami sangat menyarankan Anda menggunakan header ini untuk menghubungkan aktivitas sisi klien dengan permintaan yang diterima server. Untuk informasi selengkapnya, lihat Memantau Azure Blob Storage.

Operasi ini juga mendukung penggunaan header kondisional untuk menjalankan operasi hanya jika kondisi tertentu terpenuhi. Untuk informasi selengkapnya, lihat Menentukan header kondisional untuk operasi Blob Storage.

Isi permintaan

Tidak ada.

Permintaan sampel

Contoh permintaan berikut menunjukkan cara memperoleh sewa:

  
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=  
  

Respons

Respons mencakup kode status HTTP dan sekumpulan header respons.

Kode status

Kode status keberhasilan yang dikembalikan untuk operasi sewa adalah sebagai berikut:

  • Acquire: Operasi yang berhasil mengembalikan kode status 201 (Dibuat).

  • Renew: Operasi yang berhasil mengembalikan kode status 200 (OK).

  • Change: Operasi yang berhasil mengembalikan kode status 200 (OK).

  • Release: Operasi yang berhasil mengembalikan kode status 200 (OK).

  • Break: Operasi yang berhasil mengembalikan kode status 202 (Diterima).

Untuk informasi tentang kode status, lihat Status dan kode kesalahan.

Header respons

Respons untuk operasi ini mencakup header berikut. Respons juga dapat mencakup header HTTP standar tambahan. Semua header standar sesuai dengan spesifikasi protokol HTTP/1.1.

Sintaks Deskripsi
ETag ETag untuk kontainer. Header ini dikembalikan untuk permintaan yang dibuat terhadap versi 2013-08-15 dan yang lebih baru, dan ETag nilainya ada dalam tanda kutip. Lease Container operasi yang dibuat terhadap versi 2013-08-15 dan yang lebih baru tidak mengubah properti ini, tetapi versi sebelumnya.
Last-Modified Dikembalikan untuk permintaan yang dibuat terhadap versi 2013-08-15 dan yang lebih baru. Mengembalikan tanggal dan waktu kontainer terakhir diubah. Untuk informasi selengkapnya, lihat Representasi nilai tanggal-waktu di header.

Setiap operasi yang memodifikasi kontainer, atau properti atau metadatanya, memperbarui waktu terakhir diubah. Ini termasuk mengatur izin kontainer. Operasi pada blob tidak memengaruhi waktu terakhir kontainer yang dimodifikasi. Lease Container operasi yang dibuat terhadap versi 2013-08-15 dan yang lebih baru tidak mengubah properti ini, tetapi versi sebelumnya.
x-ms-lease-id: <id> Saat Anda meminta sewa, Blob Storage mengembalikan ID sewa unik. Saat sewa aktif, Anda harus menyertakan ID sewa dengan permintaan apa pun untuk menghapus kontainer, atau memperbarui, mengubah, atau melepaskan sewa.

Operasi perpanjangan yang berhasil juga mengembalikan ID sewa untuk sewa aktif.
x-ms-lease-time: seconds Perkiraan waktu yang tersisa dalam periode sewa, dalam detik. Header ini dikembalikan hanya untuk permintaan yang berhasil untuk memutuskan sewa. Jika istirahat segera, 0 dikembalikan.
x-ms-request-id Header ini secara unik mengidentifikasi permintaan yang dibuat, dan dapat digunakan untuk memecahkan masalah permintaan. Untuk informasi selengkapnya, lihat Pemecahan masalah operasi API.
x-ms-version Menunjukkan versi Blob Storage yang digunakan untuk menjalankan permintaan. Header ini dikembalikan untuk permintaan yang dibuat terhadap versi 2009-09-19 dan yang lebih baru.
Tanggal Nilai tanggal/waktu UTC yang menunjukkan waktu di mana respons dimulai. Layanan menghasilkan nilai ini.
Access-Control-Allow-Origin Dikembalikan jika permintaan menyertakan Origin header, dan CORS diaktifkan dengan aturan yang cocok. Header ini mengembalikan nilai header permintaan asal jika ada kecocokan.
Access-Control-Expose-Headers Dikembalikan jika permintaan menyertakan Origin header, dan CORS diaktifkan dengan aturan yang cocok. Mengembalikan daftar header respons yang akan diekspos ke klien atau penerbit permintaan.
Access-Control-Allow-Credentials Dikembalikan jika permintaan menyertakan Origin header, dan CORS diaktifkan dengan aturan yang cocok yang tidak mengizinkan semua asal. Header ini akan diatur ke true.
x-ms-client-request-id Anda dapat menggunakan header ini untuk memecahkan masalah permintaan dan respons terkait. Nilai header ini sama dengan nilai x-ms-client-request-id header, jika ada dalam permintaan. Nilainya paling banyak 1.024 karakter ASCII yang terlihat. x-ms-client-request-id Jika header tidak ada dalam permintaan, header tidak akan ada dalam respons.

Isi Respons

Tidak ada.

Respons sampel

Berikut ini adalah respons sampel untuk permintaan untuk memperoleh sewa:

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  
  

Authorization

Otorisasi diperlukan saat Anda memanggil operasi akses data apa pun di Azure Storage. Anda dapat mengotorisasi operasi seperti yang Lease Container dijelaskan di bagian berikut.

Penting

Microsoft merekomendasikan penggunaan Microsoft Entra ID dengan identitas terkelola untuk mengotorisasi permintaan ke Azure Storage. Microsoft Entra ID memberikan keamanan yang unggul dan kemudahan penggunaan dibandingkan dengan otorisasi Kunci Bersama.

Azure Storage mendukung penggunaan Microsoft Entra ID untuk mengotorisasi permintaan ke data blob. Dengan Microsoft Entra ID, Anda dapat menggunakan kontrol akses berbasis peran Azure (Azure RBAC) untuk memberikan izin kepada prinsip keamanan. Prinsip keamanan dapat berupa pengguna, grup, perwakilan layanan aplikasi, atau identitas terkelola Azure. Prinsip keamanan diautentikasi oleh Microsoft Entra ID untuk mengembalikan token OAuth 2.0. Token kemudian dapat digunakan untuk mengotorisasi permintaan terhadap Blob Storage.

Untuk mempelajari selengkapnya tentang otorisasi menggunakan Microsoft Entra ID, lihat Mengotorisasi akses ke blob menggunakan Microsoft Entra ID.

Izin

Tindakan RBAC berikut diperlukan untuk pengguna, grup, identitas terkelola, atau perwakilan layanan Microsoft Entra untuk memanggil Lease Container operasi, dan peran Azure RBAC bawaan yang paling tidak istimewa yang mencakup tindakan ini:

Untuk mempelajari selengkapnya tentang menetapkan peran dengan menggunakan Azure RBAC, lihat Menetapkan peran Azure untuk akses ke data blob.

Keterangan

Sewa pada kontainer menyediakan akses penghapusan eksklusif ke kontainer. Sewa kontainer hanya mengontrol kemampuan untuk menghapus kontainer dengan menggunakan operasi Hapus Kontainer . Untuk menghapus kontainer dengan sewa aktif, klien harus menyertakan ID sewa aktif dengan permintaan penghapusan. Jika ID sewa tidak disertakan, operasi gagal dengan 412 (Prasyarat gagal). Semua operasi kontainer lainnya berhasil pada kontainer sewaan, tanpa menyertakan ID sewa. Sewa diberikan selama durasi yang ditentukan ketika sewa diperoleh, yang dapat antara 15 dan 60 detik, atau durasi tak terbatas.

Ketika klien memperoleh sewa, ID sewa dikembalikan. Blob Storage menghasilkan ID sewa, jika tidak ditentukan dalam permintaan peroleh. Klien dapat menggunakan ID sewa ini untuk memperbarui sewa, mengubah ID sewanya, atau melepaskan sewa. Diagram berikut menunjukkan kemungkinan status sewa, dan perintah atau peristiwa yang menyebabkan perubahan status sewa.

Diagram status sewa kontainer, dan pemicu perubahan status.

Sewa dapat berada di salah satu dari lima negara bagian, berdasarkan apakah sewa dikunci atau tidak terkunci, dan apakah sewa dapat diperpanjang dalam keadaan tersebut. Tindakan sewa yang ditunjukkan dalam diagram sebelumnya menyebabkan transisi status.

Status perpanjangan Sewa terkunci Sewa tidak terkunci
Sewa yang dapat diperpanjang Disewakan Kedaluwarsa
Sewa yang tidak dapat diperpanjang Melanggar Rusak, Tersedia
  • Available, sewa tidak terkunci dan dapat diperoleh. Tindakan yang diizinkan: acquire.

  • Leased, sewa dikunci. Tindakan yang diizinkan: acquire (hanya ID sewa yang sama), renew, , releasechange, dan break.

  • Expired, durasi sewa telah kedaluwarsa. Tindakan yang diizinkan: acquire, renew, release, dan break.

  • Breaking, sewa telah rusak, tetapi sewa akan terus dikunci sampai periode istirahat telah kedaluwarsa. Tindakan yang diizinkan: release dan break.

  • Broken, sewa telah rusak, dan periode istirahat telah kedaluwarsa. Tindakan yang diizinkan: acquire, release, dan break.

Blob Storage mempertahankan ID sewa setelah sewa kontainer kedaluwarsa. Klien dapat memperbarui atau merilis sewa dengan menggunakan ID sewa yang kedaluwarsa. Jika klien mencoba memperbarui atau merilis sewa yang kedaluwarsa dengan ID sewa mereka sebelumnya, dan permintaan gagal, maka kontainer disewakan lagi atau dihapus karena sewa klien terakhir aktif.

Jika sewa kedaluwarsa daripada dirilis secara eksplisit, klien mungkin perlu menunggu hingga satu menit sebelum sewa baru dapat diperoleh untuk kontainer. Namun, klien dapat segera memperbarui sewa dengan ID sewa yang kedaluwarsa.

Properti kontainer Last-Modified-Time tidak diperbarui oleh panggilan ke Lease Container.

Tabel berikut menunjukkan hasil tindakan pada kontainer dengan sewa di berbagai status sewa. Huruf (A), (B), dan (C) mewakili ID sewa, dan (X) mewakili ID sewa yang dihasilkan oleh Blob Storage.

Hasil upaya penggunaan pada kontainer berdasarkan status sewa

Tindakan Tersedia Sewaan (A) Pemecahan (A) Rusak (A) Kedaluwarsa (A)
Hapus dengan (A) Gagal (412) Leased (A), penghapusan berhasil Pemisahan (A), penghapusan berhasil Gagal (412) Gagal (412)
Hapus dengan (B) Gagal (412) Gagal (409) Gagal (412) Gagal (412) Gagal (412)
Hapus, tidak ada sewa yang ditentukan Tersedia, penghapusan berhasil Gagal (412) Gagal (412) Tersedia, penghapusan berhasil Tersedia, penghapusan berhasil
Operasi lain dengan (A) Gagal (412) Leased (A), operasi berhasil Pemutusan (A), operasi berhasil Gagal (412) Gagal (412)
Operasi lain dengan (B) Gagal (412) Gagal (409) Gagal (409) Gagal (412) Gagal (412)
Operasi, tidak ada sewa yang ditentukan Tersedia, operasi berhasil Leased (A), operasi berhasil Pemutusan (A), operasi berhasil Operasi rusak (A), berhasil Kedaluwarsa (A), operasi berhasil

Hasil operasi sewa pada kontainer berdasarkan status sewa

Tindakan Tersedia Sewaan (A) Pemecahan (A) Rusak (A) Kedaluwarsa (A)
Acquire, tidak ada ID sewa yang diusulkan Sewaan (X) Gagal (409) Gagal (409) Sewaan (X) Sewaan (X)
Acquire (A) Sewaan (A) Sewa (A), durasi baru Gagal (409) Sewaan (A) Sewaan (A)
Acquire (B) Sewaan (B) Gagal (409) Gagal (409) Sewaan (B) Sewaan (B)
Break, period=0 Gagal (409) Rusak (A) Rusak (A) Rusak (A) Rusak (A)
Break, periode>0 Gagal (409) Pemecahan (A) Pemecahan (A) Rusak (A) Rusak (A)
Change, (A) ke (B) Gagal (409) Sewaan (B) Gagal (409) Gagal (409) Gagal (409)
Change, (B) ke (A) Gagal (409) Sewaan (A) Gagal (409) Gagal (409) Gagal (409)
Change, (B) ke (C) Gagal (409) Gagal (409) Gagal (409) Gagal (409) Gagal (409)
Renew (A) Gagal (409) Reset jam kedaluwarsa (A) yang disewakan Gagal (409) Gagal (409) Sewaan (A)
Renew (B) Gagal (409) Gagal (409) Gagal (409) Gagal (409) Gagal (409)
Release (A) Gagal (409) Tersedia Tersedia Tersedia Tersedia
Release (B) Gagal (409) Gagal (409) Gagal (409) Gagal (409) Gagal (409)
Durasi kedaluwarsa Tersedia Kedaluwarsa (A) Rusak (A) Rusak (A) Kedaluwarsa (A)

Billing

Permintaan harga dapat berasal dari klien yang menggunakan API Blob Storage, baik langsung melalui BLob Storage REST API, atau dari pustaka klien Azure Storage. Permintaan ini mengumpulkan biaya per transaksi. Jenis transaksi memengaruhi bagaimana akun ditagih. Misalnya, membaca transaksi bertambah ke kategori penagihan yang berbeda dari transaksi tulis. Tabel berikut ini memperlihatkan kategori penagihan untuk Lease Container permintaan berdasarkan jenis akun penyimpanan:

Operasi Jenis akun penyimpanan Kategori penagihan
Sewa Kontainer (memperoleh, merilis, memperbarui) Objek besar biner blok premium
Tujuan umum standar v2
Operasi lainnya
Sewa Kontainer (memperoleh, merilis, memperbarui) Tujuan umum standar v1 Membacakan operasi
Sewa Kontainer (putuskan, ubah) Objek besar biner blok premium
Tujuan umum standar v2
Operasi lainnya
Sewa Kontainer (putuskan, ubah) Tujuan umum standar v1 Operasi tulis

Untuk mempelajari tentang harga untuk kategori penagihan yang ditentukan, lihat harga Azure Blob Storage.

Lihat juga

Mengotorisasi permintaan ke Azure Storage
Status dan kode galat
Kode kesalahan Blob Storage
Menyewa Blob