Definición de recursos de extensión
Los recursos de extensión siempre están asociados a otros recursos de Azure. Extienden el comportamiento de esos recursos con funcionalidad adicional.
Algunos ejemplos de recursos de extensión comunes son:
Nombre | Tipo de recurso |
---|---|
Asignaciones de roles | Microsoft.Authorization/roleAssignments |
Asignaciones de directivas | Microsoft.Authorization/policyAssignments |
Bloqueos | Microsoft.Authorization/locks |
Configuración de diagnóstico | Microsoft.Insights/diagnosticSettings |
Por ejemplo, piense en un bloqueo, que se puede usar para evitar la eliminación o modificación de un recurso de Azure. No tiene sentido implementar un bloqueo de manera independiente. Siempre tiene que implementarse en otro recurso.
Nota:
Los comandos de esta unidad se muestran para ilustrar conceptos. No los ejecute todavía. Pronto va a practicar lo que aprenderá aquí.
¿Cómo se definen los recursos de extensión?
En Bicep, un recurso de extensión se define principalmente de la misma manera que un recurso normal. Sin embargo, agrega la propiedad scope
para indicar a Bicep que el recurso se debe adjuntar a otro recurso definido en otra parte del archivo de Bicep. Use el nombre simbólico del recurso para hacer referencia a él. Por ejemplo, esta es la definición de una cuenta de Azure Cosmos DB que hemos creado anteriormente:
resource cosmosDBAccount 'Microsoft.DocumentDB/databaseAccounts@2024-05-15' = {
name: cosmosDBAccountName
location: location
properties: {
// ...
}
}
Vamos a agregar un bloqueo de recursos, lo que impedirá que alguien elimine la cuenta de 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.'
}
}
Observe que en el ejemplo se usa la propiedad scope
con el nombre simbólico de la cuenta de Azure Cosmos DB. Este valor de propiedad indica a Bicep que implemente el bloqueo de recursos en la cuenta de Azure Cosmos DB, lo que significa que ya no se puede eliminar.
Identificadores de recursos de extensión
Un recurso de extensión tiene un identificador ligeramente diferente al de otros recursos. Consta de su identificador de recurso primario, el separador /providers/
y el identificador de recurso de extensión.
Supongamos que implementó la cuenta de Azure Cosmos DB anteriormente mencionada y que la cuenta se denominaba toyrnd
. Este es el aspecto que tendría el identificador de recurso del bloqueo:
/subscriptions/A123b4567c-1234-1a2b-2b1a-1234abc12345/resourceGroups/ToyDevelopment/providers/Microsoft.DocumentDB/databaseAccounts/toyrnd/providers/Microsoft.Authorization/locks/DontDelete
Esta es una representación visual:
Si ve un identificador de recurso que comienza con un identificador de recurso normal y, a continuación, agrega /providers/
y otro tipo y nombre de recurso, está ante un identificador de recurso de extensión.