Руководство по использованию диспетчера развертывания Azure с шаблонами Resource Manager (общедоступная предварительная версия)Tutorial: Use Azure Deployment Manager with Resource Manager templates (Public preview)

Узнайте, как использовать диспетчер развертывания Azure для развертывания приложений в нескольких регионах.Learn how to use Azure Deployment Manager to deploy your applications across multiple regions. Если вы предпочитаете более быстрый подход, ознакомьтесь с кратким руководством по использованию диспетчера развертывания Azure, в рамках которого вы сможете создать необходимые конфигурации в своей подписке и настроить артефакты для развертывания приложения в нескольких регионах.If you prefer a faster approach, Azure Deployment Manager quickstart creates the required configurations in your subscription and customizes the artifacts to deploy an application across multiple regions. В этом кратком руководстве выполняются те же задачи, что и в этом.The quickstart performs the same tasks as it does in this tutorial.

Чтобы использовать диспетчер развертывания, необходимо создать два шаблона:To use Deployment Manager, you need to create two templates:

  • Шаблон топологии: описывает ресурсы Azure для создания приложений и путь их развертывания.A topology template: describes the Azure resources the make up your applications and where to deploy them.
  • Шаблон развертывания: описывает действия, выполняемые при развертывании приложений.A rollout template: describes the steps to take when deploying your applications.

Важно!

Если ваша подписка помечена для раннего выпуска, что позволяет тестировать новые функции Azure, вы можете использовать диспетчер развертывания Azure только для развертывания в регионах, поддерживающих ранний выпуск.If your subscription is marked for Canary to test out new Azure features, you can only use Azure Deployment Manager to deploy to the Canary regions. 

В рамках этого руководства рассматриваются следующие задачи:This tutorial covers the following tasks:

  • Ознакомление со сценариемUnderstand the scenario
  • Скачивание учебных файловDownload the tutorial files
  • Подготовка артефактов.Prepare the artifacts
  • Создание определяемого пользователем управляемого удостоверения.Create the user-defined managed identity
  • Создание шаблона топологии службы.Create the service topology template
  • Создание шаблона развертывания.Create the rollout template
  • Развертывание шаблонов.Deploy the templates
  • Проверка развертыванияVerify the deployment
  • Развертывание более новой версии.Deploy the newer version
  • Очистка ресурсовClean up resources

Дополнительные ресурсы:Additional resources:

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.If you don't have an Azure subscription, create a free account before you begin.

Примечание

Эта статья была изменена и теперь содержит сведения о новом модуле Az для Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Вы по-прежнему можете использовать модуль AzureRM, исправления ошибок для которого будут продолжать выпускаться как минимум до декабря 2020 г.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Дополнительные сведения о совместимости модуля Az с AzureRM см. в статье Introducing the new Azure PowerShell Az module (Знакомство с новым модулем Az для Azure PowerShell).To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Инструкции по установке модуля Az см. в статье об установке Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

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

Для работы с этой статьей необходимо иметь следующее.To complete this article, you need:

  • Опыт разработки шаблонов Azure Resource Manager.Some experience with developing Azure Resource Manager templates.

  • Установите Azure PowerShell.Azure PowerShell. Дополнительные сведения см. в статье Начало работы с Azure PowerShell.For more information, see Get started with Azure PowerShell.

  • Командлеты диспетчера развертывания.Deployment Manager cmdlets. Чтобы установить эти командлеты предварительной версии, вам понадобится последняя версия PowerShellGet.To install these prerelease cmdlets, you need the latest version of PowerShellGet. Сведения о получении последней версии см. в статье Установка PowerShellGet.To get the latest version, see Installing PowerShellGet. После установки PowerShellGet закройте окно PowerShell.After installing PowerShellGet, close your PowerShell window. Откройте новое окно PowerShell с повышенными привилегиями и выполните следующую команду:Open a new elevated PowerShell window, and use the following command:

    Install-Module -Name Az.DeploymentManager
    
  • Обозреватель службы хранилища Microsoft Azure.Microsoft Azure Storage Explorer. Обозреватель службы хранилища не требуется, но он упрощает работу.Azure Storage Explorer is not required, but it makes things easier.

Ознакомление со сценариемUnderstand the scenario

Шаблон топологии службы описывает ресурсы Azure для создания службы и путь их развертывания.The service topology template describes the Azure resources the make up your service and where to deploy them. Определение топологии службы имеет следующую иерархию:The service topology definition has the following hierarchy:

  • Топология службы:Service topology
    • СлужбыServices
      • Модули службы.Service units

На следующей схеме показана топология службы, используемая в этом руководстве:The following diagram illustrates the service topology used in this tutorial:

Схема сценария управления диспетчера развертывания Azure

В западной и восточной части США расположены две службы.There are two services allocated in the west U.S. and the east U.S. locations. Каждая служба имеет два модуля службы — интерфейс веб-приложения и учетная запись хранения для серверной части.Each service has two service units - a web application frontend and a storage account for the backend. Определения модулей службы содержат ссылки на файлы шаблонов и параметры для создания веб-приложений и учетных записей хранения.The service unit definitions contain links to the template and parameter files for creating the web applications and the storage accounts.

Скачивание учебных файловDownload the tutorial files

  1. Скачайте шаблоны и артефакты, используемые в этом руководстве.Download the templates and the artifacts used by this tutorial.
  2. Распакуйте файлы на локальный компьютер.Unzip the files to your location computer.

В корневой папке есть две папки:Under the root folder, there are two folders:

  • ADMTemplates: содержит шаблоны диспетчера развертывания, включая такие:ADMTemplates: contains the Deployment Manager templates, that include:
    • CreateADMServiceTopology.json;CreateADMServiceTopology.json
    • CreateADMServiceTopology.Parameters.json;CreateADMServiceTopology.Parameters.json
    • CreateADMRollout.json;CreateADMRollout.json
    • CreateADMRollout.Parameters.json.CreateADMRollout.Parameters.json
  • ArtifactStore: содержит артефакты шаблонов и двоичные артефакты.ArtifactStore: contains both the template artifacts and the binary artifacts. Подробнее см. в разделе Подготовка артефактов.See Prepare the artifacts.

Обратите внимание, что существует два набора шаблонов.Note there are two sets of templates. Один набор — это шаблоны диспетчера развертывания, которые используются для развертывания топологии службы и выпуска. Другой набор вызывается из сервисных модулей для создания веб-служб и учетных записей хранения.One set is the Deployment Manager templates that are used to deploy the service topology and the rollout; the other set is called from the service units to create web services and storage accounts.

Подготовка артефактов.Prepare the artifacts

Папка ArtifactStore из скачивания содержит две папки:The ArtifactStore folder from the download contains two folders:

Диаграмма источника артефакта диспетчера развертывания Azure

  • Папка templates: содержит артефакты шаблона.The templates folder: contains the template artifacts. 1.0.0.0 и 1.0.0.1 представляют две версии двоичных артефактов.1.0.0.0 and 1.0.0.1 represent the two versions of the binary artifacts. В каждой версии есть папка для каждой службы (Service East U. S. и Service West U. S.).Within each version, there is a folder for each service (Service East U.S. and Service West U.S.). Каждая служба имеет пару шаблонов и файлов параметров для создания учетной записи хранения и другую пару для создания веб-приложения.Each service has a pair of template and parameter files for creating a storage account, and another pair for creating a web application. Шаблон веб-приложения вызывает сжатый пакет, содержащий файлы веб-приложения.The web application template calls a compressed package, which contains the web application files. Сжатый файл представляет собой двоичный артефакт, хранящийся в папке двоичных файлов.The compressed file is a binary artifact stored in the binaries folder.
  • Папка binaries содержит двоичные артефакты.The binaries folder: contains the binary artifacts. 1.0.0.0 и 1.0.0.1 представляют две версии двоичных артефактов.1.0.0.0 and 1.0.0.1 represent the two versions of the binary artifacts. Внутри каждой версии есть один ZIP-файл для создания веб-приложения в западной части США, а другой ZIP-файл — для создания веб-приложения в восточной части США.Within each version, there is one zip file for creating the web application in the west U.S. location, and the other zip file to create the web application in the east U.S. location.

Две версии (1.0.0.0 и 1.0.0.1) предназначены для развертывания версии.The two versions (1.0.0.0 and 1.0.0.1) are for the revision deployment. Несмотря на то, что как артефакты шаблонов, так и двоичные артефакты имеют две версии, только двоичные артефакты различаются между двумя версиями.Even though both the template artifacts and the binary artifacts have two versions, only the binary artifacts are different between the two versions. На практике двоичные артефакты чаще обновляются по сравнению с артефактами шаблонов.In practice, binary artifacts are updated more frequently comparing to template artifacts.

  1. Откройте \ArtifactStore\templates\1.0.0.0\ServiceWUS\CreateStorageAccount.json в текстовом редакторе.Open \ArtifactStore\templates\1.0.0.0\ServiceWUS\CreateStorageAccount.json in a text editor. Это базовый шаблон для создания учетной записи хранения.It is a basic template for creating a storage account.

  2. Откройте \ArtifactStore\templates\1.0.0.0\ServiceWUS\CreateWebApplication.json.Open \ArtifactStore\templates\1.0.0.0\ServiceWUS\CreateWebApplication.json.

    Руководство по работе с диспетчером развертывания Azure: создание шаблона веб-приложения

    Шаблон вызывает пакет развертывания, который содержит файлы веб-приложения.The template calls a deploy package, which contains the files of the web application. В этом руководстве сжатый пакет содержит только файл index.html.In this tutorial, the compressed package only contains an index.html file.

  3. Откройте \ArtifactStore\templates\1.0.0.0\ServiceWUS\CreateWebApplicationParameters.json.Open \ArtifactStore\templates\1.0.0.0\ServiceWUS\CreateWebApplicationParameters.json.

    Руководство по работе с диспетчером развертывания Azure: параметры containerRoot для создания шаблона веб-приложения

    Значение deployPackageUri является путем к пакету развертывания.The value of deployPackageUri is the path to the deployment package. Параметр содержит переменную $containerRoot.The parameter contains a $containerRoot variable. Значение $containerRoot предоставляется в шаблоне выпуска путем объединения исходного расположения артефакта SAS, корня артефакта и deployPackageUri.The value of $containerRoot is provided in the rollout template by concatenating the artifact source SAS location, artifact root, and deployPackageUri.

  4. Откройте \ArtifactStore\binaries\1.0.0.0\helloWorldWebAppWUS.zip\index.html.Open \ArtifactStore\binaries\1.0.0.0\helloWorldWebAppWUS.zip\index.html.

    <html>
      <head>
        <title>Azure Deployment Manager tutorial</title>
      </head>
      <body>
        <p>Hello world from west U.S.!</p>
        <p>Version 1.0.0.0</p>
      </body>
    </html>
    

    В html указано местоположение и информация о версии.The html shows the location and the version information. В двоичном файле в папке 1.0.0.1 показано сообщение "Версия 1.0.0.1".The binary file in the 1.0.0.1 folder shows "Version 1.0.0.1". После развертывания службы можно перейти к этим страницам.After you deploy the service, you can browse to these pages.

  5. Ознакомьтесь с другими файлами артефактов.Check out other artifact files. Это поможет вам лучше понять сценарий.It helps you to understand the scenario better.

Артефакты шаблонов используются шаблоном топологии службы, а двоичные артефакты используются шаблоном развертывания.Template artifacts are used by the service topology template, and binary artifacts are used by the rollout template. Как шаблон топологии, так и шаблон развертывания определяют ресурс Azure источника артефакта, который используется для указания диспетчеру ресурсов на шаблон и двоичные артефакты, применяемые в развертывании.Both the topology template and the rollout template define an artifact source Azure resource, which is a resource used to point Resource Manager to the template and binary artifacts that are used in the deployment. Чтобы упростить руководство, одна учетная запись хранения используется для хранения как артефактов шаблона, так и двоичных артефактов.To simplify the tutorial, one storage account is used to store both the template artifacts and the binary artifacts. Оба источника артефакта указывают на одну и ту же учетную запись хранения.Both artifact sources point to the same storage account.

  1. Создайте учетную запись хранения Azure.Create an Azure storage account. Для инструкций см. Краткое руководство. Передача, скачивание и составление списка больших двоичных объектов с помощью портала Azure.For the instructions, see Quickstart: Upload, download, and list blobs using the Azure portal.

  2. Создайте контейнер больших двоичных объектов в учетной записи храненияCreate a blob container in the storage account.

  3. Скопируйте две папки (двоичные файлы и шаблоны) и их содержимое в контейнер больших двоичных объектов.Copy the two folders (binaries and templates) and the content of the two folders to the blob container. Обозреватель службы хранилища Microsoft Azure поддерживает функцию перетаскивания.Microsoft Azure Storage Explorer supports the drag and drop feature.

  4. Получите местоположение SAS контейнера, используя следующие инструкции:Get the SAS location of the container using the following instructions:

    1. В Обозревателе службы хранилища Azure перейдите к контейнеру больших двоичных объектов.From Azure Storage Explorer, navigate to the blob container.
    2. Щелкните правой кнопкой мыши нужный контейнер больших двоичных объектов и в левой области выберите команду Get Shared Access Signature(Получить подписанный URL-адрес).Right-click the blob container from the left pane, and then select Get Shared Access Signature.
    3. Настройте время начала и время окончания срока действия.Configure Start time and Expiry time.
    4. Нажмите кнопку Создать.Select Create.
    5. Скопируйте URL-адрес.Make a copy of the URL. Этот URL-адрес необходим для заполнения полей в двух файлах параметров: файле параметров топологии и файле параметров развертывания.This URL is needed to populate a field in the two parameter files, topology parameters file and rollout parameters file.

Создание управляемого удостоверения, назначаемого пользователемCreate the user-assigned managed identity

Далее в этом руководстве развертывается выпуск.Later in the tutorial, you deploy a rollout. Для выполнения действий по развертыванию (например, развертывание веб-приложений и учетной записи хранения) требуется управляемое удостоверение, назначаемое пользователем.A user-assigned managed identity is needed to perform the deployment actions (for example, deploy the web applications and the storage account). Этому удостоверению должен быть предоставлен доступ к подписке Azure, в которую развертывается служба, а также требуется достаточное разрешение для завершения развертывания артефакта.This identity must be granted access to the Azure subscription you're deploying the service to, and have sufficient permission to complete the artifact deployment.

Вам необходимо создать управляемое удостоверение, назначаемое пользователем, и настроить управление доступом для своей подписки.You need to create a user-assigned managed identity and configure the access control for your subscription.

Важно!

Управляемое удостоверение, назначаемое пользователем, должно быть в том же расположении, что и выпуск.The user-assigned managed identity must be in the same location as the rollout. В настоящее время ресурсы диспетчера развертывания, включая выпуск, могут создаваться только в центральной части США или восточной части США 2.Currently, the Deployment Manager resources, including rollout, can only be created in either Central US or East US 2. Но это справедливо только для ресурсов диспетчера развертывания (например, топологии службы, служб, модулей служб, развертываний и действий).However, this is only true for the Deployment Manager resources (such as the service topology, services, service units, rollout, and steps). Ваш целевые ресурсы можно развернуть в любом поддерживаемом регионе Azure.Your target resources can be deployed to any supported Azure region. В этом руководстве соответствующие ресурсы развертываются в центральной части США, а службы — в восточной и западной частях США.In this tutorial, for example, the Deployment Manager resources are deployed to Central US, but the services are deployed to East US and West US. Это ограничение будет снято в будущем.This restriction will be lifted in the future.

  1. Войдите на портале Azure.Sign in to the Azure portal.

  2. Создайте управляемое удостоверение, назначаемое пользователем.Create a user-assigned managed identity.

  3. На портале щелкните Подписки в меню слева и выберите свою подписку.From the portal, select Subscriptions from the left menu, and then select your subscription.

  4. Выберите Управление доступом (IAM) , а затем Добавление назначения ролей.Select Access control (IAM), and then select Add role assignment.

  5. Введите или выберите следующие значения:Enter or select the following values:

    Руководство по использованию диспетчера развертывания Azure: управление доступом с помощью управляемого удостоверения, назначаемого пользователем

    • Роль: предоставьте достаточно разрешений на выполнение развертывания артефакта (веб-приложения и учетные записи хранения).Role: give sufficient permission to complete the artifact deployment (the web applications and the storage accounts). Выберите участника, как описано в этом руководстве.Select Contributor in this tutorial. На практике следует ограничить права доступа до минимума.In practice, you want to restrict the permissions to the minimum.
    • Assigned access to (Кому назначить доступ): выберите Управляемое удостоверение, назначаемое пользователем.Assigned access to: select User Assigned Managed Identity.
    • Выберите назначаемое пользователем управляемое удостоверение, которое вы создали.Select the user-assigned managed identity you created earlier in the tutorial.
  6. Щелкните Сохранить.Select Save.

Создание шаблона топологии службыCreate the service topology template

Откройте \ADMTemplates\CreateADMServiceTopology.json.Open \ADMTemplates\CreateADMServiceTopology.json.

ПараметрыThe parameters

Этот шаблон содержит следующие параметры:The template contains the following parameters:

Руководство по использованию диспетчера развертывания Azure: параметры топологии шаблона

  • namePrefix. Этот префикс используется для создания имен ресурсов диспетчера развертывания.namePrefix: This prefix is used to create the names for the Deployment Manager resources. Например, если использовать префикс jdoe, имя топологии службы будет jdoeServiceTopology.For example, using the "jdoe" prefix, the service topology name is jdoeServiceTopology. Имена ресурсов определены в разделе переменных этого шаблона.The resource names are defined in the variables section of this template.
  • azureResourcelocation. Чтобы упростить работу с руководством, все ресурсы совместно используют это расположение, если не указано иное.azureResourcelocation: To simplify the tutorial, all resources share this location unless it is specified otherwise. В настоящее время ресурсы диспетчера развертывания Azure могут создаваться в регионе Центральная часть США или Восточная часть США 2.Currently, Azure Deployment Manager resources can only be created in either Central US or East US 2.
  • artifactSourceSASLocation. Универсальный код ресурса (URI) SAS для контейнера больших двоичных объектов, где файлы параметров и шаблона модулей службы хранятся для развертывания.artifactSourceSASLocation: The SAS URI to the Blob container where service unit template and parameters files are stored for deployment. Подробнее см. в разделе Подготовка артефактов.See Prepare the artifacts.
  • templateArtifactRoot. Путь смещения из контейнера больших двоичных объектов, где хранятся шаблоны и параметры.templateArtifactRoot: The offset path from the Blob container where the templates and parameters are stored. Значение по умолчанию — templates/1.0.0.0.The default value is templates/1.0.0.0. Не изменяйте это значение, если вы не хотите изменять структуру папок, как описано в разделе Подготовка артефактов.Don't change this value unless you want to change the folder structure explained in Prepare the artifacts. В этом руководстве используются относительные пути.Relative paths are used in this tutorial. Полный путь формируется путем сцепления artifactSourceSASLocation, templateArtifactRoot и templateArtifactSourceRelativePath (или parametersArtifactSourceRelativePath).The full path is constructed by concatenating artifactSourceSASLocation, templateArtifactRoot, and templateArtifactSourceRelativePath (or parametersArtifactSourceRelativePath).
  • targetSubscriptionID. Идентификатор подписки, в которую будут развернуты ресурсы диспетчера развертывания и на которую будут выставляться счета.targetSubscriptionID: The subscription ID to which the Deployment Manager resources are going to be deployed and billed. Используйте идентификатор подписки в этом руководстве.Use your subscription ID in this tutorial.

ПеременныеThe variables

Раздел переменных определяет имена ресурсов, местоположения Azure для двух служб: службы WUS и службы EUS; и пути к артефактам.The variables section defines the names of the resources, the Azure locations for the two services: Service WUS and Service EUS, and the artifact paths:

Руководство по использованию диспетчера развертывания Azure: переменные топологии шаблона

Сравните пути артефакта со структурой папок, которую вы скачали в учетную запись хранения.Compare the artifact paths with the folder structure that you uploaded to the storage account. Обратите внимание, что пути артефактов являются относительными.Notice the artifact paths are relative paths. Полный путь формируется путем сцепления artifactSourceSASLocation, templateArtifactRoot и templateArtifactSourceRelativePath (или parametersArtifactSourceRelativePath).The full path is constructed by concatenating artifactSourceSASLocation, templateArtifactRoot, and templateArtifactSourceRelativePath (or parametersArtifactSourceRelativePath).

РесурсыThe resources

На корневом уровне определено два ресурса: источник артефакта и топология службы.On the root level, there are two resources defined: an artifact source, and a service topology.

Определение источника артефакта:The artifact source definition is:

Руководство по использованию диспетчера развертывания Azure: источник ресурсов артефактов топологии шаблона

На следующем снимке экрана отображаются только некоторые части определений топологии служб, служб и модулей служб:The following screenshot only shows some parts of the service topology, services, and service units definitions:

Руководство по использованию диспетчера развертывания Azure: ресурсы шаблона топологии, топология службы

  • artifactSourceId позволяет связать артефакт исходного ресурса с ресурсом топологии службы.artifactSourceId is used to associate the artifact source resource to the service topology resource.
  • dependsOn. Все ресурсы топологии службы зависят от исходного ресурса артефакта.dependsOn: All the service topology resources depend on the artifact source resource.
  • artifacts указывает артефакты шаблонов.artifacts point to the template artifacts. Здесь используются относительные пути.Relative paths are used here. Полный путь формируется путем сцепления artifactSourceSASLocation (определенный в источнике артефакта), artifactRoot (определенный в источнике артефакта) и templateArtifactSourceRelativePath (или parametersArtifactSourceRelativePath).The full path is constructed by concatenating artifactSourceSASLocation (defined in the artifact source), artifactRoot (defined in the artifact source), and templateArtifactSourceRelativePath (or parametersArtifactSourceRelativePath).

Файл параметров топологииTopology parameters file

Создайте файл параметров, используемый с шаблоном топологии.You create a parameters file used with the topology template.

  1. Откройте \ADMTemplates\CreateADMServiceTopology.Parameters в Visual Studio Code или любом текстовом редакторе.Open \ADMTemplates\CreateADMServiceTopology.Parameters in Visual Studio Code or any text editor.

  2. Укажите значения параметров.Fill the parameter values:

    • namePrefix. Введите строку из 4–5 символов.namePrefix: Enter a string with 4-5 characters. Этот префикс используется для создания уникальных имен ресурсов Аzure.This prefix is used to create unique azure resource names.
    • azureResourceLocation. Если вы не знакомы с расположениями Azure, используйте centralus в этом руководстве.azureResourceLocation: If you are not familiar with Azure locations, use centralus in this tutorial.
    • artifactSourceSASLocation. Введите URI SAS в корневой каталог (контейнер больших двоичных объектов), где хранятся файлы параметров и шаблон модулей службы для развертывания.artifactSourceSASLocation: Enter the SAS URI to the root directory (the Blob container) where service unit template and parameters files are stored for deployment. Подробнее см. в разделе Подготовка артефактов.See Prepare the artifacts.
    • templateArtifactRoot. Если вы не изменяли структуру папок артефактов, используйте templates/1.0.0.0 в этом руководстве.templateArtifactRoot: Unless you change the folder structure of the artifacts, use templates/1.0.0.0 in this tutorial.
    • targetScriptionID. Введите идентификатор подписки Azure.targetScriptionID: Enter your Azure subscription ID.

Важно!

Шаблон топологии и шаблон развертывания совместно используют некоторые общие параметры.The topology template and the rollout template share some common parameters. Они должны иметь общие параметры.These parameters must have the same values. Это такие параметры: namePrefix, azureResourceLocation и артефактSourceSASLocation (оба источника артефактов используют одну и ту же учетную запись хранения в этом руководстве).These parameters are: namePrefix, azureResourceLocation, and artifactSourceSASLocation (both artifact sources share the same storage account in this tutorial).

Создание шаблона развертыванияCreate the rollout template

Откройте \ADMTemplates\CreateADMRollout.json.Open \ADMTemplates\CreateADMRollout.json.

ПараметрыThe parameters

Этот шаблон содержит следующие параметры:The template contains the following parameters:

Руководство по использованию диспетчера развертывания Azure: параметры шаблона выпуска

  • namePrefix. Этот префикс используется для создания имен ресурсов диспетчера развертывания.namePrefix: This prefix is used to create the names for the Deployment Manager resources. Например, если использовать префикс jdoe, имя развертывания будет jdoeRollout.For example, using the "jdoe" prefix, the rollout name is jdoeRollout. Имена определены в разделе переменных этого шаблона.The names are defined in the variables section of the template.
  • azureResourcelocation. Чтобы упростить работу с руководством, все ресурсы диспетчера совместно используют это расположение, если не указано иное.azureResourcelocation: To simplify the tutorial, all Deployment Manager resources share this location unless it is specified otherwise. В настоящее время ресурсы диспетчера развертывания Azure могут создаваться в регионе Центральная часть США или Восточная часть США 2.Currently, Azure Deployment Manager resources can only be created in either Central US or East US 2.
  • artifactSourceSASLocation. URI SAS для контейнера больших двоичных объектов, где файлы параметров и шаблона модулей службы хранятся для развертывания.artifactSourceSASLocation: The SAS URI to the root directory (the Blob container) where service unit template and parameters files are stored for deployment. Подробнее см. в разделе Подготовка артефактов.See Prepare the artifacts.
  • binaryArtifactRoot. Значение по умолчанию — binaries/1.0.0.0.binaryArtifactRoot: The default value is binaries/1.0.0.0. Не изменяйте это значение, если вы не хотите изменять структуру папок, как описано в разделе Подготовка артефактов.Don't change this value unless you want to change the folder structure explained in Prepare the artifacts. В этом руководстве используются относительные пути.Relative paths are used in this tutorial. Полный путь формируется путем сцепления artifactSourceSASLocation, binaryArtifactRoot и deployPackageUri, указанных в файле CreateWebApplicationParameters.json.The full path is constructed by concatenating artifactSourceSASLocation, binaryArtifactRoot, and the deployPackageUri specified in the CreateWebApplicationParameters.json. Подробнее см. в разделе Подготовка артефактов.See Prepare the artifacts.
  • managedIdentityID. Управляемое удостоверение, назначаемое пользователем, который выполняет действия развертывания.managedIdentityID: The user-assigned managed identity that performs the deployment actions. Дополнительные сведения см. в разделе Создание управляемого удостоверения, назначаемого пользователем.See Create the user-assigned managed identity.

ПеременныеThe variables

Раздел переменных определяет имена ресурсов.The variables section defines the names of the resources. Убедитесь, что имя топологии службы, имена служб и имена модулей службы соответствуют именам, определенным в шаблоне топологии.Make sure the service topology name, the service names, and the service unit names match the names defined in the topology template.

Руководство по использованию диспетчера развертывания Azure: переменные шаблона выпуска

РесурсыThe resources

На корневом уровне определено три ресурса: источник артефакта, топология службы и выпуск.On the root level, there are three resources defined: an artifact source, a step, and a rollout.

Определение источника артефактов идентично определению шаблона топологии.The artifact source definition is identical to the one defined in the topology template. Дополнительные сведения см. в статье Руководство. Использование диспетчера развертывания Azure с шаблонами Resource Manager (предварительная версия).See Create the service topology template for more information.

На следующем снимке экрана показано определение шага ожидания:The following screenshot shows the wait step definition:

Руководство по использованию диспетчера развертывания Azure: шаг ожидания ресурса шаблона выпуска

Длительность соответствует стандарту ISO 8601.The duration is using the ISO 8601 standard. PT1M (заглавные буквы обязательны) является примером одноминутного ожидания.PT1M (capital letters are required) is an example of a 1-minute wait.

На следующем снимке экрана показаны только некоторые части определения развертывания:The following screenshot only shows some parts of the rollout definition:

Руководство по использованию диспетчера развертывания Azure: выпуск шаблона ресурсов

  • dependsOn. Ресурс развертывания зависит от исходного ресурса артефакта, а также от определенных шагов.dependsOn: The rollout resource depends on the artifact source resource, and any of the steps defined.
  • artifactSourceId позволяет связать артефакт исходного ресурса с выпуском службы.artifactSourceId: used to associate the artifact source resource to the rollout resource.
  • targetServiceTopologyId позволяет связать ресурс топологии службы с выпуском службы.targetServiceTopologyId: used to associate the service topology resource to the rollout resource.
  • deploymentTargetId. Это идентификатор ресурса единицы службы ресурса топологии службы.deploymentTargetId: It is the service unit resource ID of the service topology resource.
  • preDeploymentSteps и postDeploymentSteps: содержат шаги развертывания.preDeploymentSteps and postDeploymentSteps: contains the rollout steps. В шаблоне вызывается шаг ожидания.In the template, a wait step is called.
  • dependsOnStepGroups: позволяет настроить зависимости между группами шагов.dependsOnStepGroups: configure the dependencies between the step groups.

Файл параметров выпускаRollout parameters file

Создайте файл параметров, используемый с шаблоном выпуска.You create a parameters file used with the rollout template.

  1. Откройте \ADMTemplates\CreateADMRollout.Parameters в Visual Studio Code или любом текстовом редакторе.Open \ADMTemplates\CreateADMRollout.Parameters in Visual Studio Code or any text editor.

  2. Укажите значения параметров.Fill the parameter values:

    • namePrefix. Введите строку из 4–5 символов.namePrefix: Enter a string with 4-5 characters. Этот префикс используется для создания уникальных имен ресурсов Аzure.This prefix is used to create unique azure resource names.

    • azureResourceLocation. В настоящее время ресурсы диспетчера развертывания Azure могут создаваться в регионе Центральная часть США или Восточная часть США 2.azureResourceLocation: Currently, Azure Deployment Manager resources can only be created in either Central US or East US 2.

    • artifactSourceSASLocation. Введите URI SAS в корневой каталог (контейнер больших двоичных объектов), где хранятся файлы параметров и шаблон модулей службы для развертывания.artifactSourceSASLocation: Enter the SAS URI to the root directory (the Blob container) where service unit template and parameters files are stored for deployment. Подробнее см. в разделе Подготовка артефактов.See Prepare the artifacts.

    • binaryArtifactRoot. Если вы не изменяли структуру папок артефактов, используйте binaries/1.0.0.0 в этом руководстве.binaryArtifactRoot: Unless you change the folder structure of the artifacts, use binaries/1.0.0.0 in this tutorial.

    • managedIdentityID. Введите управляемое удостоверение, назначенное пользователем.managedIdentityID: Enter the user-assigned managed identity. Дополнительные сведения см. в разделе Создание управляемого удостоверения, назначаемого пользователем.See Create the user-assigned managed identity. Синтаксис:The syntax is:

      "/subscriptions/<SubscriptionID>/resourcegroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userassignedidentities/<ManagedIdentityName>"
      

Важно!

Шаблон топологии и шаблон развертывания совместно используют некоторые общие параметры.The topology template and the rollout template share some common parameters. Они должны иметь общие параметры.These parameters must have the same values. Это такие параметры: namePrefix, azureResourceLocation и артефактSourceSASLocation (оба источника артефактов используют одну и ту же учетную запись хранения в этом руководстве).These parameters are: namePrefix, azureResourceLocation, and artifactSourceSASLocation (both artifact sources share the same storage account in this tutorial).

Развертывание шаблонов.Deploy the templates

Azure PowerShell можно использовать для развертывания шаблонов.Azure PowerShell can be used to deploy the templates.

  1. Запустите сценарий для развертывания топологии службы.Run the script to deploy the service topology.

    $resourceGroupName = "<Enter a Resource Group Name>"
    $location = "Central US"
    $filePath = "<Enter the File Path to the Downloaded Tutorial Files>"
    
    # Create a resource group
    New-AzResourceGroup -Name $resourceGroupName -Location "$location"
    
    # Create the service topology
    New-AzResourceGroupDeployment `
        -ResourceGroupName $resourceGroupName `
        -TemplateFile "$filePath\ADMTemplates\CreateADMServiceTopology.json" `
        -TemplateParameterFile "$filePath\ADMTemplates\CreateADMServiceTopology.Parameters.json"
    

    Примечание

    New-AzResourceGroupDeployment выполняет асинхронный вызов.New-AzResourceGroupDeployment is an asynchronous call. Сообщение об успешном выполнении означает только то, что развертывание начато успешно.The success message only means the deployment has successfully begun. Для проверки развертывания см. шаг 2 и 4 этой процедуры.To verify the deployment, see step 2 and step 4 of this procedure.

  2. Убедитесь, что топология службы и выделенные ресурсы были успешно созданы с использованием портала Azure:Verify the service topology and the underlined resources have been created successfully using the Azure portal:

    Руководство по использованию диспетчера развертывания Azure: развернутые ресурсы шаблона топологии

    Для просмотра ресурсов необходимо выбрать Показать скрытые типы.Show hidden types must be selected to see the resources.

  3. Развертывание шаблона выпускаDeploy the rollout template:

    # Create the rollout
    New-AzResourceGroupDeployment `
        -ResourceGroupName $resourceGroupName `
        -TemplateFile "$filePath\ADMTemplates\CreateADMRollout.json" `
        -TemplateParameterFile "$filePath\ADMTemplates\CreateADMRollout.Parameters.json"
    
  4. Проверьте выполнение развертывания с помощью следующего сценария PowerShell:Check the rollout progress using the following PowerShell script:

    # Get the rollout status
    $rolloutname = "<Enter the Rollout Name>" # "adm0925Rollout" is the rollout name used in this tutorial
    Get-AzDeploymentManagerRollout `
        -ResourceGroupName $resourceGroupName `
        -Name $rolloutName `
        -Verbose
    

    Перед запуском этого командлета необходимо установить командлеты диспетчера развертывания PowerShell.The Deployment Manager PowerShell cmdlets must be installed before you can run this cmdlet. См. предварительные требования.See Prerequisites. Просмотреть выходные данные полностью можно с помощью параметра -verbose.The -Verbose switch can be used to see the whole output.

    В следующем примере показано состояние выполнения:The following sample shows the running status:

    VERBOSE:
    
    Status: Succeeded
    ArtifactSourceId: /subscriptions/<AzureSubscriptionID>/resourceGroups/adm0925rg/providers/Microsoft.DeploymentManager/artifactSources/adm0925ArtifactSourceRollout
    BuildVersion: 1.0.0.0
    
    Operation Info:
        Retry Attempt: 0
        Skip Succeeded: False
        Start Time: 03/05/2019 15:26:13
        End Time: 03/05/2019 15:31:26
        Total Duration: 00:05:12
    
    Service: adm0925ServiceEUS
        TargetLocation: EastUS
        TargetSubscriptionId: <AzureSubscriptionID>
    
        ServiceUnit: adm0925ServiceEUSStorage
            TargetResourceGroup: adm0925ServiceEUSrg
    
            Step: Deploy
                Status: Succeeded
                StepGroup: stepGroup3
                Operation Info:
                    DeploymentName: 2F535084871E43E7A7A4CE7B45BE06510adm0925ServiceEUSStorage
                    CorrelationId: 0b6f030d-7348-48ae-a578-bcd6bcafe78d
                    Start Time: 03/05/2019 15:26:32
                    End Time: 03/05/2019 15:27:41
                    Total Duration: 00:01:08
                Resource Operations:
    
                    Resource Operation 1:
                    Name: txq6iwnyq5xle
                    Type: Microsoft.Storage/storageAccounts
                    ProvisioningState: Succeeded
                    StatusCode: OK
                    OperationId: 64A6E6EFEF1F7755
    
    ...
    
    ResourceGroupName       : adm0925rg
    BuildVersion            : 1.0.0.0
    ArtifactSourceId        : /subscriptions/<SubscriptionID>/resourceGroups/adm0925rg/providers/Microsoft.DeploymentManager/artifactSources/adm0925ArtifactSourceRollout
    TargetServiceTopologyId : /subscriptions/<SubscriptionID>/resourceGroups/adm0925rg/providers/Microsoft.DeploymentManager/serviceTopologies/adm0925ServiceTopology
    Status                  : Running
    TotalRetryAttempts      : 0
    OperationInfo           : Microsoft.Azure.Commands.DeploymentManager.Models.PSRolloutOperationInfo
    Services                : {adm0925ServiceEUS, adm0925ServiceWUS}
    Name                    : adm0925Rollout
    Type                    : Microsoft.DeploymentManager/rollouts
    Location                : centralus
    Id                      : /subscriptions/<SubscriptionID>/resourcegroups/adm0925rg/providers/Microsoft.DeploymentManager/rollouts/adm0925Rollout
    Tags                    :
    

    После успешного развертывания вы увидите две группы ресурсов, по одной для каждой службы.After the rollout is deployed successfully, you shall see two more resource groups created, one for each service.

Проверка развертыванияVerify the deployment

  1. Откройте портал Azure.Open the Azure portal.
  2. Перейдите к новым веб-приложениям в новых группах ресурсов, созданных в результате развертывания выпуска.Browse to the newly create web applications under the new resource groups created by the rollout deployment.
  3. Откройте веб-приложение в веб-браузере.Open the web application in a web browser. Проверьте местоположение и версию в файле index.html.Verify the location and the version on the index.html file.

Развертывание редакцииDeploy the revision

При наличии новой версии (1.0.0.1) веб-приложенияWhen you have a new version (1.0.0.1) for the web application. вы можете использовать следующую процедуру для повторного развертывания веб-приложения.You can use the following procedure to redeploy the web application.

  1. Откройте CreateADMRollout.Parameters.json.Open CreateADMRollout.Parameters.json.
  2. Обновите binaryArtifactRoot до версии binaries/1.0.0.1.Update binaryArtifactRoot to binaries/1.0.0.1.
  3. Повторите развертывание, как указано в разделе Развертывание шаблонов.Redeploy the rollout as instructed in Deploy the templates.
  4. Проверьте развертывание, как указано в разделе Проверка развертывания.Verify the deployment as instructed in Verify the deployment. На веб-странице должна быть показана версия 1.0.0.1.The web page shall show the 1.0.0.1 version.

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

Если ресурсы Azure больше не нужны, их можно удалить. Для этого необходимо удалить группу ресурсов.When the Azure resources are no longer needed, clean up the resources you deployed by deleting the resource group.

  1. На портале Azure в меню слева выберите Группа ресурсов.From the Azure portal, select Resource group from the left menu.

  2. Используйте поле Фильтровать по имени, чтобы сузить группы ресурсов, созданные в этом руководстве.Use the Filter by name field to narrow down the resource groups created in this tutorial. Их должно быть от 3 до 4:There shall be 3-4:

    • <namePrefix>rg: содержит ресурсы диспетчера развертывания.<namePrefix>rg: contains the Deployment Manager resources.
    • <namePrefix>ServiceWUSrg: содержит ресурсы, определенные в ServiceWUS.<namePrefix>ServiceWUSrg: contains the resources defined by ServiceWUS.
    • <namePrefix>ServiceEUSrg: содержит ресурсы, определенные в ServiceEUS.<namePrefix>ServiceEUSrg: contains the resources defined by ServiceEUS.
    • Группа ресурсов для определяемого пользователем управляемого удостоверения.The resource group for the user-defined managed identity.
  3. Выберите имя группы ресурсов.Select the resource group name.

  4. В главном меню выберите Удалить группу ресурсов.Select Delete resource group from the top menu.

  5. Повторите последние два шага для удаления других групп ресурсов, созданных в этом руководстве.Repeat the last two steps to delete other resource groups created by this tutorial.

Дополнительная информацияNext steps

В этом руководстве вы узнали, как использовать диспетчер развертывания Azure.In this tutorial, you learned how to use Azure Deployment Manager. Интеграция мониторинга работоспособности в диспетчер развертывания Azure описана в разделе Tutorial: Use health check in Azure Deployment Manager (Учебник по использованию проверки работоспособности в диспетчере развертывания Azure).To integrate health monitoring in Azure Deployment Manager, see Tutorial: Use health check in Azure Deployment Manager.