Definieren von Erweiterungsressourcen

Abgeschlossen

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:

Extension resource ID for a resource lock applied to an Azure Cosmos DB account, split with the key-value pair on a separate line.

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.