Развертывание Azure Cosmos DB, службы приложений Azure и веб-приложения из GitHub с помощью шаблона Azure Resource Manager

ПРИМЕНИМО К: API SQL

В этом руководстве показано, как выполнить «бесконтактное» развертывание веб-приложения, которое подключается к Azure Cosmos DB при первом запуске, без необходимости вырезать и вставлять сведения о подключении из Azure Cosmos DB в appsettings.json или в параметры приложения, размещенного службе приложений на портале Azure. Все эти действия выполняются с помощью шаблона Azure Resource Manager за одну операцию. В этом примере мы развернем приложение Azure Cosmos DB TODO Sample из Руководства по веб-приложениям.

Диспетчер ресурсов шаблоны имеют гибкие настройки и позволяют создавать сложные развертывания в любой службе в Azure. Сюда входят такие задачи продвинутого уровня, как развертывание приложений из GitHub и добавление сведений о подключении в параметры приложений, размещенных в Службе приложений Azure на портале Azure. В этом руководстве показано, как выполнить следующие действия с помощью одного шаблона диспетчера ресурсов:

  • развертывание учетной записи Azure Cosmos DB;
  • развертывание плана размещения Службы приложений Azure;
  • развертывание Службы приложений Azure;
  • добавление конечной точки и ключей из учетной записи Azure Cosmos в параметры приложения, размещенного в службе приложений на портале Azure;
  • развертывание веб-приложения из репозитория GitHub в Службе приложений.

Полученное развертывание включает в себя полностью функциональное веб-приложение, которое может подключаться к Azure Cosmos DB без необходимости вырезать и вставлять URL-адрес конечной точки Azure Cosmos DB или ключи проверки подлинности с портала Azure.

Предварительные требования

Совет

Хотя это руководство не требует наличия опыта работы с шаблонами Azure Resource Manager или JSON, если возникнет необходимость изменить ссылки шаблонов или варианты развертывания, потребуются знания в каждой из этих областей.

Шаг 1. Развертывание шаблона

Нажмите кнопку Развернуть в Azure, чтобы открыть портал Azure для создания пользовательского развертывания. Шаблоны Azure Resource Manager также доступны в Коллекции шаблонов быстрого запуска Azure.

Развертывание в Azure

На портале Azure выберите подписку для развертывания, а затем выберите или создайте новую группу ресурсов. Заполните следующие значения:

Снимок экрана пользовательского интерфейса развертывания шаблона

  • Регион — это обязательный параметр для диспетчера ресурсов. Введите регион, указанный в качестве местоположения ресурсов.
  • Имя приложения — это имя используется всеми ресурсами развертывания. Обязательно выберите уникальное имя, чтобы избежать конфликтов с существующими учетными записями Azure Cosmos DB и службы приложений.
  • Местоположение — регион, в котором развернуты ресурсы.
  • Уровень плана службы приложений — ценовая категория плана Службы приложений.
  • Экземпляры плана Службы приложений — количество рабочих ролей для плана Службы приложений.
  • URL-адрес репозитория — репозиторий для веб-приложения на GitHub.
  • Ветвь — ветвь для репозитория GitHub.
  • Имя базы данных — имя базы данных Azure Cosmos.
  • Имя контейнера — имя контейнера Azure Cosmos.

После заполнения значений нажмите кнопку Создать, чтобы приступить к развертыванию. Выполнение этого шага займет 5-10 минут.

Совет

Шаблон не проверяет, являются ли имя Службы приложений Azure и имя учетной записи Azure Cosmos DB, введенные в шаблоне, действительными и доступными. Перед началом развертывания настоятельно рекомендуется проверить доступность имен, которые планируется использовать.

Шаг 2. Изучение ресурсов

Просмотр развернутых ресурсов

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

Группа ресурсов

Просмотр конечных точек и ключей Cosmos DB

Откройте учетную запись Azure Cosmos на портале. На следующем снимке экрана показаны конечные точки и ключи для учетной записи Azure Cosmos.

Ключи Cosmos

Просмотр ключей Azure Cosmos DB в параметрах приложения

Перейдите к службе приложений Azure в группе ресурсов. Перейдите на вкладку «Конфигурация», чтобы просмотреть параметры приложения для службы приложений. Параметры приложения содержат учетную запись Cosmos DB и значения первичного ключа, необходимые для подключения к Cosmos DB, а также имена базы данных и контейнера, переданные из развертывания шаблона.

Параметры приложения

Просмотр веб-приложения в Центре развертывания

Перейдите в Центр развертывания для службы приложений. В поле «Репозиторий» указана ссылка на репозиторий GitHub, переданный в шаблон. В поле «Состояние» указано успешное выполнение (активно) — это означает, что приложение успешно развернуто и запущено.

Центр развертывания

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

Чтобы открыть веб-приложение, щелкните кнопку Обзор в верхней части Центра развертывания. Откроется начальный экран веб-приложения. Щелкните Создать, затем введите данные в поля и нажмите кнопку «Сохранить». На экране отобразятся данные, сохраненные в Cosmos DB.

Начальный экран

Шаг 3. Как это работает

Есть три элемента, которые необходимы для работы.

Чтение параметров приложения во время выполнения

Сначала приложению нужно запросить конечную точку и ключ Cosmos DB в классе Startup в веб-приложении MVC ASP.NET. Cosmos DB To Do Sample можно запустить в локальной системе, @@@чтобы ввести сведения о подключении в appsettings.js. Однако при развертывании этот файл будет развернут вместе с приложением. Если строки в красной рамке не могут получить доступ к параметрам, указанным в appsettings.js, будет предпринята попытка использовать параметры приложения, указанные в службе приложений Azure.

На снимке экрана показан фрагмент кода, где несколько строковых переменных, включая databaseName, containerName, Account и Key, отмечены красным.

Использование специальных функций управления ресурсами Azure

Чтобы эти значения были доступны приложению при развертывании, шаблон Azure Resource Manager может запросить их из учетной записи Cosmos DB с помощью специальных функций управления ресурсами Azure, включая reference и listKeys. Они извлекают значения из учетной записи Cosmos DB и вставляют их в формате {section:key} в параметры приложения с именами ключей, которые совпадают с именами ключей, используемыми в приложении. Например, CosmosDb:Account.

Ключи шаблона

Развертывание веб-приложений из GitHub

Наконец, необходимо развернуть веб-приложение из GitHub в службе приложений. Это делается с помощью приведенного ниже кода JSON. Есть два момента, на которые следует обратить внимание, — это тип и имя ресурса. Значения свойств "type": "sourcecontrols" и "name": "web" жестко запрограммированны, их нельзя изменить.

Развертывание из GitHub

Дальнейшие действия

Поздравляем! Вы развернули Azure Cosmos DB, службу приложений Azure и пример веб-приложения, которое автоматически сведения для подключения к Cosmos DB, всего за одну операцию и вам не пришлось вырезать и вставлять конфиденциальные данные. Используя этот шаблон в качестве отправной точки, вы можете вносить изменения и аналогичным образом развертывать собственные веб-приложения.