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 bicepDefinitionRG, der beim Bereitstellen der Definition für eine verwaltete Anwendung erstellt wurde.

Get-AzManagedApplicationDefinition -ResourceGroupName bicepDefinitionRG

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 bicepDefinitionRG | 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

@maxLength(11)
@description('Use only lowercase letters and numbers and a maximum of 11 characters.')
param storageAccountNamePrefix string

@allowed([
  'Premium_LRS'
  'Standard_LRS'
  'Standard_GRS'
])
@description('The options are Premium_LRS, Standard_LRS, or Standard_GRS')
param storageAccountType 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
      }
      storageAccountNamePrefix: {
        value: storageAccountNamePrefix
      }
      storageAccountType: {
        value: storageAccountType
      }
    }
  }
}

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.json. Kopieren Sie den folgenden Code, fügen Sie ihn in die Datei ein, und speichern Sie.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "definitionName": {
      "value": "sampleBicepManagedApplication"
    },
    "definitionRG": {
      "value": "bicepDefinitionRG"
    },
    "managedAppName": {
      "value": "sampleBicepManagedApp"
    },
    "mrgName": {
      "value": "<placeholder for managed resource group name>"
    },
    "appServicePlanName": {
      "value": "demoAppServicePlan"
    },
    "appServiceNamePrefix": {
      "value": "demoApp"
    },
    "storageAccountNamePrefix": {
      "value": "demostg1234"
    },
    "storageAccountType": {
      "value": "Standard_LRS"
    }
  }
}

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 bicepDefinitionRG 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, können Sie die Befehle ausführen, die auf diese Parameterliste folgen.
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.
storageAccountNamePrefix Verwenden Sie nur Kleinbuchstaben und Zahlen und maximal 11 Zeichen. Beispiel: demostg1234. Während der Bereitstellung wird das Präfix mit einer eindeutigen Zeichenfolge verkettet, um einen global eindeutigen Namen in Azure zu erstellen.
storageAccountType Die anderen Optionen sind Premium_LRS, Standard_LRS und Standard_GRS.

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 bicepAppRG -Location westus3

New-AzResourceGroupDeployment `
  -ResourceGroupName bicepAppRG `
  -TemplateFile deployServiceCatalog.bicep `
  -TemplateParameterFile deployServiceCatalog.parameters.json

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 bicepAppRG

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

Get-AzManagedApplication -Name sampleBicepManagedApp -ResourceGroupName bicepAppRG | 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 bicepAppRG und eine verwaltete Ressourcengruppe mit dem Präfix mrg-bicepManagedApplication erstellt.

Wenn Sie die Ressourcengruppe bicepAppRG 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 bicepAppRG

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

Nächste Schritte