Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Pada panduan cepat ini, Anda menyebarkan Azure Cosmos DB untuk aplikasi NoSQL menggunakan Azure SDK untuk .NET. Azure Cosmos DB for NoSQL adalah penyimpanan data tanpa skema yang memungkinkan aplikasi menyimpan data yang tidak terstruktur di cloud. Kueri data dalam kontainer Anda dan lakukan operasi umum pada item individual menggunakan Azure SDK untuk .NET.
Dokumentasi referensi API | Kode sumber pustaka | Paket (NuGet) | Azure Developer CLI
Prasyarat
- Azure Developer CLI
- ** Docker Desktop
- .NET 9.0
Jika Anda tidak memiliki akun Azure, buat akun gratis sebelum memulai.
Menginisialisasi proyek
Gunakan Azure Developer CLI (azd) untuk membuat azure Cosmos DB untuk akun NoSQL dan menyebarkan aplikasi sampel dalam kontainer. Aplikasi sampel menggunakan pustaka klien untuk mengelola, membuat, membaca, dan mengkueri data sampel.
Buka terminal di direktori kosong.
Jika Anda belum diautentikasi, autentikasi ke Azure Developer CLI menggunakan
azd auth login. Ikuti langkah-langkah yang ditentukan oleh alat untuk mengautentikasi ke CLI menggunakan kredensial Azure pilihan Anda.azd auth loginGunakan
azd inituntuk menginisialisasi proyek.azd init --template cosmos-db-nosql-dotnet-quickstartSelama inisialisasi, konfigurasikan nama lingkungan yang unik.
Sebarkan akun Azure Cosmos DB menggunakan
azd up. Templat Bicep juga mengimplementasikan aplikasi web sampel.azd upSelama proses provisi, pilih langganan Anda, lokasi yang diinginkan, dan grup sumber daya target. Tunggu hingga proses provisi selesai. Prosesnya dapat memakan waktu sekitar lima menit.
Setelah provisi sumber daya Azure Anda selesai, URL ke aplikasi web yang sedang berjalan disertakan dalam output.
Deploying services (azd deploy) (✓) Done: Deploying service web - Endpoint: <https://[container-app-sub-domain].azurecontainerapps.io> SUCCESS: Your application was provisioned and deployed to Azure in 5 minutes 0 seconds.Gunakan URL di konsol untuk menavigasi ke aplikasi web Anda di browser. Amati output aplikasi yang sedang berjalan.
Memasang pustaka klien
Pustaka klien tersedia sebagai paket Microsoft.Azure.Cosmos melalui NuGet.
Buka terminal dan navigasi ke
/src/webfolder .cd ./src/webJika belum diinstal, instal
Microsoft.Azure.Cosmospaket menggunakandotnet add package.dotnet add package Microsoft.Azure.Cosmos --version 3.*Selain itu, instal paket
Azure.Identityjika paket tersebut belum diinstal.dotnet add package Azure.Identity --version 1.12.*Buka dan tinjau file src/web/Cosmos.Samples.NoSQL.Quickstart.Web.csproj untuk memvalidasi bahwa
Microsoft.Azure.Cosmosentri danAzure.Identitykeduanya ada.
Mengimpor pustaka
Impor namespace Azure.Identity dan Microsoft.Azure.Cosmos ke dalam kode aplikasi Anda.
using Azure.Identity;
using Microsoft.Azure.Cosmos;
Model objek
| Nama | Description |
|---|---|
| CosmosClient | Kelas ini adalah kelas klien utama dan digunakan untuk mengelola metadata atau database di seluruh akun. |
| Database | Kelas ini mewakili database dalam akun. |
| Container | Kelas ini terutama digunakan untuk melakukan operasi baca, perbarui, dan hapus pada kontainer atau item yang disimpan dalam kontainer. |
| PartitionKey | Kelas ini mewakili kunci partisi logis. Kelas ini diperlukan untuk banyak operasi dan pertanyaan yang umum. |
Contoh kode
- Autentikasi klien
- Mendapatkan database
- Ambil sebuah kontainer
- Buat sebuah item
- Dapatkan item
- Item pencarian
Kode sampel dalam templat menggunakan database bernama cosmicworks dan kontainer bernama products. Kontainer products berisi detail seperti nama, kategori, kuantitas, pengidentifikasi unik, dan bendera penjualan untuk setiap produk. Kontainer menggunakan /category properti sebagai kunci partisi logis.
Mengautentikasi klien
Sampel ini membuat instance baru dari kelas CosmosClient dan mengautentikasi menggunakan instance DefaultAzureCredential.
DefaultAzureCredential credential = new();
CosmosClient client = new(
accountEndpoint: "<azure-cosmos-db-nosql-account-endpoint>",
tokenCredential: credential
);
Akses database
Gunakan client.GetDatabase untuk mengambil database yang sudah ada bernama cosmicworks.
Database database = client.GetDatabase("cosmicworks");
Dapatkan kontainer
Ambil kontainer products yang sudah ada menggunakan database.GetContainer.
Container container = database.GetContainer("products");
Membuat sebuah item
Buat jenis catatan C# dengan semua anggota yang ingin Anda serialkan ke JSON. Dalam contoh ini, tipe memiliki pengidentifikasi unik, dan kolom untuk kategori, nama, kuantitas, harga, dan penjualan.
public record Product(
string id,
string category,
string name,
int quantity,
decimal price,
bool clearance
);
Buat item dalam kontainer menggunakan container.UpsertItem. Metode ini secara efektif melakukan "upsert" pada item, menggantinya jika item tersebut sudah ada.
Product item = new(
id: "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
category: "gear-surf-surfboards",
name: "Yamba Surfboard",
quantity: 12,
price: 850.00m,
clearance: false
);
ItemResponse<Product> response = await container.UpsertItemAsync<Product>(
item: item,
partitionKey: new PartitionKey("gear-surf-surfboards")
);
Bacalah sebuah item
Lakukan operasi baca titik dengan menggunakan bidang pengidentifikasi unik (id) dan kunci partisi. Gunakan container.ReadItem untuk mengambil item tertentu secara efisien.
ItemResponse<Product> response = await container.ReadItemAsync<Product>(
id: "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
partitionKey: new PartitionKey("gear-surf-surfboards")
);
Buat kueri item
Lakukan kueri melalui beberapa item dalam kontainer menggunakan container.GetItemQueryIterator. Temukan semua item dalam kategori tertentu menggunakan kueri berparameter ini:
SELECT * FROM products p WHERE p.category = @category
string query = "SELECT * FROM products p WHERE p.category = @category";
var queryDefinition = new QueryDefinition(query)
.WithParameter("@category", "gear-surf-surfboards");
using FeedIterator<Product> feed = container.GetItemQueryIterator<Product>(
queryDefinition
);
Uraikan hasil kueri yang dipaginasi dengan mengulangi setiap halaman hasil menggunakan feed.ReadNextAsync. Gunakan feed.HasMoreResults untuk menentukan apakah ada hasil yang tersisa di awal setiap perulangan.
List<Product> items = new();
while (feed.HasMoreResults)
{
FeedResponse<Product> response = await feed.ReadNextAsync();
foreach (Product item in response)
{
items.Add(item);
}
}
Jelajahi sampel Anda
Gunakan ekstensi Visual Studio Code untuk Azure Cosmos DB untuk menjelajahi data NoSQL Anda. Anda dapat melakukan operasi database inti termasuk, tetapi tidak terbatas pada:
- Melakukan kueri menggunakan fitur scrapbook atau editor kueri
- Memodifikasi, memperbarui, membuat, dan menghapus item
- Mengimpor data massal dari sumber lain
- Mengelola database dan kontainer
Untuk informasi selengkapnya, lihat Cara menggunakan ekstensi Visual Studio Code untuk menjelajahi Azure Cosmos DB untuk data NoSQL.
Membersihkan sumber daya
Saat Anda tidak lagi memerlukan aplikasi contoh atau sumber daya, hapus penerapan dan semua sumber daya yang terkait.
azd down