10-дневный .Net Aspire Challenge — День 7: Хранилище Azure Blob
3 сентября 2024 г.Пошаговое руководство по использованию компонента .Net Aspire Azure Blob Storage в Visual Studio.
Введение
.Net Aspire Framework используется для разработки облачных и готовых к производству распределенных приложений. Он состоит из компонентов для обработки облачных задач, таких как Redis, Postgres и т. д.
Предпосылки
- Установить.Net 8
- УстановитьVisual Studio 2022версия 17 или выше
- Рабочая нагрузка .Net Aspire
- Среда выполнения контейнера, напримерРабочий стол Docker10-дневный челлендж .Net Aspire
Цели
Узнайте, как создать начальный проект с использованием .Net Aspire с Redis Cache.
Образец Github: Структура решения разделена на следующие проекты
- DotnetAspireChallenge.ApiService
- DotnetAspireChallenge.AppHost
- DotnetAspireChallenge.ServiceDefaults
- DotnetAspireChallenge.Web
Начиная
Шаг 1: Установите следующий пакет NuGet
Установите следующий пакет Nuget в последующий проект «DotnetAspireChallenge.AppHost”
dotnet add package Aspire.Azure.Storage.Blobs
В приведенном выше проекте зарегистрируйте хранилище Azure, большие двоичные объекты и эмулятор.
var storage = builder.AddAzureStorage("storage");
var blobs = storage.AddBlobs("blobs");
if (builder.Environment.IsDevelopment())
{
storage.RunAsEmulator(c => c.WithImageTag("3.31.0"));
}
**Примечание: ** Этот конкретный тег используется для пропуска проверки версии.
Шаг 2: Установите еще один пакет NuGet
Установите следующий пакет Nuget в последующий проект «DotnetAspireChallenge.ApiService”
dotnet add package Aspire.Azure.Storage.Blobs
затем зарегистрируйте контекст в файле Program.cs следующим образом
builder.AddAzureBlobClient("blobs");
Шаг 3: Создайте класс расширения
Создайте класс расширения и зарегистрируйте минимальный метод API get для демонстрации использования BlobServiceClient в API Service.
public static class AspireAzureBlobExtension
{
public static void MapAzureBlobStorageEndpoint(this WebApplication app)
{
app.MapPost("/create-images-container", async (BlobServiceClient blobServiceClient) =>
{
string containerName = "images-container";
try
{
BlobContainerClient container = await blobServiceClient.CreateBlobContainerAsync(containerName);
if (await container.ExistsAsync())
{
return Results.Ok(container);
}
}
catch (RequestFailedException e)
{
Console.WriteLine("HTTP error code {0}: {1}", e.Status, e.ErrorCode);
Console.WriteLine(e.Message);
return Results.Problem($"HTTP error code {e.Status}: {e.Message}");
}
return Results.NotFound("Container creation failed or it does not exist.");
});
}
}
и наконец, зарегистрируйтесь в файле Program.cs
app.MapAzureBlobStorageEndpoint();
Шаг 4: Достижение конечной точки POST
Пример запроса POST демонстрирует успешное создание контейнера.
Добавьте дополнительные свойства строки подключения, используя синтаксис JSON
{
"Aspire": {
"Azure": {
"Storage": {
"Blobs": {
"DisableHealthChecks": true,
"DisableTracing": false,
"ClientOptions": {
"Diagnostics": {
"ApplicationId": "myapp"
}
}
}
}
}
}
}
Поздравляем!..!! Вы успешно интегрировали компонент хранилища BLOB-объектов Azure в проект .Net Aspire.
Проект Github
GitHub — ssukhpinder/DotnetAspireChallenge: 10-дневный вызов .Net Aspire Challenge
Еще шпаргалок
Шпаргалки — .Net
Программирование на C#🚀
Спасибо, что вы являетесь частью сообщества C#! Прежде чем вы уйдете:
Подписывайтесь на нас:Ютуб | Х | LinkedIn | Dev.toПосетите наши другие платформы:GitHub
Больше контента наПрограммирование на C#
Оригинал