Définir des ressources d’extension
Les ressources d’extension sont toujours jointes à d’autres ressources Azure. Elles étendent le comportement de ces ressources en ajoutant des fonctionnalités supplémentaires.
Voici quelques exemples de ressources d’extension courantes :
Nom | Type de ressource |
---|---|
Attributions de rôles | Microsoft.Authorization/roleAssignments |
Attributions de stratégies | Microsoft.Authorization/policyAssignments |
Verrous | Microsoft.Authorization/locks |
Paramètres de diagnostic | Microsoft.Insights/diagnosticSettings |
Par exemple, imaginez un verrou qui peut être utilisé pour empêcher la suppression ou la modification d’une ressource Azure. Il n’est pas judicieux de déployer un verrou seul. Celui-ci doit toujours être déployé sur une autre ressource.
Notes
Les commandes de cette unité sont présentées pour illustrer les concepts. N’exécutez pas encore les commandes. Vous allez bientôt mettre en pratique ce que vous apprenez ici.
Comment les ressources d’extension sont-elles définies ?
Dans Bicep, vous définissez une ressource d’extension de la même manière qu’une ressource normale. Toutefois, vous ajoutez la propriété scope
pour indiquer à Bicep que la ressource doit être jointe à une autre ressource définie ailleurs dans le fichier Bicep. Vous utilisez le nom symbolique de la ressource pour y faire référence. Par exemple, voici la définition d’un compte Azure Cosmos DB que nous avons créé précédemment :
resource cosmosDBAccount 'Microsoft.DocumentDB/databaseAccounts@2024-05-15' = {
name: cosmosDBAccountName
location: location
properties: {
// ...
}
}
Ajoutons-y un verrou de ressource, ce qui empêche toute suppression du compte 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.'
}
}
Notez que l’exemple utilise la propriété scope
avec le nom symbolique du compte Azure Cosmos DB. Ce paramètre indique à Bicep de déployer le verrou de ressource sur le compte Azure Cosmos DB, ce qui signifie qu’il ne peut plus être supprimé.
ID de ressource d’extension
Une ressource d’extension a un ID légèrement différent des autres ressources. Il se compose de l’ID de ressource parent, du séparateur /providers/
et de l’ID de ressource d’extension.
Supposons que vous avez déployé le compte Azure Cosmos DB mentionné précédemment et que le compte a été appelé toyrnd
. Voici à quoi ressemble l’ID de ressource du verrou :
/subscriptions/A123b4567c-1234-1a2b-2b1a-1234abc12345/resourceGroups/ToyDevelopment/providers/Microsoft.DocumentDB/databaseAccounts/toyrnd/providers/Microsoft.Authorization/locks/DontDelete
Voici une représentation visuelle :
Si vous voyez un ID de ressource qui commence par un ID de ressource normal, suivi de /providers/
, puis d’un autre type et nom de ressource, cela signifie qu’il s’agit d’un ID de ressource d’extension.