10-дневный .Net Aspire Challenge — День 7: Хранилище Azure Blob

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#


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE