Краткое руководство. Использование Кэша Azure для Redis с веб-приложением ASP.NET

Из этого краткого руководства вы узнаете, как с помощью Visual Studio 2019 создать веб-приложение ASP.NET, которое подключается к кэшу Azure для Redis для хранения и извлечения данных из кэша. После этого вы можете развернуть приложение в Службе приложений Azure.

Переход к коду на GitHub

Клонируйте репозиторий https://github.com/Azure-Samples/azure-cache-redis-samples/tree/main/quickstart/aspnet в GitHub.

Необходимые компоненты

Создание кэша

Создайте кэш для приложения.

  1. Чтобы создать кэш, войдите на портал Azure и выберите Создать ресурс.

    Create a resource is highlighted in the left navigation pane.

  2. На странице Создание выберите Базы данных, а затем Кэш Azure для Redis.

    On New, Databases is highlighted, and Azure Cache for Redis is highlighted.

  3. На странице Новый кэш Redis настройте параметры для нового кэша.

    Параметр Выберите значение Description
    Подписка Раскройте список и выберите нужную подписку. В этой подписке будет создан новый экземпляр кэша Redis для Azure.
    Группа ресурсов Раскройте список и выберите группу ресурсов или нажмите Создать и введите имя для новой группы ресурсов. Имя группы ресурсов, в которой будут созданы кэш и другие ресурсы. Поместив все ресурсы приложения в одну группу ресурсов, вы сможете легко управлять ими и/или удалить их вместе.
    DNS-имя Введите уникальное имя. Имя кэша должно быть строкой длиной от 1 до 63 символов и содержать только цифры, буквы и дефисы. Имя должно начинаться и заканчиваться цифрой или буквой и не может содержать более одного дефиса подряд. Имя узла экземпляра кэша <DNS-имя.redis.cache.windows.net>.
    Местонахождение Откройте список и выберите расположение. Выберите регион рядом с другими службами, используюющими кэш.
    Тип кэша В раскрывающемся списке выберите уровень. Уровень определяет размер, производительность кэша и доступные функции. Дополнительные сведения см. в обзоре предложения "Кэш Redis для Azure".
  4. Выберите вкладку Сети или нажмите кнопку Сети в нижней части страницы.

  5. На вкладке Сети выберите способ подключения.

  6. Нажмите кнопку "Далее" или нажмите кнопку "Далее" в нижней части страницы, чтобы просмотреть вкладку "Дополнительно".

    Screenshot showing the Advanced tab in the working pane and the available option to select.

    • Для кэшей "Базовый" или "Стандартный" переключите выбор порта, отличного от TLS. Вы также можете выбрать, нужно ли включить проверку подлинности Microsoft Entra.
    • Для кэша Premium настройте параметры для порта, отличного от TLS, кластеризация, управляемого удостоверения и сохраняемости данных. Вы также можете выбрать, нужно ли включить проверку подлинности Microsoft Entra.
  7. Выберите вкладку Next: Tags (Далее: теги) или нажмите в нижней части страницы кнопку Next: Tags (Далее: теги).

  8. При необходимости на вкладке Теги введите имя и значение, чтобы классифицировать ресурс.

  9. Выберите Review + create (Просмотреть и создать). Вы будете перенаправлены на вкладку Проверка и создание, где Azure проверит вашу конфигурацию.

  10. Когда отобразится сообщение "Проверка пройдена" зеленого цвета, выберите Создать.

Для создания кэша требуется некоторое время. Вы можете отслеживать ход выполнения на странице обзорных сведений кэша Azure для Redis. Когда Состояние примет значение Running (Выполняется), кэш будет готов к использованию.

Получение имени узла, портов и ключей доступа с помощью портала Azure

Чтобы подключить сервер Кэша Azure для Redis, для клиента кэша необходимо указать имя узла, порты и ключ для кэша. Некоторые клиенты могут ссылаться на эти элементы с помощью незначительно различающихся имен. Вы можете получить имя узла, порты и ключи на портале Azure.

  • Чтобы получить ключи доступа, в области навигации кэша слева щелкните Ключи доступа.

    Azure Cache for Redis keys

  • Чтобы получить имя узла и порты, в области навигации кэша слева щелкните Свойства. Имя узла имеет вид <DNS-имя>.redis.cache.windows.net.

    Azure Cache for Redis properties

Изменение файла CacheSecrets.config

  1. Создайте файл на компьютере с именем CacheSecrets.config. Поместите его в расположение, в котором оно не будет проверка с исходным кодом примера приложения. В этот кратком руководстве файл CacheSecrets.config расположен в папке C:\AppSecrets\CacheSecrets.config.

  2. Измените файл CacheSecrets.config. Затем добавьте следующее содержимое:

    <appSettings>
        <add key="CacheConnection" value="<cache-name>.redis.cache.windows.net,abortConnect=false,ssl=true,allowAdmin=true,password=<access-key>"/>
    </appSettings>
    
  3. Замените <cache-name> на имя узла кэша.

  4. Замените <access-key> первичным ключом для кэша.

    Совет

    При повторном создании первичного ключа доступа вторичный ключ доступа можно использовать во время смены ключей как дополнительный ключ.

  5. Сохраните файл.

Обновление приложения MVC

В этом разделе показано приложение для поддержки нового представления, которое отображает простой тест Кэша Azure для Redis.

Подключение файла web.config к кэшу

При локальном запуске приложения сведения в файле CacheSecrets.config используются для подключения к экземпляру кэша Azure для Redis. Позже вы сможете развернуть это приложение в Azure. Сейчас вы настроите параметр приложения в Azure, который приложение использует вместо этого файла для получения сведений о соединении кэша.

Так как файл CacheSecrets.config не развертывается в Azure с помощью приложения, он используется только при тестировании приложения локально. Храните эти сведения в надежном месте для предотвращения вредоносного доступа к данным кэша.

Обновление файла web.config

  1. В обозревателе решений откройте файл web.config.

    Web.config

  2. В файле web.config можно задать <appSettings> элемент для локального запуска приложения.

    <appSettings file="C:\AppSecrets\CacheSecrets.config">

Среда выполнения ASP.NET объединяет содержимое внешнего файла с разметкой в элементе <appSettings>. Если указанный файл не удается найти, среда выполнения игнорирует атрибут файла. Секреты (строка подключения к вашему кэшу) не включаются в исходный код приложения. При развертывании веб-приложения в Azure файл CacheSecrets.config не развертывается.

Установка StackExchange.Redis

Для запуска решения требуется пакет StackExchange.Redis. Установите его, выполнив следующую процедуру:

  1. Чтобы настроить приложение для использования пакета NuGet StackExchange.Redis для Visual Studio, выберите Инструменты > Диспетчер пакетов NuGet > Консоль диспетчера пакетов.

  2. Выполните следующую команду в окне Package Manager Console:

    Install-Package StackExchange.Redis
    
  3. Пакет NuGet загружает и добавляет необходимые ссылки на сборки, чтобы клиентское приложение могло получать доступ к кэшу Azure Cache для Redis с помощью клиента StackExchange.Redis.

Подключение к кэшу с помощью RedisConnection

Подключением к кэшу Redis для Azure управляет класс RedisConnection. Сначала в этом операторе устанавливается подключение от ContosoTeamStats/Controllers/HomeController.cs:

   private static Task<RedisConnection> _redisConnectionFactory = RedisConnection.InitializeAsync(connectionString: ConfigurationManager.AppSettings["CacheConnection"].ToString()););

Значение секрета CacheConnection извлекается через поставщик конфигурации "Диспетчер секретов" и используется в качестве параметра пароля.

В RedisConnection.cs вы увидите, что пространство имен StackExchange.Redis было добавлено в код. Оно требуется для класса RedisConnection.

using StackExchange.Redis;

Код RedisConnection гарантирует постоянное наличие работоспособного подключения к кэшу путем управления экземпляром ConnectionMultiplexer из StackExchange.Redis. В случае потери соединения и невозможности автоматического повторного подключения класс RedisConnection повторно создает подключение.

Для получения дополнительных сведений см. статью StackExchange.Redis и код в репозитории GitHub.

Представления макета в примере

Макет домашней страницы для этого примера хранится в файле _Layout.cshtml. На этой странице запускается фактическое тестирование кэша. Для этого на этой странице выберите Кэш Azure для Redis Test.

  1. В обозревателе решений разверните папку Представления>Общие. Затем откройте файл _Layout.cshtml.

  2. Отображается следующая строка в <div class="navbar-header">.

    @Html.ActionLink("Azure Cache for Redis Test", "RedisCache", "Home", new { area = "" }, new { @class = "navbar-brand" })
    

    screenshot of welcome page

Отображение данных из кэша

На домашней странице выберите Кэш Azure для Redis Test, чтобы просмотреть пример выходных данных.

  1. В обозревателе решений разверните папку Views и щелкните правой кнопкой мыши папку Home.

  2. В файле RedisCache.cshtml должен отображаться следующий код.

    @{
        ViewBag.Title = "Azure Cache for Redis Test";
    }
    
    <h2>@ViewBag.Title.</h2>
    <h3>@ViewBag.Message</h3>
    <br /><br />
    <table border="1" cellpadding="10">
        <tr>
            <th>Command</th>
            <th>Result</th>
        </tr>
        <tr>
            <td>@ViewBag.command1</td>
            <td><pre>@ViewBag.command1Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command2</td>
            <td><pre>@ViewBag.command2Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command3</td>
            <td><pre>@ViewBag.command3Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command4</td>
            <td><pre>@ViewBag.command4Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command5</td>
            <td><pre>@ViewBag.command5Result</pre></td>
        </tr>
    </table>
    

Локальный запуск приложения

По умолчанию проект размещает приложение локально в IIS Express для тестирования и отладки.

Запуск приложения на локальном компьютере

  1. В Visual Studio выберите Отладка>Начать отладку, чтобы создать и запустить приложение локально для тестирования и отладки.

  2. В браузере на панели навигации выберите Azure Cache for Redis Test (Проверка кэша Azure для Redis).

  3. В приведенном ниже примере видно, что ключ Message ранее содержал кэшированное значение, установленное через консоль кэша Azure для Redis на портале. Приложение обновило кэшированное значение. Кроме того, оно выполнило команды PING и CLIENT LIST.

    Screenshot of simple test completed local

Публикация и выполнение в Azure

После успешного локального тестирования приложения вы сможете развернуть приложение в Azure и запустить его в облаке.

Публикация приложения в Azure

  1. В Visual Studio щелкните узел проекта правой кнопкой мыши в обозревателе решений. Затем щелкните Опубликовать.

    Publish

  2. Выберите Служба приложений Microsoft Azure, Создать, а затем щелкните Опубликовать.

    Publish to App Service

  3. В диалоговом окне Создать службу приложений внесите следующие изменения:

    Параметр Рекомендуемое значение Description
    Название приложения Используйте значение по умолчанию. При развертывании приложения в Azure его имя соответствует имени узла для приложения. В имя можно добавить суффикс метки времени, если необходимо сделать его уникальным.
    Подписка Выберите подписку Azure. В этой подписке взимается плата за связанные операции размещения. Если у вас несколько подписок Azure, убедитесь, что выбрана необходимая подписка.
    Группа ресурсов Используйте группу ресурсов, в которой создан кэш (например TestResourceGroup). Группа ресурсов позволяет управлять всеми ресурсами как группой. Позже, если вы захотите удалить приложение, можно просто удалить всю группу.
    План обслуживания приложения Выберите Создать и создайте план службы приложений с именем TestingPlan.
    Используйте то же расположение, что и при создании кэша.
    В качестве размера выберите Бесплатный.
    План службы приложений определяет набор вычислительных ресурсов, на которых выполняется веб-приложение.

    App Service dialog box

  4. После настройки параметров службы приложений щелкните Создать.

  5. Просмотрите состояние публикации в окне Visual Studio Вывод. После публикации приложения регистрируется его URL-адрес:

    Publishing output

Добавление параметра приложения для кэша

После публикации нового приложения добавьте новый параметр приложения. Этот параметр используется для хранения сведений о подключении к кэшу.

Добавление параметров приложения

  1. В строке поиска в верхней части портала Azure введите имя приложения, чтобы найти созданное приложение.

    Find app

  2. Добавьте параметр нового приложения с именем CacheConnection, которое приложение будет использовать для подключения к кэшу. Используйте значение, заданное для CacheConnection в файле CacheSecrets.config. Значение содержит имя узла и ключ доступа кэша.

    Add app setting

Запуск приложения в Azure

  1. В браузере перейдите по URL-адресу приложения. URL-адрес отображается в результатах выполнения операции публикации в окне выходных данных в Visual Studio. Его также можно найти на портале Azure на странице обзора созданного приложения.

  2. В панели навигации выберите Кэш Azure для Redis Test, чтобы проверить доступ к кэшу, как это делалось в локальной версии.

Очистка ресурсов

При дальнейшем использовании этого краткого руководства созданные ресурсы можно сохранить и использовать их повторно.

В противном случае, если вы закончите работу с примером приложения из краткого руководства, вы можете удалить ресурсы Azure, созданные в рамках этого руководства, чтобы избежать ненужных расходов.

Важно!

Удаление группы ресурсов — процесс необратимый. Группа ресурсов и все содержащиеся в ней ресурсы удаляются без возможности восстановления. Будьте внимательны, чтобы случайно не удалить не ту группу ресурсов или не те ресурсы. Если ресурсы для размещения этого примера созданы в имеющейся группе ресурсов, которая содержит другие нужные ресурсы, каждый ресурс можно удалить отдельно в области слева, чтобы не удалять группу ресурсов.

Удаление группы ресурсов

  1. Войдите на портал Azure и щелкните Группы ресурсов.

  2. Введите имя группы ресурсов в поле Фильтровать по имени... В инструкциях в этой статье использовалась группа ресурсов с именем TestResources. В своей группе ресурсов в списке результатов щелкните ..., а затем выберите Удалить группу ресурсов.

    Delete

  3. Подтвердите операцию удаления группы ресурсов. Введите имя группы ресурсов, которую необходимо удалить, и щелкните Удалить.

Через некоторое время группа ресурсов и все ее ресурсы будут удалены.

Следующие шаги