Bereitstellung von Ressourcengruppen mit Bicep-Dateien
In diesem Artikel wird beschrieben, wie Sie bei der Bereitstellung in einer Ressourcengruppe den Bereich mit Bicep festlegen.
Unterstützte Ressourcen
Die meisten Ressourcen können in einer Ressourcengruppe bereitgestellt werden. Eine Liste der verfügbaren Ressourcen finden Sie unter Definieren von Ressourcen in Azure Resource Manager-Vorlagen.
Mengenbereich
Der Bereich einer Bicep-Datei wird standardmäßig auf die Ressourcengruppe festgelegt. Wenn Sie den Bereich explizit festlegen möchten, verwenden Sie Folgendes:
targetScope = 'resourceGroup'
Das Festlegen des Zielbereichs auf eine Ressourcengruppe ist jedoch nicht erforderlich, da dieser Bereich standardmäßig verwendet wird.
Bereitstellungsbefehle
Verwenden Sie für die Bereitstellung in einer Ressourcengruppe die Ressourcengruppen-Bereitstellungsbefehle.
Verwenden Sie für die Azure CLI az deployment group create. Das folgende Beispiel stellt eine Vorlage zum Erstellen einer Ressourcengruppe bereit. Die von Ihnen im Parameter --resource-group
angegebene Ressourcengruppe ist die Zielressourcengruppe.
az deployment group create \
--name demoRGDeployment \
--resource-group ExampleGroup \
--template-file main.bicep \
--parameters storageAccountType=Standard_GRS
Ausführlichere Informationen über Bereitstellungsbefehle und -optionen für die Bereitstellung von ARM-Vorlagen finden Sie in den folgenden Artikeln:
- Bereitstellen von Ressourcen mit ARM-Vorlagen und der Azure CLI
- Bereitstellen von Ressourcen mit ARM-Vorlagen und Azure PowerShell
- Bereitstellen von ARM-Vorlagen über Cloud Shell
Bereitstellungsbereiche
Bei der Bereitstellung in einer Ressourcengruppe können Sie Ressourcen an folgenden Orten bereitstellen:
- in der Zielressourcengruppe für den Bereitstellungsvorgang
- In anderen Ressourcengruppen im selben Abonnement oder in anderen Abonnements
- in einem beliebigen Abonnement im Mandanten
- im Mandanten für die Ressourcengruppe
Für eine Erweiterungsressource kann der Bereich auf ein Ziel festgelegt werden, das sich vom Bereitstellungsziel unterscheidet.
Der Benutzer, der die Vorlage bereitstellt, muss Zugriff auf den angegebenen Bereich besitzen.
In diesem Abschnitt wird das Festlegen verschiedener Bereiche veranschaulicht. Sie können diese verschiedenen Bereiche in einer Vorlage kombinieren.
Bereich: Zielressourcengruppe
Um Ressourcen für die Zielressourcengruppe bereitzustellen, fügen Sie diese Ressourcen der Bicep-Datei hinzu.
// resource deployed to target resource group
resource exampleResource 'Microsoft.Storage/storageAccounts@2023-04-01' = {
...
}
Eine Beispielvorlage finden Sie unter Bereitstellen in der Zielressourcengruppe.
Bereich: andere Ressourcengruppe
Wenn Sie Ressourcen in einer anderen Ressourcengruppe als der Zielressourcengruppe bereitstellen möchten, fügen Sie ein Modul hinzu. Verwenden Sie die resourceGroup-Funktion, um die Eigenschaft scope
für dieses Modul festzulegen.
Wenn sich die Ressourcengruppe in einem anderen Abonnement befindet, geben Sie die Abonnement-ID und den Namen der Ressourcengruppe an. Wenn sich die Ressourcengruppe im selben Abonnement wie die aktuelle Bereitstellung befindet, geben Sie nur den Namen der Ressourcengruppe an. Wenn Sie kein Abonnement in der resourceGroup-Funktion angeben, wird das aktuelle Abonnement verwendet.
Das folgende Beispiel zeigt ein Modul, das auf eine Ressourcengruppe in einem anderen Abonnement ausgerichtet ist.
param otherResourceGroup string
param otherSubscriptionID string
// module deployed to different subscription and resource group
module exampleModule 'module.bicep' = {
name: 'otherSubAndRG'
scope: resourceGroup(otherSubscriptionID, otherResourceGroup)
}
Das nächste Beispiel zeigt ein Modul, das auf eine Ressourcengruppe im selben Abonnement ausgerichtet ist.
param otherResourceGroup string
// module deployed to resource group in the same subscription
module exampleModule 'module.bicep' = {
name: 'otherRG'
scope: resourceGroup(otherResourceGroup)
}
Eine Beispielvorlage finden Sie unter Bereitstellen in mehreren Ressourcengruppen.
Bereich: Abonnement
Fügen Sie zum Bereitstellen von Ressourcen zu einem Abonnement ein Modul hinzu. Verwenden Sie die subscription-Funktion, um die Eigenschaft scope
festzulegen.
Verwenden Sie zum Bereitstellen im aktuellen Abonnement die subscription-Funktion ohne Parameter.
// module deployed at subscription level
module exampleModule 'module.bicep' = {
name: 'deployToSub'
scope: subscription()
}
Geben Sie zum Bereitstellen in einem anderen Abonnement diese Abonnement-ID als Parameter in der subscription-Funktion an.
param otherSubscriptionID string
// module deployed at subscription level but in a different subscription
module exampleModule 'module.bicep' = {
name: 'deployToSub'
scope: subscription(otherSubscriptionID)
}
Eine Beispielvorlage finden Sie unter Erstellen der Ressourcengruppe mit Bicep.
Bereich: Mandant
Zum Erstellen von Ressourcen im Mandanten fügen Sie ein Modul hinzu. Verwenden Sie die tenant-Funktion, um die Eigenschaft scope
festzulegen.
Der Benutzer, der die Vorlage bereitstellt, muss über den erforderlichen Zugriff zum Bereitstellen im Mandanten verfügen.
Das folgende Beispiel enthält ein Modul, das im Mandanten bereitgestellt wird.
// module deployed at tenant level
module exampleModule 'module.bicep' = {
name: 'deployToTenant'
scope: tenant()
}
Anstatt ein Modul zu verwenden, können Sie für einige Ressourcentypen den Bereich auf tenant()
festlegen. Im folgenden Beispiel wird eine Verwaltungsgruppe im Mandanten bereitgestellt.
param mgName string = 'mg-${uniqueString(newGuid())}'
// ManagementGroup deployed at tenant
resource managementGroup 'Microsoft.Management/managementGroups@2023-04-01' = {
scope: tenant()
name: mgName
properties: {}
}
output output string = mgName
Weitere Informationen finden Sie unter Verwaltungsgruppe.
Bereitstellen in der Zielressourcengruppe
Zum Bereitstellen von Ressourcen in der Zielressourcengruppe definieren Sie die Ressourcen im Abschnitt resources
der Vorlage. Mit der folgenden Vorlage wird ein Speicherkonto in der Ressourcengruppe erstellt, die im Bereitstellungsvorgang angegeben ist.
@minLength(3)
@maxLength(11)
param storagePrefix string
@allowed([
'Standard_LRS'
'Standard_GRS'
'Standard_RAGRS'
'Standard_ZRS'
'Premium_LRS'
'Premium_ZRS'
'Standard_GZRS'
'Standard_RAGZRS'
])
param storageSKU string = 'Standard_LRS'
param location string = resourceGroup().location
var uniqueStorageName = '${storagePrefix}${uniqueString(resourceGroup().id)}'
resource stg 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: uniqueStorageName
location: location
sku: {
name: storageSKU
}
kind: 'StorageV2'
properties: {
supportsHttpsTrafficOnly: true
}
}
output storageEndpoint object = stg.properties.primaryEndpoints
Bereitstellen in mehreren Ressourcengruppen
Sie können in einer einzelnen Bicep-Datei Ressourcen in mehr als einer Ressourcengruppe bereitstellen.
Hinweis
Sie können mit einer einzigen Bereitstellung in 800 Ressourcengruppen bereitstellen. Normalerweise bedeutet diese Einschränkung, dass Sie die Bereitstellung für eine Ressourcengruppe durchführen können, die für die übergeordnete Vorlage angegeben ist, sowie für bis zu 799 Ressourcengruppen in geschachtelten oder verknüpften Bereitstellungen. Wenn Ihre übergeordnete Vorlage aber nur geschachtelte oder verknüpfte Vorlagen enthält und selbst keine Ressourcen bereitstellt, können Sie bis zu 800 Ressourcengruppen in geschachtelte oder verknüpfte Bereitstellungen einbinden.
Im folgenden Beispiel werden zwei Speicherkonten bereitgestellt. Das erste Speicherkonto wird in der Ressourcengruppe bereitgestellt, die Sie im Bereitstellungsvorgang angegeben haben. Das zweite Speicherkonto wird in der Ressourcengruppe bereitgestellt, die in den Parametern secondResourceGroup
und secondSubscriptionID
angegeben wurde:
@maxLength(11)
param storagePrefix string
param firstStorageLocation string = resourceGroup().location
param secondResourceGroup string
param secondSubscriptionID string = ''
param secondStorageLocation string
var firstStorageName = '${storagePrefix}${uniqueString(resourceGroup().id)}'
var secondStorageName = '${storagePrefix}${uniqueString(secondSubscriptionID, secondResourceGroup)}'
module firstStorageAcct 'storage.bicep' = {
name: 'storageModule1'
params: {
storageLocation: firstStorageLocation
storageName: firstStorageName
}
}
module secondStorageAcct 'storage.bicep' = {
name: 'storageModule2'
scope: resourceGroup(secondSubscriptionID, secondResourceGroup)
params: {
storageLocation: secondStorageLocation
storageName: secondStorageName
}
}
Beide Module verwenden dieselbe Bicep-Datei mit dem Namen storage.bicep.
param storageLocation string
param storageName string
resource storageAcct 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: storageName
location: storageLocation
sku: {
name: 'Standard_LRS'
}
kind: 'Storage'
properties: {}
}
Ressourcengruppe erstellen
Informationen zum Erstellen von Ressourcengruppen finden Sie unter Erstellen einer Ressourcengruppe mit Bicep.
Nächste Schritte
Informationen zu anderen Bereichen finden Sie unter folgenden Links: