Определение ресурсов расширения
Ресурсы расширения всегда подключаются к другим ресурсам 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
Вот его визуальное представление:
Если вы видите идентификатор ресурса, который начинается с обычного идентификатора ресурса, а затем идет /providers/
и другой тип и имя ресурса, то это идентификатор ресурса расширения.