Membuat dan mengelola sewa kontainer dengan .NET
Artikel ini memperlihatkan cara membuat dan mengelola sewa kontainer menggunakan pustaka klien Azure Storage untuk .NET. Anda dapat menggunakan pustaka klien untuk memperoleh, memperbarui, merilis, dan memutuskan sewa kontainer.
Prasyarat
- Langganan Azure - buat akun secara gratis
- Akun penyimpanan Azure - buat akun penyimpanan
- .NET SDK terbaru untuk sistem operasi Anda. Pastikan untuk mendapatkan SDK alih-alih runtime.
Menyiapkan lingkungan Anda
Jika Anda tidak memiliki proyek yang sudah ada, bagian ini menunjukkan kepada Anda cara menyiapkan proyek untuk bekerja dengan pustaka klien Azure Blob Storage untuk .NET. Langkah-langkahnya termasuk penginstalan paket, menambahkan arahan using
, dan membuat objek klien resmi. Untuk detailnya, lihat Mulai menggunakan Azure Blob Storage dan .NET.
Memasang paket
Dari direktori proyek Anda, instal paket untuk pustaka klien Azure Blob Storage dan Azure Identity menggunakan dotnet add package
perintah . Paket Azure.Identity diperlukan untuk koneksi tanpa kata sandi ke layanan Azure.
dotnet add package Azure.Storage.Blobs
dotnet add package Azure.Identity
Tambahkan direktif using
Tambahkan arahan ini using
ke bagian atas file kode Anda:
using Azure.Identity;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using Azure.Storage.Blobs.Specialized;
Beberapa contoh kode dalam artikel ini mungkin memerlukan arahan tambahan using
.
Membuat objek klien
Untuk menyambungkan aplikasi ke Blob Storage, buat instans BlobServiceClient. Contoh berikut menunjukkan cara membuat objek klien menggunakan DefaultAzureCredential
untuk otorisasi:
public BlobServiceClient GetBlobServiceClient(string accountName)
{
BlobServiceClient client = new(
new Uri($"https://{accountName}.blob.core.windows.net"),
new DefaultAzureCredential());
return client;
}
Anda dapat mendaftarkan klien layanan untuk injeksi dependensi di aplikasi .NET.
Anda juga dapat membuat objek klien untuk kontainer atau blob tertentu. Untuk mempelajari selengkapnya tentang membuat dan mengelola objek klien, lihat Membuat dan mengelola objek klien yang berinteraksi dengan sumber daya data.
Authorization
Mekanisme otorisasi harus memiliki izin yang diperlukan untuk bekerja dengan sewa kontainer. Untuk otorisasi dengan MICROSOFT Entra ID (disarankan), Anda memerlukan peran bawaan Azure RBAC Kontributor Data Blob Penyimpanan atau yang lebih tinggi. Untuk mempelajari lebih lanjut, lihat panduan otorisasi untuk Kontainer Sewa (REST API).
Tentang sewa kontainer
Sewa menetapkan dan mengelola kunci pada kontainer untuk operasi penghapusan. Durasi penguncian bisa 15 hingga 60 detik, atau bisa tak terbatas. Sewa pada kontainer menyediakan akses penghapusan eksklusif ke kontainer. Sewa kontainer hanya mengontrol kemampuan untuk menghapus kontainer menggunakan operasi Delete Container REST API. Untuk menghapus kontainer dengan sewa aktif, klien harus menyertakan ID sewa aktif dengan permintaan penghapusan. Semua operasi kontainer lainnya berhasil pada kontainer sewaan tanpa ID sewa. Jika Anda telah mengaktifkan penghapusan sementara kontainer, Anda dapat memulihkan kontainer yang dihapus.
Untuk mempelajari selengkapnya tentang status sewa dan kapan Anda dapat melakukan tindakan tertentu pada sewa, lihat Status sewa dan tindakan.
Operasi sewa ditangani oleh kelas BlobLeaseClient , yang menyediakan klien yang berisi semua operasi sewa untuk blob dan kontainer. Untuk mempelajari selengkapnya tentang sewa blob menggunakan pustaka klien, lihat Membuat dan mengelola sewa blob dengan .NET.
Mendapatkan sewa
Ketika Anda memperoleh sewa kontainer, Anda mendapatkan ID sewa yang dapat digunakan kode Anda untuk beroperasi pada kontainer. Jika kontainer sudah memiliki sewa aktif, Anda hanya dapat meminta sewa baru dengan menggunakan ID sewa aktif. Namun, Anda dapat menentukan durasi sewa baru.
Untuk memperoleh sewa, buat instans kelas BlobLeaseClient , lalu gunakan salah satu metode berikut:
Contoh berikut memperoleh sewa 30 detik untuk kontainer:
public static async Task<BlobLeaseClient> AcquireContainerLeaseAsync(
BlobContainerClient containerClient)
{
// Get a BlobLeaseClient object to work with a container lease
BlobLeaseClient leaseClient = containerClient.GetBlobLeaseClient();
Response<BlobLease> response =
await leaseClient.AcquireAsync(duration: TimeSpan.FromSeconds(30));
// Use response.Value to get information about the container lease
return leaseClient;
}
Memperpanjang sewa
Anda dapat memperbarui sewa kontainer jika ID sewa yang ditentukan pada permintaan cocok dengan ID sewa yang terkait dengan kontainer. Sewa dapat diperpanjang bahkan jika telah kedaluwarsa, selama kontainer belum disewakan lagi sejak kedaluwarsa sewa tersebut. Saat Anda memperbarui sewa, durasi reset sewa.
Untuk memperbarui sewa, gunakan salah satu metode berikut pada instans BlobLeaseClient :
Contoh berikut memperbarui sewa kontainer:
public static async Task RenewContainerLeaseAsync(
BlobContainerClient containerClient,
string leaseID)
{
// Get a BlobLeaseClient object to work with a container lease
BlobLeaseClient leaseClient = containerClient.GetBlobLeaseClient(leaseID);
await leaseClient.RenewAsync();
}
Melepaskan sewa
Anda dapat merilis sewa kontainer jika ID sewa yang ditentukan pada permintaan cocok dengan ID sewa yang terkait dengan kontainer. Melepaskan sewa memungkinkan klien lain untuk memperoleh sewa untuk kontainer segera setelah rilis selesai.
Anda dapat merilis sewa menggunakan salah satu metode berikut pada instans BlobLeaseClient :
Contoh berikut merilis sewa pada kontainer:
public static async Task ReleaseContainerLeaseAsync(
BlobContainerClient containerClient,
string leaseID)
{
// Get a BlobLeaseClient object to work with a container lease
BlobLeaseClient leaseClient = containerClient.GetBlobLeaseClient(leaseID);
await leaseClient.ReleaseAsync();
}
Memutuskan sewa
Anda dapat memutuskan sewa kontainer jika kontainer memiliki sewa aktif. Setiap permintaan yang diotorisasi dapat memutus sewa; permintaan tidak diperlukan untuk menentukan ID sewa yang cocok. Sewa tidak dapat diperbarui setelah rusak, dan melanggar sewa mencegah sewa baru diperoleh untuk jangka waktu tertentu sampai sewa asli kedaluwarsa atau dirilis.
Anda dapat memutuskan sewa menggunakan salah satu metode berikut pada instans BlobLeaseClient :
Contoh berikut memutus sewa pada kontainer:
public static async Task BreakContainerLeaseAsync(
BlobContainerClient containerClient)
{
// Get a BlobLeaseClient object to work with a container lease
BlobLeaseClient leaseClient = containerClient.GetBlobLeaseClient();
await leaseClient.BreakAsync();
}
Status dan tindakan sewa
Diagram berikut menunjukkan lima status sewa, dan perintah atau peristiwa yang menyebabkan perubahan status sewa.
Tabel berikut mencantumkan lima status sewa, memberikan deskripsi singkat masing-masing, dan mencantumkan tindakan sewa yang diizinkan dalam status tertentu. Tindakan sewa ini menyebabkan transisi status, seperti yang ditunjukkan dalam diagram.
status sewa | Deskripsi | Tindakan sewa diizinkan |
---|---|---|
Tersedia | Sewa tidak terkunci dan dapat diperoleh. | acquire |
Disewakan | Sewa dikunci. | acquire (id sewa yang sama saja), renew , , change , release dan break |
Kedaluwarsa | Durasi sewa telah kedaluwarsa. | acquire , renew , release , dan break |
Melanggar | Sewa telah rusak, tetapi sewa akan terus dikunci sampai periode istirahat berakhir. | release dan break |
Terputus | Sewa telah rusak, dan periode istirahat telah kedaluwarsa. | acquire , release , dan break |
Ketika sewa kedaluwarsa, ID sewa dipertahankan oleh layanan Blob sampai kontainer dimodifikasi atau disewakan lagi. Klien dapat mencoba memperbarui atau melepaskan sewa menggunakan ID sewa yang kedaluwarsa. Jika permintaan gagal, klien tahu bahwa kontainer disewakan lagi, atau kontainer dihapus sejak sewa 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.
Sumber
Untuk mempelajari selengkapnya tentang mengelola sewa kontainer menggunakan pustaka klien Azure Blob Storage untuk .NET, lihat sumber daya berikut ini.
Sampel kode
Operasi REST API
Azure SDK untuk .NET berisi pustaka yang dibangun di atas Azure REST API, memungkinkan Anda berinteraksi dengan operasi REST API melalui paradigma .NET yang sudah dikenal. Metode pustaka klien untuk mengelola sewa kontainer menggunakan operasi REST API berikut:
Sumber daya pustaka klien
Lihat juga
Konten terkait
- Artikel ini adalah bagian dari panduan pengembang Blob Storage untuk .NET. Untuk mempelajari lebih lanjut, lihat daftar lengkap artikel panduan pengembang di Membangun aplikasi .NET Anda.