Penyediaan lokal Azure
.NET .NET Aspire menyederhanakan pengembangan aplikasi cloud-native lokal dengan model host aplikasi yang menarik. Model ini memungkinkan Anda menjalankan aplikasi secara lokal dengan konfigurasi dan layanan yang sama seperti di Azure. Dalam artikel ini Anda mempelajari cara memprovisikan sumber daya Azure dari lingkungan pengembangan lokal Anda melalui host aplikasi .NET.NET Aspire.
Nota
Agar jelas, sumber daya disediakan dalam Azure, tetapi proses provisi dimulai dari lingkungan pengembangan lokal Anda. Untuk mengoptimalkan pengalaman pengembangan lokal Anda, pertimbangkan untuk menggunakan emulator atau kontainer saat tersedia. Untuk informasi selengkapnya, lihat pengalaman khas pengembang .
Persyaratan
Artikel ini mengasumsikan bahwa Anda memiliki akun dan langganan Azure. Jika Anda tidak memiliki akun Azure, Anda dapat membuat akun gratis di Azure Akun Gratis. Agar fungsionalitas penyediaan berfungsi dengan benar, Anda harus diautentifikasi dengan Azure. Pastikan Anda telah menginstal Azure Developer CLI. Selain itu, Anda harus menyediakan beberapa nilai konfigurasi sehingga logika provisi dapat membuat sumber daya atas nama Anda.
API penyediaan host aplikasi
Host aplikasi menyediakan sekumpulan API untuk mengekspresikan sumber daya Azure. API ini tersedia sebagai metode ekstensi di pustaka hosting .NET AspireAzure, memperluas antarmuka IDistributedApplicationBuilder. Saat Anda menambahkan sumber daya Azure ke host aplikasi Anda, sumber daya tersebut akan menambahkan fungsionalitas provisi yang sesuai secara implisit. Dengan kata lain, Anda tidak perlu memanggil API provisi apa pun secara langsung.
Saat host aplikasi dimulai, logika provisi berikut dijalankan:
- Bagian konfigurasi
Azure
divalidasi. - Saat tidak valid, keluaran dasbor dan host aplikasi memberikan petunjuk tentang apa yang hilang. Untuk informasi selengkapnya, lihat petunjuk nilai konfigurasi yang hilang.
- Ketika sumber daya Azure yang valid disediakan secara kondisional:
- Jika penyebaran Azure untuk sumber daya tertentu tidak ada, penyebaran tersebut dibuat dan dikonfigurasi sebagai penyebaran.
- Konfigurasi penyebaran tersebut dicap dengan checksum sebagai sarana untuk hanya mendukung penyediaan sumber daya seperlunya.
Gunakan sumber daya Azure yang ada
Host aplikasi secara otomatis mengelola provisi sumber daya Azure. Pertama kali host aplikasi berjalan, host aplikasi menyediakan sumber daya yang ditentukan dalam host aplikasi. Eksekusi berikutnya tidak menyediakan sumber daya lagi kecuali konfigurasi host aplikasi berubah.
Jika Anda telah menyediakan sumber daya Azure di luar host aplikasi dan ingin menggunakannya, Anda dapat menyediakan string koneksi dengan API AddConnectionString seperti yang ditunjukkan dalam contoh Azure Key Vault berikut:
// Service registration
var secrets = builder.ExecutionContext.IsPublishMode
? builder.AddAzureKeyVault("secrets")
: builder.AddConnectionString("secrets");
// Service consumption
builder.AddProject<Projects.ExampleProject>()
.WithReference(secrets)
Cuplikan kode sebelumnya menunjukkan cara menambahkan Azure Key Vault ke host aplikasi. API AddAzureKeyVault digunakan untuk menambahkan Azure Key Vault ke host aplikasi. API AddConnectionString
digunakan untuk menyediakan string koneksi ke host aplikasi.
Atau, untuk beberapa sumber daya Azure, Anda dapat ikut serta menjalankannya sebagai emulator dengan API RunAsEmulator
. API ini tersedia untuk integrasi Azure Cosmos DB dan Azure Storage. Misalnya, untuk menjalankan AzureAzure Cosmos DB sebagai emulator, Anda dapat menggunakan cuplikan kode berikut:
var cosmos = builder.AddAzureCosmosDB("cosmos")
.RunAsEmulator();
API RunAsEmulator mengonfigurasi sumber daya Azure Cosmos DB untuk ditimulasi menggunakan emulator Azure Cosmos DB dengan API NoSQL.
.NET Aspire Azure integrasi hosting
Jika Anda menggunakan sumber daya Azure di host aplikasi, Anda menggunakan satu atau beberapa integrasi hosting .NET AspireAzure. Pustaka hosting ini menyediakan metode ekstensi ke antarmuka IDistributedApplicationBuilder untuk menambahkan sumber daya Azure ke host aplikasi Anda.
Konfigurasi
Saat menggunakan sumber daya Azure di lingkungan pengembangan lokal, Anda perlu memberikan nilai konfigurasi yang diperlukan. Nilai konfigurasi ditentukan di bawah bagian Azure
:
-
SubscriptionId
: ID langganan Azure. -
AllowResourceGroupCreation
: Nilai boolean yang menunjukkan apakah akan membuat grup sumber daya baru. -
ResourceGroup
: Nama grup sumber daya yang akan digunakan. -
Location
: Wilayah Azure yang akan digunakan.
Pertimbangkan contoh konfigurasi appsettings.json berikut:
{
"Azure": {
"SubscriptionId": "<Your subscription id>",
"AllowResourceGroupCreation": true,
"ResourceGroup": "<Valid resource group name>",
"Location": "<Valid Azure location>"
}
}
Penting
Disarankan untuk menyimpan nilai-nilai ini sebagai rahasia aplikasi. Untuk informasi selengkapnya, lihat Mengelola rahasia aplikasi.
Setelah mengonfigurasi nilai yang diperlukan, Anda dapat mulai menyediakan sumber daya Azure di lingkungan pengembangan lokal Anda.
penyimpanan kredensial provisi Azure
Host aplikasi .NET Aspire menggunakan penyimpanan kredensial untuk autentikasi dan otorisasi sumber daya Azure. Bergantung pada langganan Anda, penyimpanan kredensial yang benar mungkin diperlukan untuk skenario provisi multi-penyewa.
Dengan 📦Aspire.Hosting.Azure paket NuGet yang telah terpasang, dan jika host aplikasi Anda bergantung pada sumber daya Azure, maka penyimpanan kredensial Azure default bergantung pada DefaultAzureCredential. Untuk mengubah perilaku ini, Anda dapat mengatur nilai penyimpanan kredensial dalam file appsettings.json, seperti yang ditunjukkan dalam contoh berikut:
{
"Azure": {
"CredentialSource": "AzureCli"
}
}
Seperti semua pengaturan berbasis konfigurasi , Anda dapat mengonfigurasinya dengan penyedia alternatif, seperti rahasia pengguna atau variabel lingkungan . Nilai Azure:CredentialSource
dapat diatur ke salah satu nilai berikut:
-
AzureCli
: Mendelegasikan ke AzureCliCredential. -
AzurePowerShell
: Mendelegasikan ke AzurePowerShellCredential. -
VisualStudio
: Mendelegasikan ke VisualStudioCredential. -
VisualStudioCode
: Mendelegasikan tugas ke VisualStudioCodeCredential. -
AzureDeveloperCli
: Mendelegasikan tugas ke AzureDeveloperCliCredential. -
InteractiveBrowser
: Mendelegasikan ke InteractiveBrowserCredential.
Saran
Untuk informasi selengkapnya tentang autentikasi dan otorisasi SDK Azure, lihat rantai Kredensial di pustaka Identitas Azure untuk .NET.
Dukungan perkakas
Di Visual Studio, Anda dapat menggunakan Connected Services untuk mengonfigurasi pengaturan provisi Azure default. Pilih proyek host aplikasi, klik kanan pada simpul Connected Services
Ini akan membuka dialog tempat Anda dapat mengonfigurasi pengaturan provisi Azure, seperti yang ditunjukkan pada cuplikan layar berikut:
Petunjuk nilai konfigurasi yang hilang
Saat bagian konfigurasi Azure
hilang, memiliki nilai yang hilang, atau tidak valid, dasbor .NET.NET Aspire menyediakan petunjuk yang berguna. Misalnya, pertimbangkan host aplikasi yang tidak memiliki nilai konfigurasi SubscriptionId
dan mencoba menggunakan sumber daya Azure Key Vault. Halaman
dashboard
Selain itu, log Konsol menampilkan informasi ini juga, pertimbangkan cuplikan layar berikut:
Batasan yang diketahui
Setelah menyediakan sumber daya Azure dengan cara ini, Anda harus membersihkan sumber daya secara manual di portal Azure karena .NET Aspire tidak menyediakan mekanisme bawaan untuk menghapus sumber daya Azure. Cara term mudah untuk mencapainya adalah dengan menghapus grup sumber daya yang dikonfigurasi. Ini dapat dilakukan di portal Azure atau dengan menggunakan CLI Azure:
az group delete --name <ResourceGroupName>
Ganti <ResourceGroupName>
dengan nama grup sumber daya yang ingin Anda hapus. Untuk informasi selengkapnya, lihat az group delete.
.NET Aspire