Delen via


Quickstart: Bicep gebruiken om een definitie van een door Azure beheerde toepassing te implementeren

In deze quickstart wordt beschreven hoe u Bicep gebruikt om een definitie van een door Azure beheerde toepassing te implementeren vanuit uw servicecatalogus. De definitie in uw servicecatalogus is beschikbaar voor leden van uw organisatie.

Voer de volgende taken uit om een definitie van een beheerde toepassing te implementeren vanuit uw servicecatalogus:

  • Gebruik Bicep om een sjabloon te ontwikkelen waarmee een definitie van een beheerde toepassing wordt geïmplementeerd.
  • Maak een parameterbestand voor de implementatie.
  • Implementeer de definitie van de beheerde toepassing vanuit uw servicecatalogus.

Vereisten

Als u de taken in dit artikel wilt uitvoeren, hebt u het volgende nodig:

Definitie van beheerde toepassing ophalen

Voer de volgende opdrachten uit om de definitie van de beheerde toepassing op te halen met Azure PowerShell.

Open in Visual Studio Code een nieuwe PowerShell-terminal en meld u aan bij uw Azure-abonnement.

Connect-AzAccount

Met de opdracht opent u uw standaardbrowser en wordt u gevraagd u aan te melden bij Azure. Ga naar Aanmelden met Azure PowerShell voor meer informatie.

Haal vanuit Azure PowerShell de definitie van uw beheerde toepassing op. In dit voorbeeld gebruikt u de naam van de resourcegroep bicepDefinitionGroup die is gemaakt toen u de definitie van de beheerde toepassing hebt geïmplementeerd.

Get-AzManagedApplicationDefinition -ResourceGroupName bicepDefinitionGroup

Get-AzManagedApplicationDefinition bevat alle beschikbare definities in de opgegeven resourcegroep, zoals sampleBicepManagedApplication.

Met de volgende opdracht wordt de uitvoer geparseerd om alleen de definitienaam en de naam van de resourcegroep weer te geven. U gebruikt de namen wanneer u de beheerde toepassing implementeert.

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

Het Bicep-bestand maken

Open Visual Studio Code en maak een bestandsnaam deployServiceCatalog.bicep. Kopieer en plak de volgende code in het bestand en sla deze op.

@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
      }
    }
  }
}

Ga naar Microsoft.Solutions/applications voor meer informatie over het resourcetype.

Het parameterbestand maken

Open Visual Studio Code en maak een parameterbestand met de naam deployServiceCatalog-parameters.bicepparam. Kopieer en plak de volgende code in het bestand en sla deze op.

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'
param storageAccountNamePrefix = 'demostg1234'
param storageAccountType = 'Standard_LRS'

U moet verschillende parameters opgeven om de beheerde toepassing te implementeren:

Parameter Weergegeven als
definitionName Naam van de definitie van de servicecatalogus. In dit voorbeeld wordt sampleBicepManagedApplication gebruikt.
definitionRG De naam van de resourcegroep waarin de definitie is opgeslagen. In dit voorbeeld wordt bicepDefinitionGroup gebruikt.
managedAppName Naam voor de geïmplementeerde beheerde toepassing. In dit voorbeeld wordt sampleBicepManagedApp gebruikt.
mrgName Unieke naam voor de beheerde resourcegroep die de geïmplementeerde resources van de toepassing bevat. De resourcegroep wordt gemaakt wanneer u de beheerde toepassing implementeert. Als u een naam voor een beheerde resourcegroep wilt maken, voert u de opdrachten uit die volgen op deze parameterlijst en gebruikt u de $mrgname waarde om de tijdelijke aanduiding in het parameterbestand te vervangen.
appServicePlanName Maak een plannaam. Maximaal 40 alfanumerieke tekens en afbreekstreepjes. Bijvoorbeeld demoAppServicePlan. Namen van App Service-plannen moeten uniek zijn binnen een resourcegroep in uw abonnement.
appServiceNamePrefix Maak een voorvoegsel voor de naam van het plan. Maximaal 47 alfanumerieke tekens of afbreekstreepjes. Bijvoorbeeld demoApp. Tijdens de implementatie wordt het voorvoegsel samengevoegd met een unieke tekenreeks om een naam te maken die wereldwijd uniek is in Azure.
storageAccountNamePrefix Gebruik alleen kleine letters en cijfers en maximaal 11 tekens. Bijvoorbeeld demostg1234. Tijdens de implementatie wordt het voorvoegsel samengevoegd met een unieke tekenreeks om een wereldwijd unieke naam te maken in Azure.
storageAccountType De opties zijn Premium_LRS, Standard_LRS en Standard_GRS.

U kunt de volgende opdrachten uitvoeren om een naam te maken voor de beheerde resourcegroep.

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

De $mrgprefix variabelen worden $mrgtimestamp samengevoegd en opgeslagen in de $mrgname variabele. De waarde van de variabele heeft de indeling mrg-sampleBicepManagedApplication-20230512103059. U gebruikt de waarde van de $mrgname variabele wanneer u de beheerde toepassing implementeert.

De beheerde toepassing implementeren

Gebruik Azure PowerShell of Azure CLI om een resourcegroep te maken en de beheerde toepassing te implementeren.

New-AzResourceGroup -Name bicepApplicationGroup -Location westus

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

New-AzResourceGroupDeployment @deployparms

De $deployparms variabele maakt gebruik van PowerShell-splatting om de leesbaarheid voor de parameterwaarden te verbeteren.

In uw implementatie wordt mogelijk een Bicep linter-waarschuwing weergegeven dat de managedResourceGroupId eigenschap een resource-id verwacht. Omdat de beheerde resourcegroep wordt gemaakt tijdens de implementatie, is er geen resource-id beschikbaar voor de eigenschap.

Resultaten weergeven

Nadat de beheerde toepassing voor de servicecatalogus is geïmplementeerd, hebt u twee nieuwe resourcegroepen. Eén resourcegroep bevat de beheerde toepassing. De andere resourcegroep bevat de beheerde resources die zijn geïmplementeerd. In dit voorbeeld ziet u een App Service-, App Service-plan en een opslagaccount.

Beheerde toepassing

Nadat de implementatie is voltooid, kunt u de status van uw beheerde toepassing controleren.

Voer de volgende opdracht uit om de status van de beheerde toepassing te controleren.

Get-AzManagedApplication -Name sampleBicepManagedApp -ResourceGroupName bicepApplicationGroup

Vouw de eigenschappen uit om de Properties informatie gemakkelijker te lezen.

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

Beheerde resources

U kunt de resources weergeven die zijn geïmplementeerd in de beheerde resourcegroep.

Voer de volgende opdracht uit om de resources van de beheerde resourcegroep weer te geven. U hebt de $mrgname variabele gemaakt toen u de parameters maakte.

Get-AzResource -ResourceGroupName $mrgname

Als u alle roltoewijzingen voor de beheerde resourcegroep wilt weergeven.

Get-AzRoleAssignment -ResourceGroupName $mrgname

De definitie van de beheerde toepassing die u in de quickstart-artikelen hebt gemaakt, heeft een groep gebruikt met de roltoewijzing Eigenaar. U kunt de groep weergeven met de volgende opdracht.

Get-AzRoleAssignment -ResourceGroupName $mrgname -RoleDefinitionName Owner

U kunt ook de weigeringstoewijzingen voor de beheerde resourcegroep weergeven.

Get-AzDenyAssignment -ResourceGroupName $mrgname

Resources opschonen

Wanneer u klaar bent met de beheerde toepassing, kunt u de resourcegroepen verwijderen en alle resources die u hebt gemaakt, verwijderen. U hebt bijvoorbeeld de resourcegroepen bicepApplicationGroup en een beheerde resourcegroep gemaakt met het voorvoegsel mrg-bicepManagedApplication.

Wanneer u de bicepApplicationGroup-resourcegroep verwijdert, worden de beheerde toepassing, de beheerde resourcegroep en alle Azure-resources verwijderd.

Met de opdracht wordt u gevraagd om te bevestigen dat u de resourcegroep wilt verwijderen.

Remove-AzResourceGroup -Name bicepApplicationGroup

Als u de definitie van de beheerde toepassing wilt verwijderen, verwijdert u de resourcegroepen die u hebt gemaakt met de naam packageStorageGroup en bicepDefinitionGroup.

Volgende stappen