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

Завершено

Ресурсы расширения всегда подключаются к другим ресурсам 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

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

Extension resource ID for a resource lock applied to an Azure Cosmos DB account, split with the key-value pair on a separate line.

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