Definieren von Erweiterungsressourcen
Erweiterungsressourcen sind immer an andere Azure-Ressourcen angefügt. Sie erweitern das Verhalten dieser Ressourcen um zusätzliche Funktionen.
Einige Beispiele für gängige Erweiterungsressourcen sind:
Name | Ressourcentyp |
---|---|
Rollenzuweisungen | Microsoft.Authorization/roleAssignments |
Richtlinienzuweisungen | Microsoft.Authorization/policyAssignments |
Locks | Microsoft.Authorization/locks |
Diagnoseeinstellungen | Microsoft.Insights/diagnosticSettings |
Betrachten Sie beispielsweise eine Sperre, die verwendet werden kann, um das Löschen oder Ändern einer Azure-Ressource zu verhindern. Es ist nicht sinnvoll, eine Sperre allein bereitzustellen. Sie muss immer auf eine andere Ressource bezogen bereitgestellt werden.
Hinweis
Die Befehle in dieser Lerneinheit dienen der Veranschaulichung der Konzepte. Führen Sie die Befehle jetzt noch nicht aus. Sie können das Erlernte in Kürze üben.
Wie werden Erweiterungsressourcen definiert?
In Bicep definieren Sie eine Erweiterungsressource größtenteils auf dieselbe Weise wie eine normale Ressource. Sie fügen jedoch die Eigenschaft scope
hinzu, um Bicep mitzuteilen, dass die Ressource an eine andere Ressource angefügt werden soll, die an anderer Stelle in der Bicep-Datei definiert ist. Sie verwenden den symbolischen Namen der Ressource, um darauf zu verweisen. Hier sehen Sie beispielsweise die Definition eines Azure Cosmos DB-Kontos, das wir zuvor erstellt haben:
resource cosmosDBAccount 'Microsoft.DocumentDB/databaseAccounts@2024-05-15' = {
name: cosmosDBAccountName
location: location
properties: {
// ...
}
}
Fügen wir nun eine Ressourcensperre hinzu, die verhindert, dass jemand das Azure Cosmos DB-Konto löscht:
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.'
}
}
Beachten Sie, dass im Beispiel die scope
-Eigenschaft mit dem symbolischen Namen des Azure Cosmos DB-Kontos verwendet wird. Diese Eigenschaftseinstellung weist Bicep an, die Ressourcensperre für das Azure Cosmos DB-Konto bereitzustellen, was bedeutet, dass es nicht mehr gelöscht werden kann.
Erweiterungsressourcen-IDs
Eine Erweiterungsressource hat eine etwas andere ID als andere Ressourcen. Sie besteht aus der ID ihrer übergeordneten Ressource, dem Trennzeichen /providers/
und der Erweiterungsressourcen-ID.
Angenommen, Sie haben das zuvor erwähnte Azure Cosmos DB-Konto bereitgestellt, und das Konto heißt toyrnd
. Die Ressourcen-ID der Sperre sähe dann wie folgt aus:
/subscriptions/A123b4567c-1234-1a2b-2b1a-1234abc12345/resourceGroups/ToyDevelopment/providers/Microsoft.DocumentDB/databaseAccounts/toyrnd/providers/Microsoft.Authorization/locks/DontDelete
Hier sehen Sie eine visuelle Darstellung:
Wenn eine Ressourcen-ID angezeigt wird, die mit einer normalen Ressourcen-ID beginnt und der dann /providers/
sowie ein weiterer Ressourcentyp und -name hinzugefügt ist, bedeutet dies, dass Sie eine Erweiterungsressourcen-ID vor sich haben.