Определение ресурсов расширения

Завершено

Ресурсы расширения всегда присоединяются к другим ресурсам Azure. Они расширяют поведение этих ресурсов с дополнительной функциональностью.

Ниже приведены некоторые примеры общих ресурсов расширения:

Имя Тип ресурса
Назначения ролей Microsoft.Authorization/roleAssignments
Назначения политики Microsoft.Authorization/policyAssignments
Замки Microsoft.Authorization/locks
Параметры диагностики Microsoft.Insights/diagnosticSettings

Например, рассмотрим блокировку, которую можно использовать для предотвращения удаления или изменения ресурса Azure. Нет смысла устанавливать замок отдельно. Он всегда должен быть развернут на другом ресурсе.

Заметка

Команды в этом уроке показаны для иллюстрации концепций. Еще не выполняйте команды. Вы будете практикуть то, что вы узнаете здесь в ближайшее время.

Как определены ресурсы расширения?

В Bicep вы определяете ресурс расширения в основном так же, как и обычный ресурс. Однако вы добавите свойство scope, чтобы сообщить Bicep, что ресурс должен быть присоединен к другому ресурсу, определенному в другом месте файла Bicep. Вы используете символическое имя ресурса, чтобы ссылаться на него. Например, вот определение учетной записи Azure Cosmos DB, созданной ранее:

resource cosmosDBAccount 'Microsoft.DocumentDB/databaseAccounts@2024-05-15' = {
  name: cosmosDBAccountName
  location: location
  properties: {
    // ...
  }
}

Давайте добавим блокировку ресурсов, которая предотвращает удаление учетной записи Azure Cosmos DB.

resource lockResource 'Microsoft.Authorization/locks@2020-05-01' = {
  scope: cosmosDBAccount
  name: 'DontDelete'
  properties: {
    level: 'CanNotDelete'
    notes: 'Prevents deletion of the toy data Cosmos DB account.'
  }
}

Обратите внимание, что в примере используется свойство scope с символьным именем учетной записи Azure Cosmos DB. Этот параметр свойства инструктирует Bicep развернуть блокировку ресурсов в учетной записи Azure Cosmos DB, что означает, что учетную запись больше нельзя удалить.

Идентификаторы ресурсов расширения

Ресурс расширения имеет немного другой идентификатор, чем другие ресурсы. Он состоит из идентификатора родительского ресурса, разделителя "/providers/", и идентификатора ресурса расширения.

Предположим, что вы развернули ранее упомянутую учетную запись Azure Cosmos DB, а учетная запись была названа toyrnd. Вот как бы выглядел идентификатор ресурса замка:

/subscriptions/A123b4567c-1234-1a2b-2b1a-1234abc12345/resourceGroups/ToyDevelopment/providers/Microsoft.DocumentDB/databaseAccounts/toyrnd/providers/Microsoft.Authorization/locks/DontDelete

Вот визуальное представление:

идентификатор ресурса расширения для блокировки ресурсов, примененной к учетной записи Azure Cosmos DB, разделенной парой

Если вы видите идентификатор ресурса, который начинается с обычного идентификатора ресурса, а затем добавляет /providers/ и другой тип ресурса и имя ресурса, это означает, что вы просматриваете идентификатор ресурса расширения.