Membuat dan mengelola objek klien yang berinteraksi dengan sumber daya data
Azure SDK adalah kumpulan pustaka yang dibuat untuk memudahkan penggunaan layanan Azure dari berbagai bahasa. SDK dirancang untuk menyederhanakan interaksi antara aplikasi Anda dan sumber daya Azure. Bekerja dengan sumber daya Azure menggunakan SDK dimulai dengan membuat instans klien. Artikel ini memperlihatkan cara membuat objek klien untuk berinteraksi dengan sumber daya data di Azure Blob Storage, dan menawarkan praktik terbaik tentang cara mengelola klien di aplikasi Anda.
Tentang objek klien
Pustaka klien Azure Blob Storage memungkinkan Anda berinteraksi dengan tiga jenis sumber daya dalam layanan penyimpanan:
- Akun penyimpanan
- Kontainer blob
- Blobs
Tergantung pada kebutuhan aplikasi Anda, Anda dapat membuat objek klien di salah satu dari tiga tingkat ini.
Untuk blob, ada klien blob umum yang mencakup operasi blob umum di semua jenis, dan ada klien blob khusus untuk setiap jenis (blob blok, blob penambahan, dan blob halaman).
Tabel berikut mencantumkan kelas klien yang berbeda untuk setiap bahasa:
1 Untuk Python, BlobClient
termasuk metode untuk jenis blob khusus.
Setiap jenis klien dapat dibuat dengan memanggil konstruktor sederhana, atau kelebihan beban yang mengambil berbagai opsi konfigurasi. Untuk Java, setiap jenis klien memiliki kelas terpisah yang menyediakan API penyusun untuk membantu konfigurasi dan instansiasi. Bergantung pada bahasa SDK, opsi konfigurasi klien ini diteruskan ke konstruktor dengan cara yang berbeda. Lihat referensi kelas dari tabel untuk detailnya.
Mengotorisasi objek klien
Agar aplikasi dapat mengakses sumber daya blob dan berinteraksi dengannya, objek klien harus diotorisasi. Sampel kode dalam artikel ini menggunakan DefaultAzureCredential untuk mengautentikasi ke Azure melalui perwakilan keamanan Microsoft Entra. Proses autentikasi termasuk mendapatkan token akses untuk otorisasi. Token akses ini diteruskan sebagai kredensial ketika klien dibuat, dan kredensial tetap ada sepanjang masa pakai klien. Perwakilan keamanan Microsoft Entra yang meminta token harus diberi peran Azure RBAC yang sesuai yang memberikan akses ke data blob. Untuk mempelajari selengkapnya, lihat Menetapkan peran Azure untuk akses ke data blob.
Mekanisme otorisasi berikut dapat digunakan untuk memberikan tingkat akses yang sesuai ke objek klien:
- ID Microsoft Entra: direkomendasikan untuk keamanan yang optimal
- Tanda tangan akses bersama (SAS): didukung, dan paling aman saat menggunakan token SAS delegasi pengguna
- Kunci akses akun (Kunci Bersama): didukung, tetapi tidak disarankan karena dapat kurang aman
Untuk mempelajari selengkapnya tentang otorisasi, lihat Mengotorisasi akses ke data di Azure Storage.
Membuat objek klien
Bekerja dengan sumber daya Azure apa pun menggunakan SDK dimulai dengan membuat objek klien. Di bagian ini, Anda mempelajari cara membuat objek klien untuk berinteraksi dengan tiga jenis sumber daya dalam layanan penyimpanan: akun penyimpanan, kontainer, dan blob.
Saat aplikasi Anda membuat objek klien, Anda meneruskan URI yang mereferensikan titik akhir ke konstruktor klien. Anda dapat membuat string titik akhir secara manual, seperti yang diperlihatkan dalam contoh dalam artikel ini, atau Anda dapat mengkueri titik akhir saat runtime menggunakan pustaka manajemen Azure Storage. Untuk mempelajari cara mengkueri titik akhir, lihat Kueri untuk titik akhir Blob Storage.
Membuat objek BlobServiceClient
Objek resmi BlobServiceClient
memungkinkan aplikasi Anda berinteraksi dengan sumber daya di tingkat akun penyimpanan. BlobServiceClient
menyediakan metode untuk mengambil dan mengonfigurasi properti akun, serta mencantumkan, membuat, dan menghapus kontainer dalam akun penyimpanan. Objek klien ini adalah titik awal untuk berinteraksi dengan sumber daya di akun penyimpanan.
Skenario umum adalah membuat instans klien layanan tunggal, lalu membuat klien kontainer dan klien blob dari klien layanan, sesuai kebutuhan. Untuk bekerja dengan kontainer atau blob tertentu, Anda dapat menggunakan BlobServiceClient
objek untuk membuat klien kontainer atau klien blob. Klien yang BlobServiceClient
dibuat dari akan mewarisi konfigurasi kliennya, termasuk opsi klien dan kredensial.
Contoh berikut menunjukkan cara membuat BlobServiceClient
objek:
Tambahkan instruksi using
berikut:
using Azure.Identity;
using Azure.Storage.Blobs;
Tambahkan kode berikut untuk membuat objek klien:
public BlobServiceClient GetBlobServiceClient(string accountName)
{
BlobServiceClient client = new(
new Uri($"https://{accountName}.blob.core.windows.net"),
new DefaultAzureCredential());
return client;
}
Membuat objek BlobContainerClient
Anda dapat menggunakan BlobServiceClient
objek untuk membuat objek baru BlobContainerClient
(ContainerClient
untuk JavaScript dan Python). Objek BlobContainerClient
memungkinkan Anda berinteraksi dengan sumber daya kontainer tertentu. Sumber daya ini tidak perlu ada di akun penyimpanan bagi Anda untuk membuat objek klien. BlobContainerClient
menyediakan metode untuk membuat, menghapus, atau mengonfigurasi kontainer, dan menyertakan metode untuk mencantumkan, mengunggah, dan menghapus blob di dalamnya. Untuk melakukan operasi pada blob tertentu dalam kontainer, Anda dapat membuat klien blob.
Contoh berikut menunjukkan cara membuat klien kontainer dari BlobServiceClient
objek untuk berinteraksi dengan sumber daya kontainer tertentu:
public BlobContainerClient GetBlobContainerClient(
BlobServiceClient blobServiceClient,
string containerName)
{
// Create the container client using the service client object
BlobContainerClient client = blobServiceClient.GetBlobContainerClient(containerName);
return client;
}
Jika pekerjaan Anda dilingkup secara sempit ke satu kontainer, Anda dapat memilih untuk membuat BlobContainerClient
objek secara langsung tanpa menggunakan BlobServiceClient
. Anda masih dapat mengatur opsi klien pada klien kontainer seperti yang Anda lakukan pada klien layanan.
Contoh berikut menunjukkan cara membuat klien kontainer secara langsung tanpa menggunakan BlobServiceClient
:
public BlobContainerClient GetBlobContainerClient(
string accountName,
string containerName,
BlobClientOptions clientOptions)
{
// Append the container name to the end of the URI
BlobContainerClient client = new(
new Uri($"https://{accountName}.blob.core.windows.net/{containerName}"),
new DefaultAzureCredential(),
clientOptions);
return client;
}
Membuat objek BlobClient
Untuk berinteraksi dengan sumber daya blob tertentu, buat BlobClient
objek dari klien layanan atau klien kontainer. Objek BlobClient
memungkinkan Anda berinteraksi dengan sumber daya blob tertentu. Sumber daya ini tidak perlu ada di akun penyimpanan bagi Anda untuk membuat objek klien. BlobClient
menyediakan metode untuk mengunggah, mengunduh, menghapus, dan membuat rekam jepret blob.
Contoh berikut menunjukkan cara membuat klien blob untuk berinteraksi dengan sumber daya blob tertentu:
public BlobClient GetBlobClient(
BlobServiceClient blobServiceClient,
string containerName,
string blobName)
{
BlobClient client =
blobServiceClient.GetBlobContainerClient(containerName).GetBlobClient(blobName);
return client;
}
Mengelola objek klien
Praktik terbaik untuk manajemen klien Azure SDK adalah memperlakukan klien sebagai singleton, yang berarti bahwa kelas hanya akan memiliki satu objek pada satu waktu. Tidak perlu menyimpan lebih dari satu instans klien untuk serangkaian parameter konstruktor atau opsi klien tertentu. Konsep ini dapat diimplementasikan dalam banyak hal, termasuk:
- Membuat satu objek klien dan meneruskannya sebagai parameter di seluruh aplikasi. Pendekatan ini ditunjukkan dalam contoh kode dalam artikel ini.
- Menyimpan instans klien di bidang. Untuk mempelajari selengkapnya tentang bidang C#, lihat Bidang (Panduan Pemrograman C#).
- Mendaftarkan objek klien sebagai singleton dalam kontainer injeksi dependensi pilihan Anda. Untuk informasi selengkapnya tentang injeksi dependensi di aplikasi ASP.NET Core, lihat Injeksi dependensi dengan Azure SDK untuk .NET.
Pendekatan ini jauh lebih efisien dalam skala besar daripada memanggil konstruktor untuk setiap klien yang Anda butuhkan.
Kekekalan klien dan keamanan utas
Klien Azure SDK tidak dapat diubah setelah dibuat, yang berarti Anda tidak dapat mengubah titik akhir yang disambungkannya, kredensial yang digunakan untuk otorisasi, atau nilai lain yang diteruskan sebagai opsi klien. Kekekalan klien juga berarti bahwa klien aman untuk berbagi dan menggunakan kembali di seluruh aplikasi.
Jika aplikasi Anda perlu menggunakan konfigurasi atau kredensial yang berbeda untuk klien dengan jenis yang sama, Anda dapat membuat instans klien untuk setiap set opsi konfigurasi.
Azure SDK menjamin bahwa semua metode instans klien aman dan independen satu sama lain. Desain ini memastikan bahwa berbagi dan menggunakan kembali instans klien selalu aman, bahkan di seluruh utas.
Langkah berikutnya
Untuk mempelajari selengkapnya tentang menggunakan pustaka klien Azure Storage untuk bekerja dengan sumber daya data, lihat artikel berikut ini: