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:
- Tindakan Azure RBAC: Microsoft.Storage/storageAccounts/blobServices/containers/write
- Peran bawaan yang paling tidak istimewa: Kontributor Data Blob Penyimpanan
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.
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
, ,release
change
, danbreak
.Expired
, durasi sewa telah kedaluwarsa. Tindakan yang diizinkan:acquire
,renew
,release
, danbreak
.Breaking
, sewa telah rusak, tetapi sewa akan terus dikunci sampai periode istirahat telah kedaluwarsa. Tindakan yang diizinkan:release
danbreak
.Broken
, sewa telah rusak, dan periode istirahat telah kedaluwarsa. Tindakan yang diizinkan:acquire
,release
, danbreak
.
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