Öğretici: ASP.NET Core uygulamasını .NET Aspire depolama tümleştirmelerine bağlama
Bulutta yerel uygulamalar genellikle blob depolama, kuyruklar veya yarı yapılandırılmış NoSQL veritabanları gibi özellikler sağlayan ölçeklenebilir depolama çözümleri gerektirir. .NET Aspire tümleştirmeleri, Azure Blob Storagegibi çeşitli depolama hizmetlerine bağlantıları basitleştirir. Bu öğreticide, ASP.NET Core tümleştirmeleri kullanarak .NET Aspire ve Azure Blob Storage Kuyruk Depolama'ya bağlanan ve destek biletleri gönderen bir Azure uygulaması oluşturacaksınız. Uygulama, biletleri işlenmek üzere bir kuyruğa gönderir ve bir eki depolama alanına yükler. Nasıl yapılacağını öğreneceksiniz:
- .NET tümleştirmelerini kullanacak şekilde ayarlanmış temel bir .NET Aspire uygulaması oluşturma
- Birden çok depolama hizmetlerine bağlanmak için .NET.NET Aspire tümleştirmeleri ekleme
- Veri göndermek ve almak için .NET.NET Aspire Bileşeni özelliklerini yapılandırma ve kullanma
Önkoşullar
.NET .NET Aspireile çalışmak için aşağıdakilerin yerel olarak yüklenmesi gerekir:
- .NET 8.0 veya .NET 9.0
- OCI uyumlu bir kapsayıcı çalışma zamanı, örneğin:
- Docker masaüstü veya Podman. Daha fazla bilgi için bkz. Container runtime.
- Tümleşik Geliştirici Ortamı (IDE) veya kod düzenleyicisi, örneğin:
- Visual Studio 2022 sürüm 17.9 veya üzeri (İsteğe bağlı)
-
Visual Studio Code (İsteğe bağlı)
- C# Dev Kit: Uzantı (İsteğe bağlı)
- JetBrains Rider, .NET.NET Aspire eklenti (isteğe bağlı) ile
Daha fazla bilgi için bkz. .NET.NET Aspire kurulum ve araçve .NET.NET Aspire SDK.
Tamamlanan örnek uygulamayı keşfetme
Bu öğreticideki örnek uygulamanın tamamlanmış bir sürümü GitHubüzerinde kullanılabilir. Proje aynı zamanda
git clone https://github.com/Azure-Samples/dotnet-aspire-connect-storage.git
Azure Depolama kaynaklarını ayarlama
Bu makale için blob kapsayıcısı ve depolama kuyruğu olan bir Azure Depolama hesabında veri katkıcısı erişimine ihtiyacınız olacaktır. Aşağıdaki kaynaklara ve yapılandırmalara sahip olduğunuzdan emin olun:
Bu makale için, bir öykünücü kullanarak yerel geliştirme ortamınızda blob kapsayıcısı ve depolama kuyruğu kaynakları oluşturmanız gerekir. Bunu yapmak için Azurite kullanın. Azurite, Docker kapsayıcısında çalışan, ücretsiz, açık kaynak kodlu, platformlar arası, Azure depolama API’si ile uyumlu bir sunucu (öykünücü)dur.
Öykünücüyü kullanmak için Azuriteyüklemeniz
- Azure Depolama hesabı - Depolama hesabı oluşturma.
- adlı bir Blob Depolama kapsayıcısında - dosyaları yükleyin.adlı bir blob depolama kapsayıcısı oluşturun.
- bilet adlı bir Depolama Kuyruğu oluşturma - .
Gerekli Azure Depolama kaynaklarını ayarlamak için Azure CLI veya CloudShell'de aşağıdaki komutları çalıştırın:
az group create --name aspirestorage --location eastus2
az storage account create -n aspirestorage -g aspirestorage -l eastus2
az storage container create -n fileuploads --account-name aspirestorage
az storage queue create -n tickets --account-name aspirestorage
Ayrıca, Visual Studio oturum açtığınız kullanıcı hesabına aşağıdaki rolleri atamanız gerekir:
- Depolama Bloğu Verisi Katkıda Bulunma – Bir Azure RBAC rolü atama
- Depolama Kuyruğu Veri Katkıda Bulunanı - Azure RBAC rolü atama
Azure Developer CLI, şablon sistemi kullanarak Azure kaynakları sağlamanızı ve dağıtmanızı sağlar. Bu öğretici, gerekli kaynaklarını sağlayan ve tamamlanmış örnek uygulama kodunu içeren Azure sağlar. Şablonu başlatmak ve çalıştırmak için aşağıdaki komutları çalıştırın:
azd auth login
'e oturum açmak için Azure çalıştırın.azd auth login
Örnek şablonu kopyalamak ve başlatmak için
azd init
çalıştırın:azd init --template dotnet-aspire-connect-storage
azd up
kaynaklarını sağlamak için Azure çalıştırın:azd up
İstendiğinde, sağlanan kaynaklar için aboneliği ve Azure bölgeyi seçin. Şablon sizin için aşağıdaki görevleri çalıştırır ve tamamlar:
- Blob ve kuyruk hizmetlerinin etkinleştirildiği bir Azure Depolama Hesabı oluşturur
-
fileUploads
adlı bir blob depolama kapsayıcısı oluşturur -
tickets
adlı bir kuyruk oluşturur - Şablonu çalıştıran kullanıcı hesabına aşağıdaki rolleri atar.
- Depolama Blob Verileri Katkı Sağlayan
- Depolama Kuyruğu Veri Katkı Sağlayıcısı
İşlem başarıyla tamamlandıktan sonra, ileriye doğru iki seçeneğiniz vardır:
- 1. Seçenek: Tamamlanan uygulamayla deneme yapmak için şablon .NET dizininde
src
örnek uygulamasını çalıştırın. - 2. Seçenek: İlerideki bölümleri kullanarak örnek uygulamayı adım adım oluşturun ve Azuretarafından sağlanan
azd
kaynaklarına bağlayın.
Örnek çözümü oluşturma
.NET Aspire veya Visual Studio CLI kullanarak bir .NET projesi oluşturun.
- Visual Studioüst kısmında Dosya>Yeni>Projeadresine gidin.
- İletişim kutusunda Aspire arayın ve .NET.NET Aspire başlangıç uygulamasıseçin. Sonrakiseçin.
-
Yeni projenizi yapılandırma ekranında:
AspireStorage Çözüm Adı girin ve sonrakiseçin.
-
Ek bilgiler ekranında:
- Redis önbelleğe almak için kullan seçeneğinin işaretini kaldırın (bu öğretici için gerekli değildir).
- oluştur'useçin.
Visual Studio, ASP.NET Corekullanacak şekilde yapılandırılmış yeni bir .NET Aspire çözümü oluşturur.
Çözüm aşağıdaki projelerden oluşur:
- AspireStorage.ApiService - Varsayılan .NET.NET Aspire hizmet yapılandırmalarına sahip bir API projesi.
- AspireStorage.AppHost - Uygulamanızın farklı projelerini ve hizmetlerini bağlamak ve yapılandırmak için tasarlanmış bir düzenleyici projesi. Orkestratör, başlangıç projesi olarak ayarlanmalıdır.
- AspireStorage.ServiceDefaults - Çözümünüzdeki projeler arasında yeniden kullanılabilecek kodu tutmak için paylaşılan bir sınıf kitaplığı.
- AspireStorage.Web - Uygulamanızın ön ucu olarak hizmet veren bir BlazorServer projesi.
Worker Service projesini ekleme
Ardından, Worker Service Depolama kuyruğuna eklenen iletileri almak ve işlemek için çözüme bir Azure projesi ekleyin.
- Çözüm gezgininde AspireStorage çözüm düğümü
üst düzeye sağ tıklayın ve Ekle Yeni proje öğesini seçin. - Worker Service şablonunu arayıp seçin ve İleriseçin.
- Proje adıiçin, AspireStorage.WorkerService değerini girin ve İleriseçeneğini seçin.
-
Ek bilgiler ekranında:
- .NET 9.0 seçildiğinden emin olun.
düzenleme Listele seçeneğinin işaretli olduğundan emin olun ve Oluştur öğesini seçin.
Visual Studio projeyi çözümünüze ekler ve Program.cs projesinin dosyasını yeni bir kod satırıyla güncelleştirir:
builder.AddProject<Projects.AspireStorage_WorkerService>(
"aspirestorage-workerservice");
Visual Studio araçları, yeni projenizi düzenleme özelliklerini etkinleştiren IDistributedApplicationBuilder nesnesine kaydetmek için bu kod satırını ekledi. Daha fazla bilgi için bkz. .NET.NET Aspire düzenlemeye genel bakış.
Tamamlanan çözüm yapısı aşağıdakine benzemelidir:
.NET Aspire uygulamasına Blazor tümleştirmeleri ekleme
.NET Aspire projenize Azure Blob Storage ve Azure paketlerini ekleyin:
dotnet add package Aspire.Azure.Storage.Blobs
dotnet add package Aspire.Azure.Storage.Queues
AspireStorage.Web projeniz artık .NET.NET Aspire tümleştirmelerini kullanacak şekilde ayarlanmıştır. Güncelleştirilmiş AspireStorage.Web.csproj dosyası aşağıdadır:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\AspireStorage.ServiceDefaults\AspireStorage.ServiceDefaults.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Aspire.Azure.Storage.Blobs" Version="9.1.0" />
<PackageReference Include="Aspire.Azure.Storage.Queues" Version="9.1.0" />
</ItemGroup>
</Project>
Sonraki adım, tümleştirmeleri uygulamaya eklemektir.
Program.cs projesinin dosyasında, AddAzureBlobClient oluşturulduktan sonra ancak AddAzureQueueClientçağrısından önce builder
ve AddServiceDefaults
uzantı yöntemlerine çağrılar ekleyin. Daha fazla bilgi için bkz. .NET.NET Aspire hizmet varsayılanları. Bağlantı dizenizin adını parametre olarak belirtin.
using AspireStorage.Web;
using AspireStorage.Web.Components;
using Azure.Storage.Blobs;
using Azure.Storage.Queues;
var builder = WebApplication.CreateBuilder(args);
builder.AddAzureBlobClient("BlobConnection");
builder.AddAzureQueueClient("QueueConnection");
// Add service defaults & Aspire components.
builder.AddServiceDefaults();
// Add services to the container.
builder.Services.AddRazorComponents()
.AddInteractiveServerComponents();
builder.Services.AddOutputCache();
builder.Services.AddHttpClient<WeatherApiClient>(client =>
{
// This URL uses "https+http://" to indicate HTTPS is preferred over HTTP.
// Learn more about service discovery scheme resolution at https://aka.ms/dotnet/sdschemes.
client.BaseAddress = new("https+http://apiservice");
});
var app = builder.Build();
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error", createScopeForErrors: true);
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
else
{
// In development, create the blob container and queue if they don't exist.
var blobService = app.Services.GetRequiredService<BlobServiceClient>();
var docsContainer = blobService.GetBlobContainerClient("fileuploads");
await docsContainer.CreateIfNotExistsAsync();
var queueService = app.Services.GetRequiredService<QueueServiceClient>();
var queueClient = queueService.GetQueueClient("tickets");
await queueClient.CreateIfNotExistsAsync();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseAntiforgery();
app.UseOutputCache();
app.MapRazorComponents<App>()
.AddInteractiveServerRenderMode();
app.MapDefaultEndpoints();
app.Run();
using AspireStorage.Web;
using AspireStorage.Web.Components;
using Azure.Storage.Blobs;
using Azure.Storage.Queues;
var builder = WebApplication.CreateBuilder(args);
builder.AddAzureBlobClient("BlobConnection");
builder.AddAzureQueueClient("QueueConnection");
// Add service defaults & Aspire components.
builder.AddServiceDefaults();
// Add services to the container.
builder.Services.AddRazorComponents()
.AddInteractiveServerComponents();
builder.Services.AddOutputCache();
builder.Services.AddHttpClient<WeatherApiClient>(client =>
{
// This URL uses "https+http://" to indicate HTTPS is preferred over HTTP.
// Learn more about service discovery scheme resolution at https://aka.ms/dotnet/sdschemes.
client.BaseAddress = new("https+http://apiservice");
});
var app = builder.Build();
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error", createScopeForErrors: true);
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseAntiforgery();
app.UseOutputCache();
app.MapRazorComponents<App>()
.AddInteractiveServerRenderMode();
app.MapDefaultEndpoints();
app.Run();
Ek using
deyimleriyle, bu yöntemler aşağıdaki görevleri gerçekleştirir:
- Azure.Storage.Blobs.BlobServiceClient Depolama'ya bağlanmak için DI kapsayıcısına bir Azure.Storage.Queues.QueueServiceClient ve bir Azure kaydedin.
- İlgili hizmetler için sağlık denetimlerini, günlüğe kaydetmeyi ve telemetriyi otomatik olarak etkinleştirin.
AspireStorage.Web projesi başlatıldığında, Azurite Blob Depolama'da bir fileuploads
kapsayıcı ve Azurite Kuyruk Depolama'da bir tickets
kuyruk oluşturulacaktır. Uygulama bir geliştirme ortamında çalışırken bu koşulludur. Uygulama bir üretim ortamında çalışırken kapsayıcı ve kuyruğun önceden oluşturulmuş olduğu varsayılır.
.NET Aspire entegrasyonunu Worker Service'e ekle
İşçi hizmeti, işlenmek üzere Azure Depolama kuyruğundan mesajların çekilmesini yürütür. .NET Aspire Azure Kuyruk Depolama tümleştirmesi tümleştirme paketini AspireStorage.WorkerService uygulamanıza ekleyin:
dotnet add package Aspire.Azure.Storage.Queues
Program.cs projesinin dosyasında, AddAzureQueueClient oluşturulmasından sonra ve builder
çağrılmadan önce AddServiceDefaults
genişletme metodu için bir çağrı ekleyin.
using AspireStorage.WorkerService;
var builder = Host.CreateApplicationBuilder(args);
builder.AddAzureQueueClient("QueueConnection");
builder.AddServiceDefaults();
builder.Services.AddHostedService<WorkerService>();
var host = builder.Build();
host.Run();
Bu yöntem aşağıdaki görevleri işler:
- QueueServiceClientbağlanmak için DI kapsayıcısına bir Azure Storage Queues kaydedin.
- İlgili hizmetler için sağlık denetimlerini, günlüğe kaydetmeyi ve telemetriyi otomatik olarak etkinleştirin.
Formu oluşturma
Uygulama, kullanıcının destek bileti bilgilerini gönderebilmesi ve ek yükleyebilmesi için bir form gerektirir. Uygulama, eklenen Document
kullanarak IFormFile (Azure Blob Storage) özelliğindeki ekli dosyayı BlobServiceClient yükler.
QueueServiceClient
Title
Depolama Kuyruğuna Description
ve Azure oluşan bir ileti gönderir.
AspireStorage.Web/Components/Pages dizinindeki Home.razor dosyasının içeriğini değiştirerek temel bir form oluşturmak için aşağıdaki Razor işaretlemesini kullanın:
@page "/"
@using System.ComponentModel.DataAnnotations
@using Azure.Storage.Blobs
@using Azure.Storage.Queues
@inject BlobServiceClient BlobClient
@inject QueueServiceClient QueueServiceClient
<PageTitle>Home</PageTitle>
<div class="text-center">
<h1 class="display-4">Request Support</h1>
</div>
<EditForm Model="@Ticket" FormName="Tickets" method="post"
OnValidSubmit="@HandleValidSubmit" enctype="multipart/form-data">
<DataAnnotationsValidator />
<ValidationSummary />
<div class="mb-4">
<label>Issue Title</label>
<InputText class="form-control" @bind-Value="@Ticket.Title" />
<ValidationMessage For="() => Ticket.Title" />
</div>
<div class="mb-4">
<label>Issue Description</label>
<InputText class="form-control" @bind-Value="@Ticket.Description" />
<ValidationMessage For="() => Ticket.Description" />
</div>
<div class="mb-4">
<label>Attachment</label>
<InputFile class="form-control" name="Ticket.Document" />
<ValidationMessage For="() => Ticket.Document" />
</div>
<button class="btn btn-primary" type="submit">Submit</button>
<button class="btn btn-danger mx-2" type="reset" @onclick=@ClearForm>Clear</button>
</EditForm>
@code {
[SupplyParameterFromForm(FormName = "Tickets")]
private SupportTicket Ticket { get; set; } = new();
private async Task HandleValidSubmit()
{
var docsContainer = BlobClient.GetBlobContainerClient("fileuploads");
// Upload file to blob storage
await docsContainer.UploadBlobAsync(
Ticket.Document.FileName,
Ticket.Document.OpenReadStream());
// Send message to queue
var queueClient = QueueServiceClient.GetQueueClient("tickets");
await queueClient.SendMessageAsync(
$"{Ticket.Title} - {Ticket.Description}");
ClearForm();
}
private void ClearForm() => Ticket = new();
private class SupportTicket()
{
[Required] public string Title { get; set; } = default!;
[Required] public string Description { get; set; } = default!;
[Required] public IFormFile Document { get; set; } = default!;
}
}
AppHost'u güncelleştir
AspireStorage.AppHost projesi, uygulamanız için düzenleyicidir. Uygulamanızın farklı proje ve hizmetlerini bağlamak ve yapılandırmak sizin sorumluluğunuzdadır. Orkestratör, başlangıç projesi olarak ayarlanmalıdır.
Azure'inize IDistributedApplicationBuilder Depolama barındırma desteği eklemek için 📦Aspire.Hosting.Azure.Storage NuGet paketini yükleyin.
dotnet add package Aspire.Hosting.Azure.Storage
Program.cs projesindeki dosyasının içeriğini aşağıdaki kodla değiştirin:
using Microsoft.Extensions.Hosting;
var builder = DistributedApplication.CreateBuilder(args);
var storage = builder.AddAzureStorage("Storage");
if (builder.Environment.IsDevelopment())
{
storage.RunAsEmulator();
}
var blobs = storage.AddBlobs("BlobConnection");
var queues = storage.AddQueues("QueueConnection");
var apiService = builder.AddProject<Projects.AspireStorage_ApiService>("apiservice");
builder.AddProject<Projects.AspireStorage_Web>("webfrontend")
.WithExternalHttpEndpoints()
.WithReference(apiService)
.WithReference(blobs)
.WithReference(queues);
builder.AddProject<Projects.AspireStorage_WorkerService>("aspirestorage-workerservice")
.WithReference(queues);
builder.Build().Run();
Önceki kod, Azure depolama, bloblar ve kuyruklar ekler ve geliştirme modundayken öykünücüyü kullanır. Her proje, bağımlı oldukları bu kaynaklar için başvurular tanımlar.
using Microsoft.Extensions.Hosting;
var builder = DistributedApplication.CreateBuilder(args);
var storage = builder.AddAzureStorage("Storage");
var blobs = storage.AddBlobs("BlobConnection");
var queues = storage.AddQueues("QueueConnection");
var apiService = builder.AddProject<Projects.AspireStorage_ApiService>("apiservice");
builder.AddProject<Projects.AspireStorage_Web>("webfrontend")
.WithExternalHttpEndpoints()
.WithReference(apiService)
.WithReference(blobs)
.WithReference(queues);
builder.AddProject<Projects.AspireStorage_WorkerService>("aspirestorage-workerservice")
.WithReference(queues);
builder.Build().Run();
Yukarıdaki kod Azure depolama, blob ve kuyruk ekler ve bunlara bağımlı olan her projede bu kaynaklar için başvurular tanımlar.
Kuyruktaki öğeleri işleme
tickets
kuyruğuna yeni bir mesaj yerleştirildiğinde, işçi hizmeti bu mesajı almalı, işlemeli ve silmelidir.
Worker.cs sınıfını güncelleştirin ve içeriğini aşağıdaki kodla değiştirin:
using Azure.Storage.Queues;
using Azure.Storage.Queues.Models;
namespace AspireStorage.WorkerService;
public sealed class WorkerService(
QueueServiceClient client,
ILogger<WorkerService> logger) : BackgroundService
{
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
var queueClient = client.GetQueueClient("tickets");
await queueClient.CreateIfNotExistsAsync(cancellationToken: stoppingToken);
while (!stoppingToken.IsCancellationRequested)
{
QueueMessage[] messages =
await queueClient.ReceiveMessagesAsync(
maxMessages: 25, cancellationToken: stoppingToken);
foreach (var message in messages)
{
logger.LogInformation(
"Message from queue: {Message}", message.MessageText);
await queueClient.DeleteMessageAsync(
message.MessageId,
message.PopReceipt,
cancellationToken: stoppingToken);
}
// TODO: Determine an appropriate time to wait
// before checking for more messages.
await Task.Delay(TimeSpan.FromSeconds(15), stoppingToken);
}
}
}
Çalışan hizmetinin iletileri işleyebilmesi için önce Azure Depolama kuyruğuna bağlanabilmesi gerekir. Azurite ile, çalışan hizmetin mesaj kuyruğu işlemeye başlamadan önce kuyruğun kullanılabilir olduğundan emin olmanız gerekir.
using Azure.Storage.Queues;
using Azure.Storage.Queues.Models;
namespace AspireStorage.WorkerService;
public sealed class WorkerService(
QueueServiceClient client,
ILogger<WorkerService> logger) : BackgroundService
{
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
var queueClient = client.GetQueueClient("tickets");
while (!stoppingToken.IsCancellationRequested)
{
QueueMessage[] messages =
await queueClient.ReceiveMessagesAsync(
maxMessages: 25, cancellationToken: stoppingToken);
foreach (var message in messages)
{
logger.LogInformation(
"Message from queue: {Message}", message.MessageText);
await queueClient.DeleteMessageAsync(
message.MessageId,
message.PopReceipt,
cancellationToken: stoppingToken);
}
// TODO: Determine an appropriate time to wait
// before checking for more messages.
await Task.Delay(TimeSpan.FromSeconds(15), stoppingToken);
}
}
}
Çalışan hizmeti, Azure Depolama kuyruğuna bağlanarak iletileri kuyruktan çekip işler.
Çalışan hizmeti, kuyruktaki iletileri işler ve işlendiğinde siler.
Bağlantı dizelerini yapılandırma
AspireStorage ve AspireStorage.Worker projeleri daha önce oluşturduğunuz doğru Azure Depolama Hesabına bağlanacak şekilde yapılandırılmalıdır. Her projedeki appsettings.json dosyasını kullanarak depolama hesabındaki blob ve kuyruk hizmetlerinin uç noktalarını belirtebilirsiniz.
AspireStorage projesinde,
appsettings.Development.json
dosyasına aşağıdaki yapılandırmayı ekleyin:"ConnectionStrings": { "BlobConnection": "https://<your-storage-account-name>.blob.core.windows.net/", "QueueConnection": "https://<your-storage-account-name>.queue.core.windows.net/" }
AspireStorage.Worker projesinde,
appsettings.Development.json
dosyasına aşağıdaki yapılandırmayı ekleyin:"ConnectionStrings": { "QueueConnection": "https://<your-storage-account-name>.queue.core.windows.net/" }
Uygulamayı yerel olarak çalıştırma ve test edin
Örnek uygulama artık test için hazırdır. Aşağıdaki adımları tamamlayarak gönderilen form verilerinin Azure Blob Storage ve Azure Kuyruk Depolama'ya gönderildiğini doğrulayın:
Visual Studio proje panonuzu tarayıcıda başlatmak için .NET Aspire üst kısmındaki çalıştır düğmesine basın.
Kaynaklar sayfasındaki aspirestorage.web satırında, uygulamanızın kullanıcı arabirimini açmak için Uç Noktalar sütunundaki bağlantıya tıklayın.
Title
veDescription
form alanlarına örnek veriler girin ve karşıya yüklenecek basit bir dosya seçin.Gönder düğmesini seçtiğinizde form işlenmek üzere destek biletini gönderir ve formu temizler.
Ayrı bir tarayıcı sekmesinde Azure portalını kullanarak Depolama Hesabınızdaki Azure'ye gidin.
Kapsayıcılar'yi seçin ve karşıya yüklenen dosyayı görmek için Belgeler kapsayıcısına gidin.
panosunun Project günlüklerine bakarak ve açılan listeden aspirestorage.workerservice seçerek kuyrukta iletinin işlendiğini doğrulayabilirsiniz.
Özet
Oluşturduğunuz örnek uygulama, bir ASP.NET CoreBlazor Web Uygulamasından kalıcı blobları ve .NET Worker Serviceiçindeki kuyrukları işlemeyi gösterir. Uygulamanız Azure tümleştirmeleri kullanarak .NET Aspire Depolama'ya bağlanır. Uygulama, işlenmek üzere destek biletlerini bir kuyruğa gönderir ve bir eki depolama alanına yükler.
Çünkü Azurite kullanmayı seçtiniz, öykünücü bağlamında kaynakları yerel olarak oluşturduğunuz için testleri bitirdiğinizde bu kaynakları temizlemeniz gerekmez. Öykünücü, herhangi bir Azure kaynağı sağlanmadığından veya oluşturulmadığından, herhangi bir ücret ödemeden uygulamanızı yerel olarak test etmenizi sağlamaktaydı.
Kaynakları temizleme
Oluşturduğunuz Azure kaynaklarına artık ihtiyacınız kalmadığında kaynak grubunu silmek için aşağıdaki Azure CLI komutunu çalıştırın. Kaynak grubunun silinmesi, içinde yer alan kaynakları da siler.
az group delete --name <your-resource-group-name>
Daha fazla bilgi için 'da kaynakları temizleme bölümüne bakın Azure.
.NET Aspire