Snabbstart: Använda Bicep för att distribuera en Azure Managed Application-definition
Den här snabbstarten beskriver hur du använder Bicep för att distribuera en Azure Managed Application-definition från tjänstkatalogen. Definitionen i tjänstkatalogen är tillgänglig för medlemmar i organisationen.
Utför följande uppgifter för att distribuera en definition av hanterat program från tjänstkatalogen:
- Använd Bicep för att utveckla en mall som distribuerar en definition för ett hanterat program.
- Skapa en parameterfil för distributionen.
- Distribuera definitionen av det hanterade programmet från tjänstkatalogen.
Förutsättningar
För att slutföra uppgifterna i den här artikeln behöver du följande:
- Distribuerade en definition med snabbstart: Använd Bicep för att skapa och publicera en Azure Managed Application-definition.
- Ett Azure-konto med en aktiv prenumeration. Om du inte har något konto skapar du ett kostnadsfritt konto innan du börjar.
- Visual Studio Code med det senaste Azure Resource Manager Tools-tillägget. För Bicep-filer installerar du Bicep-tillägget för Visual Studio Code.
- Den senaste versionen av Azure PowerShell eller Azure CLI.
Hämta definition av hanterat program
Kör följande kommandon för att hämta det hanterade programmets definition med Azure PowerShell.
Öppna en ny PowerShell-terminal i Visual Studio Code och logga in på din Azure-prenumeration.
Connect-AzAccount
Kommandot öppnar din standardwebbläsare och uppmanar dig att logga in på Azure. Mer information finns i Logga in med Azure PowerShell.
Hämta definitionen för ditt hanterade program från Azure PowerShell. I det här exemplet använder du resursgruppens namn bicepDefinitionGroup som skapades när du distribuerade definitionen för det hanterade programmet.
Get-AzManagedApplicationDefinition -ResourceGroupName bicepDefinitionGroup
Get-AzManagedApplicationDefinition
visar en lista över alla tillgängliga definitioner i den angivna resursgruppen, till exempel sampleBicepManagedApplication.
Följande kommando parsar utdata för att endast visa definitionsnamnet och resursgruppens namn. Du använder namnen när du distribuerar det hanterade programmet.
Get-AzManagedApplicationDefinition -ResourceGroupName bicepDefinitionGroup | Select-Object -Property Name, ResourceGroupName
Skapa Bicep-filen
Öppna Visual Studio Code och skapa ett filnamn deployServiceCatalog.bicep. Kopiera och klistra in följande kod i filen och spara den.
@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
}
}
}
}
Mer information om resurstypen finns i Microsoft.Solutions/applications.
Skapa parameterfilen
Öppna Visual Studio Code och skapa en parameterfil med namnet deployServiceCatalog-parameters.bicepparam. Kopiera och klistra in följande kod i filen och spara den.
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'
Du måste ange flera parametrar för att distribuera det hanterade programmet:
Parameter | Värde |
---|---|
definitionName |
Namnet på tjänstkatalogdefinitionen. I det här exemplet används sampleBicepManagedApplication. |
definitionRG |
Namn på resursgrupp där definitionen lagras. I det här exemplet används bicepDefinitionGroup. |
managedAppName |
Namn på det distribuerade hanterade programmet. I det här exemplet används sampleBicepManagedApp. |
mrgName |
Unikt namn för den hanterade resursgrupp som innehåller programmets distribuerade resurser. Resursgruppen skapas när du distribuerar det hanterade programmet. Om du vill skapa ett namn på en hanterad resursgrupp kör du kommandona som följer den här parameterlistan och använder $mrgname värdet för att ersätta platshållaren i parameterfilen. |
appServicePlanName |
Skapa ett plannamn. Högst 40 alfanumeriska tecken och bindestreck. Till exempel demoAppServicePlan. App Service-plannamn måste vara unika i en resursgrupp i din prenumeration. |
appServiceNamePrefix |
Skapa ett prefix för plannamnet. Högst 47 alfanumeriska tecken eller bindestreck. Till exempel demoApp. Under distributionen sammanfogas prefixet med en unik sträng för att skapa ett namn som är globalt unikt i Hela Azure. |
Du kan köra följande kommandon för att skapa ett namn för den hanterade resursgruppen.
$mrgprefix = 'mrg-sampleBicepManagedApplication-'
$mrgtimestamp = Get-Date -UFormat "%Y%m%d%H%M%S"
$mrgname = $mrgprefix + $mrgtimestamp
$mrgname
Variablerna $mrgprefix
och $mrgtimestamp
sammanfogas och lagras i variabeln $mrgname
. Variabelns värde är i formatet mrg-sampleBicepManagedApplication-20230512103059. Du använder $mrgname
variabelns värde när du distribuerar det hanterade programmet.
Distribuera det hanterade programmet
Använd Azure PowerShell eller Azure CLI för att skapa en resursgrupp och distribuera det hanterade programmet.
New-AzResourceGroup -Name bicepApplicationGroup -Location westus
$deployparms = @{
ResourceGroupName = "bicepApplicationGroup"
TemplateFile = "deployServiceCatalog.bicep"
TemplateParameterFile = "deployServiceCatalog-parameters.bicepparam"
Name = "deployServiceCatalogApp"
}
New-AzResourceGroupDeployment @deployparms
Variabeln $deployparms
använder PowerShell-splatting för att förbättra läsbarheten för parametervärdena.
Distributionen kan visa en Bicep-lintervarning om att egenskapen managedResourceGroupId
förväntar sig ett resurs-ID. Eftersom den hanterade resursgruppen skapas under distributionen finns det inget resurs-ID tillgängligt för egenskapen.
Visa resultat
När det hanterade tjänstkatalogprogrammet har distribuerats har du två nya resursgrupper. En resursgrupp innehåller det hanterade programmet. Den andra resursgruppen innehåller de hanterade resurser som har distribuerats. I det här exemplet ett App Service-, App Service-plan- och lagringskonto.
Hanterat program
När distributionen är klar kan du kontrollera statusen för det hanterade programmet.
Kör följande kommando för att kontrollera statusen för det hanterade programmet.
Get-AzManagedApplication -Name sampleBicepManagedApp -ResourceGroupName bicepApplicationGroup
Expandera egenskaperna för att göra det enklare att läsa informationen Properties
.
Get-AzManagedApplication -Name sampleBicepManagedApp -ResourceGroupName bicepApplicationGroup | Select-Object -ExpandProperty Properties
Hanterade resurser
Du kan visa de resurser som distribuerats till den hanterade resursgruppen.
Kör följande kommando för att visa den hanterade resursgruppens resurser. Du skapade variabeln $mrgname
när du skapade parametrarna.
Get-AzResource -ResourceGroupName $mrgname
Så här visar du alla rolltilldelningar för den hanterade resursgruppen.
Get-AzRoleAssignment -ResourceGroupName $mrgname
Den definition av hanterade program som du skapade i snabbstartsartiklarna använde en grupp med rolltilldelningen Ägare. Du kan visa gruppen med följande kommando.
Get-AzRoleAssignment -ResourceGroupName $mrgname -RoleDefinitionName Owner
Du kan också lista neka tilldelningar för den hanterade resursgruppen.
Get-AzDenyAssignment -ResourceGroupName $mrgname
Rensa resurser
När du är klar med det hanterade programmet kan du ta bort resursgrupperna och ta bort alla resurser som du har skapat. Du har till exempel skapat resursgrupperna bicepApplicationGroup och en hanterad resursgrupp med prefixet mrg-bicepManagedApplication.
När du tar bort resursgruppen bicepApplicationGroup tas det hanterade programmet, den hanterade resursgruppen och alla Azure-resurser bort.
Kommandot uppmanar dig att bekräfta att du vill ta bort resursgruppen.
Remove-AzResourceGroup -Name bicepApplicationGroup
Om du vill ta bort definitionen för det hanterade programmet tar du bort de resursgrupper som du skapade med namnet packageStorageGroup och bicepDefinitionGroup.
Nästa steg
- Om du vill lära dig hur du skapar och publicerar definitionsfilerna för ett hanterat program med hjälp av Azure PowerShell, Azure CLI eller portalen går du till Snabbstart: Skapa och publicera en Azure Managed Application-definition.
- Om du vill använda din egen lagring för att skapa och publicera definitionsfilerna för ett hanterat program går du till Snabbstart: Ta med din egen lagring för att skapa och publicera en Azure Managed Application-definition.