Общие сведения о диспетчере ресурсов AzureAzure Resource Manager overview

Azure Resource Manager — это служба развертывания и управления для Azure.Azure Resource Manager is the deployment and management service for Azure. Она обеспечивает уровень согласованного управления, позволяющий создавать, обновлять и удалять ресурсы в подписке Azure.It provides a consistent management layer that enables you to create, update, and delete resources in your Azure subscription. Вы можете использовать ее функции управления доступом, аудита и добавления тегов, чтобы защитить и упорядочить ресурсы после развертывания.You can use its access control, auditing, and tagging features to secure and organize your resources after deployment.

При выполнении действий с помощью портала, PowerShell, интерфейса командной строки Azure, REST API или клиентских пакетов SDK ваш запрос обрабатывается с помощью API Azure Resource Manager.When you take actions through the portal, PowerShell, Azure CLI, REST APIs, or client SDKs, the Azure Resource Manager API handles your request. Так как все запросы обрабатываются через один API, результаты и возможности будут согласованы в различных средствах.Because all requests are handled through the same API, you see consistent results and capabilities in all the different tools. Все доступные на портале возможности также доступны в PowerShell, Azure CLI, REST API и клиентских пакетах SDK.All capabilities that are available in the portal are also available through PowerShell, Azure CLI, REST APIs, and client SDKs. Функции, предоставленные через API, будут представлены на портале в течение 180 дней после выпуска.Functionality initially released through APIs will be represented in the portal within 180 days of initial release.

На приведенном ниже рисунке показано, как эти средства взаимодействуют с API Azure Resource Manager.The following image shows how all the tools interact with the Azure Resource Manager API. API передает запросы в службу Resource Manager, где они проходят проверку подлинности и авторизацию.The API passes requests to the Resource Manager service, which authenticates and authorizes the requests. Потом Resource Manager перенаправляет запросы к соответствующей службе.Resource Manager then routes the requests to the appropriate service.

Модель запросов Resource Manager

ТерминологияTerminology

Если у вас еще нет опыта работы с Azure Resource Manager, возможно, некоторые термины окажутся незнакомыми.If you're new to Azure Resource Manager, there are some terms you might not be familiar with.

  • Ресурс — управляемый элемент, доступный в Azure.resource - A manageable item that is available through Azure. Виртуальные машины, учетные записи хранения, веб-приложения, базы данных и виртуальные сети являются примерами ресурсов.Virtual machines, storage accounts, web apps, databases, and virtual networks are examples of resources.
  • Группа ресурсов — контейнер, содержащий связанные ресурсы для решения Azure.resource group - A container that holds related resources for an Azure solution. Группа ресурсов содержит ресурсы, которыми вы хотите управлять как группой.The resource group includes those resources that you want to manage as a group. Пользователи могут выбрать оптимальный для своей организации способ распределения ресурсов в группах ресурсов.You decide how to allocate resources to resource groups based on what makes the most sense for your organization. См. раздел Группы ресурсов.See Resource groups.
  • Поставщик ресурсов — служба, которая предоставляет ресурсы Azure.resource provider - A service that supplies Azure resources. Например, распространенный поставщик ресурсов Microsoft.Compute, который предоставляет ресурс виртуальной машины.For example, a common resource provider is Microsoft.Compute, which supplies the virtual machine resource. Microsoft.Storage является еще одним распространенным поставщиком ресурсов.Microsoft.Storage is another common resource provider. См. раздел Поставщики ресурсов.See Resource providers.
  • Шаблон Resource Manager — файл в формате JSON (нотация объектов JavaScript), определяющий один или несколько ресурсов для развертывания в группе ресурсов или подписке.Resource Manager template - A JavaScript Object Notation (JSON) file that defines one or more resources to deploy to a resource group or subscription. Шаблон можно использовать для согласованного и многократного развертывания ресурсов.The template can be used to deploy the resources consistently and repeatedly. См. раздел Развертывание шаблона.See Template deployment.
  • Декларативный синтаксис — синтаксис, позволяющий указать объект, который вы собираетесь создать. При этом для создания объекта не нужно писать последовательность команд.declarative syntax - Syntax that lets you state "Here is what I intend to create" without having to write the sequence of programming commands to create it. Шаблон Resource Manager — пример декларативного синтаксиса.The Resource Manager template is an example of declarative syntax. В файле можно задать свойства для инфраструктуры, развертываемой в Azure.In the file, you define the properties for the infrastructure to deploy to Azure.

Преимущества использования диспетчера ресурсовThe benefits of using Resource Manager

Диспетчер ресурсов предоставляет несколько преимуществ.Resource Manager provides several benefits:

  • Вы можете развертывать и отслеживать все ресурсы вашего решения как единую группу, а не работать с ними по отдельности.You can deploy, manage, and monitor all the resources for your solution as a group, rather than handling these resources individually.
  • Вы можете повторно развертывать решение на протяжении всего цикла разработки и гарантировать, что ресурсы развертываются в согласованном состоянии.You can repeatedly deploy your solution throughout the development lifecycle and have confidence your resources are deployed in a consistent state.
  • Инфраструктурой можно управлять с помощью декларативных шаблонов, а не сценариев.You can manage your infrastructure through declarative templates rather than scripts.
  • Вы можете определять зависимости между ресурсами, чтобы их развертывание выполнялось в правильном порядке.You can define the dependencies between resources so they're deployed in the correct order.
  • Вы можете применить контроль доступа ко всем службам, так как контроль доступа на основе ролей (RBAC) изначально интегрирован в платформу управления.You can apply access control to all services in your resource group because Role-Based Access Control (RBAC) is natively integrated into the management platform.
  • Для логического упорядочивания всех ресурсов в вашей подписке к ним можно применять теги.You can apply tags to resources to logically organize all the resources in your subscription.
  • Чтобы узнать о выставлении счетов для вашей организации, просмотрите затраты на группу ресурсов с одним тегом.You can clarify your organization's billing by viewing costs for a group of resources sharing the same tag.

Общие сведения об областиUnderstand scope

В Azure предоставляются четыре уровня области: группы управления, подписки, группы ресурсов и ресурсы.Azure provides four levels of scope: management groups, subscriptions, resource groups, and resources. Пример этих уровней приведен на следующем изображении.The following image shows an example of these layers.

Область

Параметры управления можно применить на любом из этих уровней области.You apply management settings at any of these levels of scope. Выбранный уровень определяет, насколько широка область применения параметра.The level you select determines how widely the setting is applied. На более низких уровнях наследуются параметры более высоких уровней.Lower levels inherit settings from higher levels. Например, если политика применяется к подписке, она применяется ко всем группам ресурсов и ресурсам в подписке.For example, when you apply a policy to the subscription, the policy is applied to all resource groups and resources in your subscription. Если же политика применяется к группе ресурсов, то она применяется ко всем ресурсам в ней.When you apply a policy on the resource group, that policy is applied the resource group and all its resources. Но в другой группе ресурсов этого назначения политики не будет.However, another resource group doesn't have that policy assignment.

Шаблоны можно развернуть в группах управления, подписках или группах ресурсов.You can deploy templates to management groups, subscriptions, or resource groups.

РуководствоGuidance

Следующие рекомендации помогут использовать все преимущества Resource Manager при работе с решениями.The following suggestions help you take full advantage of Resource Manager when working with your solutions.

  • Определите и разверните инфраструктуру с помощью декларативного синтаксиса в шаблонах диспетчера ресурсов, а не с помощью безусловных команд.Define and deploy your infrastructure through the declarative syntax in Resource Manager templates, rather than through imperative commands.
  • Определите все шаги развертывания и настройки в шаблоне.Define all deployment and configuration steps in the template. При настройке решения вы не должны выполнять какие-либо действия вручную.You should have no manual steps for setting up your solution.
  • Используйте безусловные команды для управления ресурсами, например для запуска и остановки приложения или компьютера.Run imperative commands to manage your resources, such as to start or stop an app or machine.
  • Объедините ресурсы с одинаковым жизненным циклом в группу ресурсов.Arrange resources with the same lifecycle in a resource group. Для упорядочивания всех остальных ресурсов используйте теги.Use tags for all other organizing of resources.

Инструкции по использованию Resource Manager для эффективного управления подписками в организациях см. в статье Корпоративный каркас Azure: рекомендуемая система управления подписками.For guidance on how enterprises can use Resource Manager to effectively manage subscriptions, see Azure enterprise scaffold - prescriptive subscription governance.

Дополнительные рекомендации по созданию шаблонов Resource Manager см. в статье Рекомендации по работе с шаблонами Azure Resource Manager.For recommendations on creating Resource Manager templates, see Azure Resource Manager template best practices.

Группы ресурсовResource groups

Существуют некоторые важные факторы, которые необходимо учитывать при определении группы ресурсов:There are some important factors to consider when defining your resource group:

  • Все ресурсы в группе должны совместно использовать один и тот же жизненный цикл.All the resources in your group should share the same lifecycle. Развертывание, обновление и удаление производится сразу для всех ресурсов.You deploy, update, and delete them together. Если один ресурс, например сервер базы данных, должен присутствовать в другом цикле развертывания, его следует поместить в другую группу ресурсов.If one resource, such as a database server, needs to exist on a different deployment cycle it should be in another resource group.
  • Каждый ресурс может существовать только в одной группе ресурсов.Each resource can only exist in one resource group.
  • Ресурс можно добавить в группу ресурсов или удалить из нее в любое время.You can add or remove a resource to a resource group at any time.
  • Ресурс можно перемещать из одной группы ресурсов в другую.You can move a resource from one resource group to another group. Дополнительные сведения см. в статье Перемещение ресурсов в новую группу ресурсов или подписку.For more information, see Move resources to new resource group or subscription.
  • Группа ресурсов может содержать ресурсы, которые находятся в разных регионах.A resource group can contain resources that are located in different regions.
  • Группу ресурсов можно использовать, чтобы определить область действия управления доступом для административных действий.A resource group can be used to scope access control for administrative actions.
  • Ресурс может взаимодействовать с ресурсом в других группах.A resource can interact with resources in other resource groups. Такое взаимодействие чаще всего происходит, если эти два ресурса связаны, но имеют разные жизненные циклы (например, веб-приложения, подключенные к базе данных).This interaction is common when the two resources are related but don't share the same lifecycle (for example, web apps connecting to a database).

При создании группы ресурсов необходимо указать ее расположение.When creating a resource group, you need to provide a location for that resource group. У пользователя может возникнуть вопрос, зачем для группы ресурсов нужно расположение.You may be wondering, "Why does a resource group need a location? И если ресурсы и группа ресурсов могут находиться в разных расположениях, то какой смысл указывать расположение группы ресурсов?And, if the resources can have different locations than the resource group, why does the resource group location matter at all?" В группе ресурсов хранятся метаданные о ресурсах.The resource group stores metadata about the resources. Таким образом, указывая расположение группы ресурсов, вы определяете расположение метаданных.Therefore, when you specify a location for the resource group, you're specifying where that metadata is stored. В целях обеспечения соответствия необходимо убедиться, что данные хранятся в определенном регионе.For compliance reasons, you may need to ensure that your data is stored in a particular region.

Если регион группы ресурсов временно недоступен, вы не сможете обновить ресурсы в группе ресурсов, так как недоступны их метаданные.If the resource group's region is temporarily unavailable, you can't update resources in the resource group because the metadata is unavailable. Ресурсы в других регионах будут работать должным образом, но обновить их не получится.The resources in other regions will still function as expected, but you can't update them. Дополнительные сведения о создании надежных приложений см. в разделе Разработка надежных приложений Azure.For more information about building reliable applications, see Designing reliable Azure applications.

Поставщики ресурсовResource providers

Каждый поставщик ресурсов предоставляет набор ресурсов и операций для работы с этими ресурсами.Each resource provider offers a set of resources and operations for working with those resources. Например, чтобы хранить ключи и секреты, вам придется работать с поставщиком ресурсов Microsoft.KeyVault.For example, if you want to store keys and secrets, you work with the Microsoft.KeyVault resource provider. Этот поставщик ресурсов предлагает тип ресурса с именем vaults для создания хранилища ключей.This resource provider offers a resource type called vaults for creating the key vault.

Формат имени типа ресурса: {поставщик_ресурса}/{тип_ресурса} .The name of a resource type is in the format: {resource-provider}/{resource-type}. Тип ресурса для хранилища ключей — Microsoft.KeyVault/vaults.The resource type for a key vault is Microsoft.KeyVault/vaults.

Прежде чем начинать развертывание ресурсов, необходимо подробнее узнать о доступных поставщиках ресурсов.Before getting started with deploying your resources, you should gain an understanding of the available resource providers. Сведения об именах поставщиков ресурсов и самих ресурсов помогут определить, какие ресурсы необходимо развернуть в Azure.Knowing the names of resource providers and resources helps you define resources you want to deploy to Azure. Также вы должны знать допустимые расположения и версии API для каждого типа ресурсов.Also, you need to know the valid locations and API versions for each resource type. См. дополнительные сведения о поставщиках и типах ресурсов.For more information, see Resource providers and types.

Дополнительные сведения обо всех операциях, предоставляемых поставщиками ресурсов, см. в справочнике по Azure REST API.For all the operations offered by resource providers, see the Azure REST APIs.

Развертывание шаблонаTemplate deployment

С помощью Resource Manager можно создать шаблон (в формате JSON), определяющий инфраструктуру и конфигурацию решения Azure.With Resource Manager, you can create a template (in JSON format) that defines the infrastructure and configuration of your Azure solution. Этот шаблон можно использовать, чтобы повторно развертывать решение на протяжении всего его жизненного цикла и гарантировать, что ресурсы развертываются в согласованном состоянии.By using a template, you can repeatedly deploy your solution throughout its lifecycle and have confidence your resources are deployed in a consistent state.

Дополнительные сведения о формате и создании шаблона см. в статье Описание структуры и синтаксиса шаблонов Azure Resource Manager.To learn about the format of the template and how you construct it, see Understand the structure and syntax of Azure Resource Manager Templates. См. дополнительные сведения о синтаксисе JSON при определении ресурсов в шаблонах Azure Resource Manager.To view the JSON syntax for resources types, see Define resources in Azure Resource Manager templates.

Resource Manager обрабатывает шаблон, как и любой другой запрос.Resource Manager processes the template like any other request. Он анализирует шаблон и преобразует его синтаксис в операции REST API для соответствующих поставщиков ресурсов.It parses the template and converts its syntax into REST API operations for the appropriate resource providers. Например, Resource Manager получает шаблон со следующим определением ресурса:For example, when Resource Manager receives a template with the following resource definition:

"resources": [
  {
    "apiVersion": "2016-01-01",
    "type": "Microsoft.Storage/storageAccounts",
    "name": "mystorageaccount",
    "location": "westus",
    "sku": {
      "name": "Standard_LRS"
    },
    "kind": "Storage",
    "properties": {
    }
  }
]

В таком случае Resource Manager преобразует определение в операцию REST API, которая отправляется поставщику ресурсов Microsoft.Storage:It converts the definition to the following REST API operation, which is sent to the Microsoft.Storage resource provider:

PUT
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/mystorageaccount?api-version=2016-01-01
REQUEST BODY
{
  "location": "westus",
  "properties": {
  }
  "sku": {
    "name": "Standard_LRS"
  },
  "kind": "Storage"
}

Вы выбираете определение шаблонов и групп ресурсов по своему усмотрению в зависимости от того, как нужно управлять решением.How you define templates and resource groups is entirely up to you and how you want to manage your solution. Например, трехуровневое приложение можно развернуть из одного шаблона в одной группе ресурсов.For example, you can deploy your three tier application through a single template to a single resource group.

трехуровневый шаблон

Но определять всю инфраструктуру в одном шаблоне не нужно.But, you don't have to define your entire infrastructure in a single template. Во многих случаях целесообразно разделять требования к развертыванию между несколькими наборами шаблонов, предназначенными для определенных задач.Often, it makes sense to divide your deployment requirements into a set of targeted, purpose-specific templates. Эти шаблоны можно многократно использовать для различных решений.You can easily reuse these templates for different solutions. Чтобы развернуть конкретное решение, создайте главный шаблон, связывающий все необходимые шаблоны.To deploy a particular solution, you create a master template that links all the required templates. Ниже показано, как развернуть трехуровневое решение из родительского шаблона, в который входят три вложенных шаблона.The following image shows how to deploy a three tier solution through a parent template that includes three nested templates.

вложенный шаблон

Если в вашем случае у уровней отдельные жизненные циклы, эти уровни можно развернуть в отдельные группы ресурсов.If you envision your tiers having separate lifecycles, you can deploy your three tiers to separate resource groups. Обратите внимание, что ресурсы по-прежнему могут быть связаны с ресурсами в других группах.Notice the resources can still be linked to resources in other resource groups.

шаблон уровня

Дополнительные сведения см. в статье Использование связанных шаблонов в Azure Resource Manager.For information about nested templates, see Using linked templates with Azure Resource Manager.

Azure Resource Manager анализирует зависимости, чтобы обеспечить создание ресурсов в правильном порядке.Azure Resource Manager analyzes dependencies to ensure resources are created in the correct order. Если один ресурс зависит от значения в другом ресурсе (например, виртуальная машина, для которой требуется учетная запись хранения диска), можно задать зависимость.If one resource relies on a value from another resource (such as a virtual machine needing a storage account for disks), you set a dependency. Дополнительные сведения см. в статье Определение зависимостей в шаблонах диспетчера ресурсов Azure.For more information, see Defining dependencies in Azure Resource Manager templates.

Кроме того, шаблон можно использовать для внесения обновлений в инфраструктуру.You can also use the template for updates to the infrastructure. Например, можно добавить новый ресурс в решение и правила конфигурации для уже развернутых ресурсов.For example, you can add a resource to your solution and add configuration rules for the resources that are already deployed. Если шаблон определяет ресурс, который уже существует, Resource Manager обновляет существующий ресурс вместо создания нового.If the template defines a resource that already exists, Resource Manager updates the existing resource instead of creating a new one.

Диспетчер ресурсов предоставляет расширения для сценариев, когда необходимы дополнительные операции, такие как установка определенного программного обеспечения, не включенного в программу установки.Resource Manager provides extensions for scenarios when you need additional operations such as installing particular software that isn't included in the setup. Если вы уже работаете со службой управления конфигурацией, такую как DSC, Chef или Puppet, это можно делать и дальше, используя расширения.If you're already using a configuration management service, like DSC, Chef or Puppet, you can continue working with that service by using extensions. Дополнительные сведения о расширениях виртуальных машин см. в статье Обзор расширений и компонентов виртуальной машины.For information about virtual machine extensions, see About virtual machine extensions and features.

Если решение создается на портале, оно автоматически включает в себя шаблон развертывания.When you create a solution from the portal, the solution automatically includes a deployment template. Вам не нужно создавать шаблон с нуля, так как можно начать с шаблона для своего решения и настроить его в соответствии с конкретными потребностями.You don't have to create your template from scratch because you can start with the template for your solution and customize it to meet your specific needs. Пример см. в кратком руководстве по созданию и развертыванию шаблонов Azure Resource Manager с помощью портала Azure.For a sample, see Quickstart: Create and deploy Azure Resource Manager templates by using the Azure portal. Шаблон для существующей группы ресурсов можно получить, либо экспортировав текущее состояние группы ресурсов, либо просмотрев шаблон, использованный для конкретного развертывания.You can also retrieve a template for an existing resource group by either exporting the current state of the resource group, or viewing the template used for a particular deployment. Чтобы лучше понять синтаксис шаблона, изучите экспортированный шаблон.Viewing the exported template is a helpful way to learn about the template syntax.

Наконец, шаблон становится частью исходного кода для вашего приложения.Finally, the template becomes part of the source code for your app. Можно включить его в репозиторий исходного кода и обновлять по мере развития приложения.You can check it in to your source code repository and update it as your app evolves. Шаблон можно изменить в Visual Studio.You can edit the template through Visual Studio.

Определив шаблон, можно приступить к развертыванию ресурсов в Azure.After defining your template, you're ready to deploy the resources to Azure. Дополнительные сведения о развертывании ресурсов см. в следующих источниках.To deploy the resources, see:

Методики безопасного развертыванияSafe deployment practices

При развертывании комплексной службы в Azure, прежде чем переходить к следующему шагу, необходимо развернуть службу в нескольких регионах и проверить ее работоспособность.When deploying a complex service to Azure, you might need to deploy your service to multiple regions, and check its health before proceeding to the next step. Чтобы выпустить поэтапное развертывание службы, используйте диспетчер развертывания Azure.Use Azure Deployment Manager to coordinate a staged rollout of the service. Помещая выпуск службы на промежуточное хранение и обработку, можно обнаружить потенциальные проблемы, прежде чем он будет развернут во всех регионах.By staging the rollout of your service, you can find potential problems before it has been deployed to all regions. Если эти меры предосторожности не нужны, отображаемые в предыдущем разделе операции развертывания являются лучшим вариантом.If you don't need these precautions, the deployment operations in the preceding section are the better option.

Диспетчер развертывания предоставляется в общедоступной предварительной версии.Deployment Manager is currently in public preview.

Устойчивость Azure Resource ManagerResiliency of Azure Resource Manager

Служба Azure Resource Manager предназначена для обеспечения устойчивости и постоянной доступности.The Azure Resource Manager service is designed for resiliency and continuous availability. Операции Resource Manager и операции управления (запросы, отправленные на management.azure.com) в REST API:Resource Manager and control plane operations (requests sent to management.azure.com) in the REST API are:

  • Распределяются между регионами.Distributed across regions. Некоторые службы являются региональными.Some services are regional.

  • Распределяются между зонами доступности (как и регионами) в расположениях с несколькими зонами доступности.Distributed across Availability Zones (as well regions) in locations that have multiple Availability Zones.

  • Не зависят от единственного логического центра обработки данных.Not dependent on a single logical data center.

  • Никогда не отключаются для операций обслуживания.Never taken down for maintenance activities.

Эта устойчивость относится к службам, которые получают запросы через Resource Manager.This resiliency applies to services that receive requests through Resource Manager. Например, Key Vault получает преимущества от этой устойчивости.For example, Key Vault benefits from this resiliency.

Краткие руководстваQuickstarts and tutorials

В следующих кратких руководствах вы узнаете, как создавать шаблоны диспетчера ресурсов.Use the following quickstarts and tutorials to learn how to develop resource manager templates:

Эти руководства можно использовать по отдельности или в рамках комплексного изучения основных принципов разработки шаблона Resource Manager.These tutorials can be used individually, or as a series to learn the major Resource Manager template development concepts.

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

С помощью этой статьи вы научились использовать Azure Resource Manager для развертывания, контроля ресурсов в Azure и управления доступом к ним.In this article, you learned how to use Azure Resource Manager for deployment, management, and access control of resources on Azure. Перейдите к следующей статье, чтобы узнать, как создать свой первый шаблон Azure Resource Manager.Proceed to the next article to learn how to create your first Azure Resource Manager template.