Bagikan melalui


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:

  1. Bagian konfigurasi Azure divalidasi.
  2. Saat tidak valid, keluaran dasbor dan host aplikasi memberikan petunjuk tentang apa yang hilang. Untuk informasi selengkapnya, lihat petunjuk nilai konfigurasi yang hilang.
  3. Ketika sumber daya Azure yang valid disediakan secara kondisional:
    1. Jika penyebaran Azure untuk sumber daya tertentu tidak ada, penyebaran tersebut dibuat dan dikonfigurasi sebagai penyebaran.
    2. 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:

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 , dan pilih Pengaturan Provisi Sumber Daya :

Visual Studio 2022: .NET Aspire proyek App Host, menu konteks Connected Services.

Ini akan membuka dialog tempat Anda dapat mengonfigurasi pengaturan provisi Azure, seperti yang ditunjukkan pada cuplikan layar berikut:

Visual Studio 2022: Azure dialog Pengaturan Provisi Sumber Daya.

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 Sumber Daya menunjukkan Status sebagaiHilang konfigurasi langganan :

dashboard .NET.NET Aspire: Konfigurasi langganan hilang.

Selain itu, log Konsol menampilkan informasi ini juga, pertimbangkan cuplikan layar berikut:

.NET.NET Aspire dasbor: Log konsol, konfigurasi langganan tidak ditemukan.

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.