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