定義延伸模組資源
延伸模組資源一律會附加至其他 Azure 資源。 其可利用額外的功能來擴充這些資源的行為。
常見延伸模組資源的一些範例如下:
名稱 | 資源類型 |
---|---|
角色指派 | Microsoft.Authorization/roleAssignments |
原則指派 | Microsoft.Authorization/policyAssignments |
鎖定 | Microsoft.Authorization/locks |
診斷設定 | Microsoft.Insights/diagnosticSettings |
例如,假設有一個鎖定,可用來防止刪除或修改 Azure 資源。 部署鎖定本身並不合理。 一律必須部署至另一個資源。
注意
本單元中的命令僅用於示範概念。 請先不要執行命令。 您很快就會在此練習所學到的內容。
如何定義延伸模組資源?
在 Bicep 中,您定義的延伸模組資源與一般資源的方式大致相同。 不過,您可以新增 scope
屬性,告知 Bicep 資源應該附加至 Bicep 檔案中其他位置所定義的其他資源。 您可以使用資源的符號名稱來加以參考。 例如,以下是我們先前所建立 Azure Cosmos DB 帳戶的定義:
resource cosmosDBAccount 'Microsoft.DocumentDB/databaseAccounts@2024-05-15' = {
name: cosmosDBAccountName
location: location
properties: {
// ...
}
}
我們將新增資源鎖定,以防止任何人刪除 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.'
}
}
請注意,此範例使用 scope
屬性搭配 Azure Cosmos DB 帳戶的符號名稱。 此屬性設定會告知 Bicep 將資源鎖定部署到 Azure Cosmos DB 帳戶,這表示無法再將其刪除。
延伸模組資源識別碼
延伸模組資源的識別碼與其他資源稍有不同。 其是由其父資源識別碼、分隔符號 /providers/
和延伸模組資源識別碼所組成。
假設您已部署先前提及的 Azure Cosmos DB 帳戶,且該帳戶名為 toyrnd
。 鎖定的資源識別碼如下所示:
/subscriptions/A123b4567c-1234-1a2b-2b1a-1234abc12345/resourceGroups/ToyDevelopment/providers/Microsoft.DocumentDB/databaseAccounts/toyrnd/providers/Microsoft.Authorization/locks/DontDelete
以下是視覺標記法:
如果您看到以一般資源識別碼開頭並新增 /providers/
和其他資源類型與名稱的資源識別碼,表示您正在查看延伸模組資源識別碼。