Definiera tilläggsresurser

Slutförd

Tilläggsresurser är alltid kopplade till andra Azure-resurser. De utökar beteendet för dessa resurser med extra funktioner.

Några exempel på vanliga tilläggsresurser är:

Name Resurstyp
Rolltilldelningar Microsoft.Authorization/roleAssignments
Principtilldelningar Microsoft.Authorization/policyAssignments
Lås Microsoft.Authorization/locks
Diagnostikinställningar Microsoft.Insights/diagnosticSettings

Du kan till exempel överväga ett lås som kan användas för att förhindra borttagning eller ändring av en Azure-resurs. Det är inte meningsfullt att distribuera ett lås på egen hand. Den måste alltid distribueras till en annan resurs.

Kommentar

Kommandona i den här enheten visas för att illustrera begrepp. Kör inte kommandona än. Du kommer att öva på det du lär dig här snart.

Hur definieras tilläggsresurser?

I Bicep definierar du en tilläggsresurs på mestadels samma sätt som en vanlig resurs. Du lägger dock till scope egenskapen för att berätta för Bicep att resursen ska kopplas till en annan resurs som definierats någon annanstans i Bicep-filen. Du använder resursens symboliska namn för att referera till den. Här är till exempel definitionen av ett Azure Cosmos DB-konto som vi skapade tidigare:

resource cosmosDBAccount 'Microsoft.DocumentDB/databaseAccounts@2020-04-01' = {
  name: cosmosDBAccountName
  location: location
  properties: {
    // ...
  }
}

Nu ska vi lägga till ett resurslås som förhindrar att någon tar bort Azure Cosmos DB-kontot:

resource lockResource 'Microsoft.Authorization/locks@2016-09-01' = {
  scope: cosmosDBAccount
  name: 'DontDelete'
  properties: {
    level: 'CanNotDelete'
    notes: 'Prevents deletion of the toy data Cosmos DB account.'
  }
}

Observera att exemplet använder scope egenskapen med Azure Cosmos DB-kontots symboliska namn. Den här egenskapsinställningen instruerar Bicep att distribuera resurslåset till Azure Cosmos DB-kontot, vilket innebär att det inte längre kan tas bort.

Tilläggsresurs-ID:t

En tilläggsresurs har ett något annorlunda ID än andra resurser. Den består av dess överordnade resurs-ID, avgränsaren /providers/och tilläggets resurs-ID.

Anta att du distribuerade det tidigare nämnda Azure Cosmos DB-kontot och att kontot hette toyrnd. Så här ser låsets resurs-ID ut:

/subscriptions/A123b4567c-1234-1a2b-2b1a-1234abc12345/resourceGroups/ToyDevelopment/providers/Microsoft.DocumentDB/databaseAccounts/toyrnd/providers/Microsoft.Authorization/locks/DontDelete

Här är en visuell representation:

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

Om du ser ett resurs-ID som börjar med ett normalt resurs-ID och sedan lägger till /providers/ och en annan resurstyp och ett annat namn innebär det att du tittar på ett tilläggsresurs-ID.