Schnellstart: Verwenden von Bicep zum Bereitstellen einer Definition für eine verwaltete Azure-Anwendung

Diese Schnellstartanleitung beschreibt, wie Sie Bicep verwenden, um eine Definition für eine verwaltete Azure-Anwendung in Ihrem Dienstkatalog bereitzustellen. Die Definition in Ihrem Dienstkatalog steht Mitgliedern Ihrer Organisation zur Verfügung.

Um eine Definition für eine verwaltete Anwendung in Ihrem Dienstkatalog bereitzustellen, gehen Sie folgendermaßen vor:

  • Verwenden Sie Bicep, um eine Vorlage zu entwickeln, die eine Definition für eine verwaltete Anwendung bereitstellt.
  • Erstellen Sie eine Parameterdatei für die Bereitstellung.
  • Stellen Sie die Definition für eine verwaltete Anwendung in Ihrem Dienstkatalog bereit.

Voraussetzungen

Damit Sie die Aufgaben in diesem Artikel ausführen können, benötigen Sie Folgendes:

Abrufen der Definition einer verwalteten Anwendung

Führen Sie die folgenden Befehle aus, um die Definition der verwalteten Anwendung mit Azure PowerShell abzurufen.

Öffnen Sie in Visual Studio Code ein neues PowerShell-Terminal, und melden Sie sich bei Ihrem Azure-Abonnement an.

Connect-AzAccount

Der Befehl öffnet Ihren Standardbrowser und fordert Sie auf, sich bei Azure anzumelden. Weitere Informationen finden Sie unter Anmelden mit Azure PowerShell.

Rufen Sie aus Azure PowerShell die Definition Ihrer verwalteten Anwendung ab. Verwenden Sie in diesem Beispiel den Ressourcengruppennamen bicepDefinitionGroup, der beim Bereitstellen der Definition der verwalteten Anwendung erstellt wurde.

Get-AzManagedApplicationDefinition -ResourceGroupName bicepDefinitionGroup

Get-AzManagedApplicationDefinition listet alle verfügbaren Definitionen in der angegebenen Ressourcengruppe auf, z. B. sampleBicepManagedApplication.

Der folgende Befehl analysiert die Ausgabe so, dass nur der Definitionsname und der Ressourcengruppenname angezeigt werden. Sie verwenden die Namen, wenn Sie die verwaltete Anwendung bereitstellen.

Get-AzManagedApplicationDefinition -ResourceGroupName bicepDefinitionGroup | Select-Object -Property Name, ResourceGroupName

Erstellen der Bicep-Datei

Öffnen Sie Visual Studio Code, und erstellen Sie eine Datei mit dem Namen deployServiceCatalog.bicep. Kopieren Sie den folgenden Code, fügen Sie ihn in die Datei ein, und speichern Sie.

@description('Region where the resources are deployed.')
param location string = resourceGroup().location

@description('Resource group name where the definition is stored.')
param definitionRG string

@description('Name of the service catalog definition.')
param definitionName string

// Parameters for the managed application's resource deployment
@description('Name of the managed application.')
param managedAppName string

@description('Name for the managed resource group.')
param mrgName string

@maxLength(40)
@description('Service plan name with maximum 40 alphanumeric characters and hyphens. Must be unique within a resource group in your subscription.')
param appServicePlanName string

@maxLength(47)
@description('Globally unique across Azure. Maximum of 47 alphanumeric characters or hyphens.')
param appServiceNamePrefix string

@description('Resource ID for the managed application definition.')
var appResourceId = resourceId('${definitionRG}', 'Microsoft.Solutions/applicationdefinitions', '${definitionName}')

@description('Creates the path for the managed resource group. The resource group is created during deployment.')
var mrgId = '${subscription().id}/resourceGroups/${mrgName}'

resource bicepServiceCatalogApp 'Microsoft.Solutions/applications@2021-07-01' = {
  name: managedAppName
  kind: 'ServiceCatalog'
  location: location
  properties: {
    applicationDefinitionId: appResourceId
    managedResourceGroupId: mrgId
    parameters: {
      appServicePlanName: {
        value: appServicePlanName
      }
      appServiceNamePrefix: {
        value: appServiceNamePrefix
      }
    }
  }
}

Weitere Informationen zum Ressourcentyp finden Sie unter Microsoft.Solutions/applications.

Erstellen der Parameterdatei

Öffnen Sie Visual Studio Code, und erstellen Sie eine Parameterdatei mit dem Namen deployServiceCatalog-parameters.bicepparam. Kopieren Sie den folgenden Code, fügen Sie ihn in die Datei ein, und speichern Sie.

using './deployServiceCatalog.bicep'

param definitionName = 'sampleBicepManagedApplication'
param definitionRG = 'bicepDefinitionGroup'
param managedAppName = 'sampleBicepManagedApp'
param mrgName = 'placeholder for managed resource group name'
param appServicePlanName = 'demoAppServicePlan'
param appServiceNamePrefix = 'demoApp'

Für die Bereitstellung der verwalteten Anwendung müssen Sie mehrere Parameter zur Verfügung stellen:

Parameter Wert
definitionName Name der Definition für den Dienstkatalog. In diesem Beispiel wird sampleBicepManagedApplication verwendet.
definitionRG Ressourcengruppenname, in dem die Definition gespeichert ist. In diesem Beispiel wird bicepDefinitionGroup verwendet.
managedAppName Name für die bereitgestellte verwaltete Anwendung. In diesem Beispiel wird sampleBicepManagedApp verwendet.
mrgName Eindeutiger Name für die verwaltete Ressourcengruppe, die die bereitgestellten Ressourcen der Anwendung enthält. Die Ressourcengruppe wird erstellt, wenn Sie die verwaltete Anwendung bereitstellen. Um einen Namen einer verwalteten Ressourcengruppe zu erstellen, führen Sie die Befehle aus, die dieser Parameterliste folgen, und verwenden Sie den $mrgname Wert, um den Platzhalter in der Parameterdatei zu ersetzen.
appServicePlanName Erstellen Sie einen Plannamen. Maximal 40 alphanumerische Zeichen und Bindestriche. Beispiel: demoAppServicePlan. App Service-Plannamen müssen innerhalb einer Ressourcengruppe in Ihrem Abonnement eindeutig sein.
appServiceNamePrefix Erstellen Sie ein Präfix für den Plannamen. Maximal 47 alphanumerische Zeichen oder Bindestriche. Beispiel: demoApp. Während der Bereitstellung wird das Präfix mit einer eindeutigen Zeichenfolge verkettet, um einen Namen zu erstellen, der in Azure global eindeutig ist.

Sie können die folgenden Befehle ausführen, um einen Namen für die verwaltete Ressourcengruppe zu erstellen.

$mrgprefix = 'mrg-sampleBicepManagedApplication-'
$mrgtimestamp = Get-Date -UFormat "%Y%m%d%H%M%S"
$mrgname = $mrgprefix + $mrgtimestamp
$mrgname

Die Variablen $mrgprefix und $mrgtimestamp werden verkettet und in der Variable $mrgname gespeichert. Der Wert der Variablen hat das Format mrg-sampleBicepManagedApplication-20230512103059. Sie verwenden den Wert der $mrgname-Variable, wenn Sie die verwaltete Anwendung bereitstellen.

Bereitstellen der verwalteten Anwendung

Verwenden Sie Azure PowerShell oder Azure CLI, um eine Ressourcengruppe zu erstellen und die verwaltete Anwendung bereitzustellen.

New-AzResourceGroup -Name bicepApplicationGroup -Location westus

$deployparms = @{
  ResourceGroupName = "bicepApplicationGroup"
  TemplateFile = "deployServiceCatalog.bicep"
  TemplateParameterFile = "deployServiceCatalog-parameters.bicepparam"
  Name = "deployServiceCatalogApp"
}

New-AzResourceGroupDeployment @deployparms

Die $deployparms Variable verwendet die PowerShell-Splatting, um die Lesbarkeit für die Parameterwerte zu verbessern.

Ihre Bereitstellung zeigt möglicherweise eine Bicep-Linter-Warnung an, dass die Eigenschaft managedResourceGroupId eine Ressourcen-ID erwartet. Da die verwaltete Ressourcengruppe während der Bereitstellung erstellt wird, ist für die Eigenschaft keine Ressourcen-ID verfügbar.

Anzeigen der Ergebnisse

Nachdem die vom Dienstkatalog verwaltete Anwendung bereitgestellt wurde, verfügen Sie über zwei neue Ressourcengruppen. Eine Ressourcengruppe enthält die verwaltete Anwendung. Die andere Ressourcengruppe enthält die verwalteten Ressourcen, die bereitgestellt wurden. In diesem Beispiel ein App Service, ein App Service-Plan und ein Speicherkonto.

Verwaltete Anwendung

Nach Abschluss der Bereitstellung können Sie den Status Ihrer verwalteten Anwendung überprüfen.

Führen Sie den folgenden Befehl aus, um den Status der verwalteten Anwendung zu überprüfen.

Get-AzManagedApplication -Name sampleBicepManagedApp -ResourceGroupName bicepApplicationGroup

Erweitern Sie die Eigenschaften, um das Lesen der Properties-Informationen zu vereinfachen.

Get-AzManagedApplication -Name sampleBicepManagedApp -ResourceGroupName bicepApplicationGroup | Select-Object -ExpandProperty Properties

Verwaltete Ressourcen

Sie können die in der verwalteten Ressourcengruppe bereitgestellten Ressourcen anzeigen.

Führen Sie den folgenden Befehl aus, um die Ressourcen der verwalteten Ressourcengruppe anzuzeigen. Sie haben die $mrgname-Variable erstellt, als Sie die Parameter erstellt haben.

Get-AzResource -ResourceGroupName $mrgname

Zum Anzeigen aller Rollenzuweisungen für die verwaltete Ressourcengruppe.

Get-AzRoleAssignment -ResourceGroupName $mrgname

Die Definition der verwalteten Anwendung, die Sie in den Schnellstartartikeln erstellt haben, verwendete eine Gruppe mit der Rollenzuweisung „Besitzer“. Sie können die Gruppe mit dem folgenden Befehl anzeigen.

Get-AzRoleAssignment -ResourceGroupName $mrgname -RoleDefinitionName Owner

Sie können auch die Ablehnungszuweisungen für die verwaltete Ressourcengruppe auflisten.

Get-AzDenyAssignment -ResourceGroupName $mrgname

Bereinigen von Ressourcen

Wenn Sie mit der verwalteten Anwendung fertig sind, können Sie die Ressourcengruppen löschen, und dies entfernt alle von Ihnen erstellten Ressourcen. Sie haben beispielsweise die Ressourcengruppen bicepApplicationGroup und eine verwaltete Ressourcengruppe mit dem Präfix mrg-bicepManagedApplication erstellt.

Wenn Sie die Ressourcengruppe bicepApplicationGroup löschen, werden die verwaltete Anwendung, die verwaltete Ressourcengruppe und alle Azure-Ressourcen gelöscht.

Der Befehl fordert Sie auf, zu bestätigen, dass Sie die Ressourcengruppe entfernen wollen.

Remove-AzResourceGroup -Name bicepApplicationGroup

Wenn Sie eine Definition für eine verwaltete Anwendung löschen möchten, löschen Sie die von Ihnen erstellten Ressourcengruppen mit dem Namen packageStorageGroup und bicepDefinitionGroup.

Nächste Schritte