0Pricing
Cloud & IT Cert Prep · Урок

Как работает Azure Resource Manager

Проследите путь запроса на создание ресурса через уровень ARM, разберитесь с группами ресурсов как с логическими контейнерами и изучите ролевой доступ и журнал аудита ARM.

«Как работает Azure Resource Manager» — бесплатный урок Cloud & IT Cert Prep на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cloud & IT Cert Prep, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cloud & IT Cert Prep содержит 4 уроков всего.

Что такое Azure Resource Manager

Azure Resource Manager (ARM) — это Service развёртывания и управления Azure. Любое действие, выполняемое на портале Azure, через CLI, PowerShell или REST API, проходит через ARM. Он действует как централизованная плоскость управления, которая аутентифицирует и авторизует запросы, а также направляет каждую операцию с ресурсами.

Поток обработки запросов ARM

Когда Вы отправляете запрос на создание ресурса, ARM перехватывает его, проверяет Вашу личность через Microsoft Entra ID, проверяет разрешения RBAC, применяет все правила Azure Policy, а затем передаёт проверенный запрос соответствующему поставщику ресурсов. Поставщик ресурсов (например, Microsoft.Compute) выполняет фактическую операцию и возвращает результат в ARM.

# Example: creating a VM via Azure CLI (routed through ARM)
az vm create \
  --resource-group MyRG \
  --name MyVM \
  --image UbuntuLTS \
  --admin-username azureuser

Поставщики ресурсов и типы ресурсов

Службы Azure предоставляются через поставщиков ресурсов, каждый из которых определяется пространством имён, например Microsoft.Storage или Microsoft.Network. Каждый тип ресурса (например, Microsoft.Storage/storageAccounts) необходимо зарегистрировать в Вашей подписке, прежде чем Вы сможете создавать его экземпляры. Большинство поставщиков регистрируются автоматически при первом использовании соответствующей службы.

# List registered resource providers
az provider list --query "[?registrationState=='Registered'].namespace" -o table

# Register a provider manually
az provider register --namespace Microsoft.Insights

Группы ресурсов как логические контейнеры

Группа ресурсов — это логический контейнер, содержащий связанные ресурсы Azure. Все ресурсы в группе используют один и тот же жизненный цикл: их можно развернуть, обновить и удалить вместе. Группы ресурсов также служат областью действия по умолчанию для назначений RBAC и отслеживания затрат. Каждый ресурс Azure должен принадлежать ровно одной группе ресурсов.

# Create a resource group
az group create --name MyResourceGroup --location eastus

# List all resources in a resource group
az resource list --resource-group MyResourceGroup -o table

ARM и управление доступом на основе ролей

ARM применяет управление доступом на основе ролей (RBAC) на каждом уровне области действия: в группе управления, подписке, группе ресурсов или отдельном ресурсе. Встроенные роли, такие как Owner, Contributor и Reader, охватывают большинство сценариев. ARM оценивает назначения ролей сверху вниз, начиная с наиболее широкой области действия, а назначения запрета могут блокировать унаследованные разрешения.

# Assign Contributor role at resource group scope
az role assignment create \
  --assignee user@contoso.com \
  --role 'Contributor' \
  --resource-group MyResourceGroup

Журнал аудита ARM

Каждая операция, проходящая через ARM, записывается в Azure Activity Log. Журнал действий фиксирует, кто выполнил операцию, какой ресурс был затронут, когда произошла операция и завершилась ли она успешно или с ошибкой. По умолчанию журналы действий хранятся 90 дней. Их можно архивировать в учётную запись Storage или передавать в Log Analytics для более длительного хранения.

# Query recent ARM operations in activity log
az monitor activity-log list \
  --resource-group MyResourceGroup \
  --max-events 10 \
  --query '[].{time:eventTimestamp, caller:caller, operation:operationName.value, status:status.value}' \
  -o table

Декларативные и императивные развертывания

ARM поддерживает как декларативный, так и императивный стиль развертывания. При декларативном развертывании ARM-шаблоны или Bicep описывают желаемое конечное состояние, а ARM определяет операции, необходимые для его достижения. При императивном развертывании команды CLI или PowerShell выполняются пошагово. Декларативные развертывания предпочтительны благодаря воспроизводимости, контролю версий и идемпотентности.

# Imperative: create storage account step-by-step
az storage account create \
  --name mystorageaccount \
  --resource-group MyRG \
  --location eastus \
  --sku Standard_LRS

# Declarative: deploy via ARM template
az deployment group create \
  --resource-group MyRG \
  --template-file azuredeploy.json \
  --parameters @azuredeploy.parameters.json

Режимы развертывания: Complete и Incremental

Развертывания ARM-шаблонов могут выполняться в двух режимах. Режим Incremental (используется по умолчанию) добавляет или обновляет ресурсы, определённые в шаблоне, оставляя без изменений уже существующие в группе ресурсы, которых нет в шаблоне. Режим Complete удаляет из группы ресурсов все ресурсы, не определённые в шаблоне, чтобы группа в точности соответствовала шаблону. Используйте его с осторожностью.

# Incremental deployment (default)
az deployment group create \
  --resource-group MyRG \
  --template-file azuredeploy.json \
  --mode Incremental

# Complete deployment (deletes unlisted resources!)
az deployment group create \
  --resource-group MyRG \
  --template-file azuredeploy.json \
  --mode Complete

Структура ARM-шаблона

ARM-шаблон — это документ JSON с шестью основными разделами: $schema (версия шаблона), contentVersion, parameters (входные данные), variables (вычисляемые значения), resources (что нужно развернуть) и outputs (возвращаемые значения). Массив ресурсов содержит по одному объекту для каждого ресурса Azure; в каждом объекте указываются тип, версия API, имя, расположение и свойства.

{
  '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#',
  'contentVersion': '1.0.0.0',
  'parameters': {},
  'variables': {},
  'resources': [
    {
      'type': 'Microsoft.Storage/storageAccounts',
      'apiVersion': '2023-01-01',
      'name': 'mystorageaccount',
      'location': '[resourceGroup().location]',
      'sku': { 'name': 'Standard_LRS' },
      'kind': 'StorageV2'
    }
  ],
  'outputs': {}
}

Управление зависимостями в ARM

При развертывании нескольких ресурсов ARM по умолчанию может развертывать независимые ресурсы параллельно, ускоряя развертывание. Если один ресурс зависит от другого (например, VM требуется NIC, а NIC — VNet), зависимость явно объявляется с помощью dependsOn. ARM разрешает граф зависимостей и соответствующим образом выстраивает операции в последовательность.

{
  'type': 'Microsoft.Network/networkInterfaces',
  'name': 'myNic',
  'dependsOn': [
    '[resourceId("Microsoft.Network/virtualNetworks", "myVNet")]'
  ],
  'properties': {
    'ipConfigurations': [{
      'name': 'ipconfig1',
      'properties': {
        'subnet': {
          'id': '[resourceId("Microsoft.Network/virtualNetworks/subnets", "myVNet", "mySubnet")]'
        }
      }
    }]
  }
}

Анализ развертывания What-If

Перед запуском развертывания используйте операцию what-if, чтобы просмотреть изменения, которые ARM внесёт, не применяя их фактически. В результатах перечисляются ресурсы, которые будут созданы, изменены или удалены; типы изменений выделяются разными цветами. Это особенно полезно перед развертыванием в режиме Complete или внесением изменений в рабочие окружения.

# Preview changes before deploying
az deployment group what-if \
  --resource-group MyRG \
  --template-file azuredeploy.json \
  --parameters @params.json

Быстрая проверка

Проверьте своё понимание концепций Microsoft Azure Fundamentals (AZ-900), рассмотренных в этом уроке.

Итоги урока

В этом уроке Вы узнали, что Azure Resource Manager — это централизованный уровень управления всеми ресурсами Azure, группы ресурсов — логические контейнеры для ресурсов с общим жизненным циклом, а развертывания ARM могут выполняться в режимах Incremental или Complete с поддержкой предварительного просмотра what-if. Далее мы рассмотрим написание ARM-шаблонов.

Часто задаваемые вопросы

Урок «Как работает Azure Resource Manager» бесплатный?

Да — полный текст урока «Как работает Azure Resource Manager» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cloud & IT Cert Prep, подпишись на CoddyKit PRO. Курс Cloud & IT Cert Prep содержит 4 уроков всего.

Чему я научусь в уроке «Как работает Azure Resource Manager»?

Проследите путь запроса на создание ресурса через уровень ARM, разберитесь с группами ресурсов как с логическими контейнерами и изучите ролевой доступ и журнал аудита ARM. Ты практикуешь Cloud & IT Cert Prep с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cloud & IT Cert Prep?

Предыдущий опыт не требуется. Cloud & IT Cert Prep на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Как работает Azure Resource Manager»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cloud & IT Cert Prep?

Да. Каждый урок Cloud & IT Cert Prep включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Как работает Azure Resource Manager
  2. Создание шаблонов ARM
  3. Bicep: современная IaC для Azure
  4. Terraform в Azure
← Назад к Cloud & IT Cert Prep