Ressourcen definieren
Bicep-Vorlagen sind die Dateien, die Sie erstellen, die die bereitzustellenden Azure-Ressourcen definieren.
Ihr Spielzeugunternehmen muss eine wiederverwendbare Bicep-Vorlage für Produkteinführungen erstellen. Die Vorlage muss ein Azure Storage-Konto und Azure App Service-Ressourcen bereitstellen, die für die Marketingaktivitäten bei der Einführung der neuen Produkte verwendet werden.
In dieser Lerneinheit erfahren Sie, wie Sie eine Ressource in einer Bicep-Vorlage definieren, wie Ressourcennamen funktionieren und wie Sie Ressourcen erstellen können, die miteinander in Beziehung stehen.
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.
Definieren einer Ressource
Die wichtigste Funktion von Bicep-Vorlagen ist das Definieren Ihrer Azure-Ressourcen. Das folgende Beispiel zeigt eine typische Ressourcendefinition in Bicep. In diesem Beispiel wird ein Speicherkonto namens toylaunchstorage
erstellt.
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name: 'toylaunchstorage'
location: 'westus3'
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
properties: {
accessTier: 'Hot'
}
}
Sehen Sie sich einige wichtige Teile dieser Ressourcendefinition genauer an:
Das Schlüsselwort
resource
am Anfang teilt Bicep mit, dass Sie eine Ressource definieren möchten.Als Nächstes geben Sie der Ressource einen symbolischen Namen. In diesem Beispiel lautet der symbolische Name der Ressource
storageAccount
. Symbolische Namen werden in Bicep dazu verwendet, auf die Ressource zu verweisen, sie werden in Azure aber nie angezeigt.Microsoft.Storage/storageAccounts@2022-09-01
ist der Ressourcentyp und die API-Version der Ressource.Microsoft.Storage/storageAccounts
teilt Bicep mit, dass Sie ein Azure Storage-Konto deklarieren. Das Datum2022-09-01
ist die Version der Azure Storage-API, die Bicep für das Erstellen der Ressource verwendet.Tipp
Die Bicep-Erweiterung für Visual Studio Code hilft Ihnen dabei, die Ressourcentypen und die API-Versionen für die zu erstellenden Ressourcen zu finden. Wenn Sie mit ARM-Vorlagen vertraut sind, beachten Sie, dass die API-Version mit der Version übereinstimmt, die Sie auch dort verwenden würden.
Sie müssen einen Ressourcennamen deklarieren. Dies ist der Name, der dem Speicherkonto in Azure zugewiesen wird. Ressourcennamen legen Sie mithilfe des Schlüsselworts
name
fest.Wichtig
Symbolische Namen werden nur innerhalb der Bicep-Vorlage verwendet und nicht in Azure angezeigt. Ressourcennamen hingegen werden in Azure angezeigt.
Anschließend legen Sie weitere Details zur Ressource fest, z. B. Standort, SKU (Tarif) und Typ. Sie können auch Eigenschaften definieren, die sich für jeden Ressourcentyp unterscheiden. Durch unterschiedliche API-Versionen können auch verschiedene Eigenschaften eingeführt werden. In diesem Beispiel wird die Zugriffsebene des Speicherkontos auf
Hot
festgelegt.
Tipp
Ressourcennamen weisen häufig Regeln auf, die Sie befolgen müssen, z. B. maximale Länge, zulässige Zeichen und globale Eindeutigkeit in Azure. Die Anforderungen für Ressourcennamen unterscheiden sich bei jedem Azure-Ressourcentyp. Machen Sie sich mit den Einschränkungen und Anforderungen bei der Benennung vertraut, bevor Sie sie in Ihrer Vorlage hinzufügen.
Abhängige Ressourcen
Eine Bicep-Vorlage enthält in der Regel mehrere Ressourcen. Häufig ist eine Ressource von einer anderen Ressource abhängig. Möglicherweise müssen Sie einige Informationen aus einer Ressource extrahieren, um eine andere definieren zu können. Wenn Sie eine Webanwendung bereitstellen, müssen Sie zunächst die Serverinfrastruktur erstellen, bevor Sie darin eine Anwendung hinzufügen können. Diese Beziehungen werden als Abhängigkeiten bezeichnet.
Sie müssen eine App Service-App für die Vorlage bereitstellen, die bei der Markteinführung des Spielzeugprodukts hilft, aber zum Erstellen einer App Service-App müssen Sie zuerst einen App Service-Plan erstellen. Der App Service-Plan stellt die Hostingressourcen für den Server dar und wird wie in diesem Beispiel deklariert:
resource appServicePlan 'Microsoft.Web/serverFarms@2023-12-01' = {
name: 'toy-product-launch-plan'
location: 'westus3'
sku: {
name: 'F1'
}
}
Mit dieser Ressourcendefinition wird Bicep informiert, dass Sie einen App Service-Plan mit dem Ressourcentyp Microsoft.Web/serverFarms
bereitstellen möchten. Die Planressource heißt toy-product-launch-plan
und wird in der Region „USA, Westen 3“ bereitgestellt. Als Preis-SKU wird F1 verwendet, der kostenlose Tarif für App Service.
Nachdem Sie nun den App Service-Plan deklariert haben, deklarieren Sie im nächsten Schritt die App:
resource appServiceApp 'Microsoft.Web/sites@2023-12-01' = {
name: 'toy-product-launch-1'
location: 'westus3'
properties: {
serverFarmId: appServicePlan.id
httpsOnly: true
}
}
Diese Vorlage weist Azure an, die App unter dem erstellten Plan zu hosten. Beachten Sie, dass die Definition des Plans den symbolischen Namen des App Service-Plans in dieser Zeile enthält: serverFarmId: appServicePlan.id
. Diese Zeile besagt, dass Bicep die Ressourcen-ID des App Service-Plans mithilfe der id
-Eigenschaft abrufen soll. Mit anderen Worten: die Serverfarm-ID dieser App ist die ID des zuvor definierten App Service-Plans.
Tipp
In Azure ist eine Ressourcen-ID ein eindeutiger Bezeichner für jede Ressource. Die Ressourcen-ID enthält die Azure-Abonnement-ID, den Ressourcengruppennamen und den Ressourcennamen sowie einige weitere Informationen.
Wenn Sie die App-Ressource mit einer Eigenschaft deklarieren, die auf den symbolischen Namen des Plans verweist, erkennt Azure die implizite Abhängigkeit zwischen der App Service-App und dem Plan. Bei der Bereitstellung der Ressourcen stellt Azure sicher, dass der Plan vor dem Beginn der App-Bereitstellung vollständig bereitgestellt wurde.