Rychlý start: Použití Bicep k nasazení definice spravované aplikace Azure

Tento rychlý start popisuje, jak pomocí nástroje Bicep nasadit definici spravované aplikace Azure z katalogu služeb. Definice v katalogu služeb jsou k dispozici členům vaší organizace.

Pokud chcete nasadit definici spravované aplikace z katalogu služeb, proveďte následující úlohy:

  • Pomocí Nástroje Bicep můžete vyvinout šablonu, která nasadí definici spravované aplikace.
  • Vytvořte soubor parametrů pro nasazení.
  • Nasaďte definici spravované aplikace z katalogu služeb.

Požadavky

K dokončení úkolů v tomto článku potřebujete následující položky:

Získání definice spravované aplikace

Pokud chcete získat definici spravované aplikace pomocí Azure PowerShell, spusťte následující příkazy.

V editoru Visual Studio Code otevřete nový terminál PowerShellu a přihlaste se ke svému předplatnému Azure.

Connect-AzAccount

Příkaz otevře výchozí prohlížeč a zobrazí výzvu k přihlášení k Azure. Další informace najdete v tématu Přihlášení pomocí Azure PowerShell.

Z Azure PowerShell získejte definici spravované aplikace. V tomto příkladu použijte název skupiny prostředků bicepDefinitionRG , která se vytvořila při nasazení definice spravované aplikace.

Get-AzManagedApplicationDefinition -ResourceGroupName bicepDefinitionRG

Get-AzManagedApplicationDefinition zobrazí seznam všech dostupných definic v zadané skupině prostředků, například sampleBicepManagedApplication.

Následující příkaz analyzuje výstup tak, aby zobrazoval pouze název definice a název skupiny prostředků. Názvy použijete při nasazování spravované aplikace.

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

Vytvoření souboru Bicep

Otevřete Visual Studio Code a vytvořte název souboru deployServiceCatalog.bicep. Zkopírujte a vložte následující kód do souboru a uložte ho.

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

Další informace o typu prostředku najdete na stránce Microsoft.Solutions/applications.

Vytvoření souboru parametrů

Otevřete Visual Studio Code a vytvořte soubor parametrů s názvem deployServiceCatalog.parameters.json. Zkopírujte a vložte následující kód do souboru a uložte ho.

{
  "$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"
    }
  }
}

Pro nasazení spravované aplikace musíte zadat několik parametrů:

Parametr Hodnota
definitionName Název definice katalogu služeb. V tomto příkladu se používá sampleBicepManagedApplication.
definitionRG Název skupiny prostředků, ve které je definice uložená. Tento příklad používá bicepDefinitionRG.
managedAppName Název nasazené spravované aplikace V tomto příkladu se používá sampleBicepManagedApp.
mrgName Jedinečný název spravované skupiny prostředků, která obsahuje nasazené prostředky aplikace. Skupina prostředků se vytvoří při nasazení spravované aplikace. Pokud chcete vytvořit název spravované skupiny prostředků, můžete spustit příkazy, které následují za tímto seznamem parametrů.
appServicePlanName Vytvořte název plánu. Maximálně 40 alfanumerických znaků a pomlček. Například demoAppServicePlan. App Service názvy plánů musí být jedinečné v rámci skupiny prostředků ve vašem předplatném.
appServiceNamePrefix Vytvořte předponu pro název plánu. Maximálně 47 alfanumerických znaků nebo pomlček. Příklad : demoApp. Během nasazování se předpona zřetězí s jedinečným řetězcem, který vytvoří název, který je globálně jedinečný v rámci Azure.
storageAccountNamePrefix Používejte pouze malá písmena a číslice a maximálně 11 znaků. Příklad : demostg1234. Během nasazení se předpona zřetědí s jedinečným řetězcem, který vytvoří název globálně jedinečný v rámci Azure.
storageAccountType Možnosti jsou Premium_LRS, Standard_LRS a Standard_GRS.

Spuštěním následujících příkazů můžete vytvořit název spravované skupiny prostředků.

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

Proměnné $mrgprefix a $mrgtimestamp jsou zřetězeny a uloženy $mrgname v proměnné. Hodnota proměnné je ve formátu mrg-sampleBicepManagedApplication-20230512103059. Hodnotu proměnné použijete $mrgname při nasazování spravované aplikace.

Nasazení spravované aplikace

Pomocí Azure PowerShell nebo Azure CLI vytvořte skupinu prostředků a nasaďte spravovanou aplikaci.

New-AzResourceGroup -Name bicepAppRG -Location westus3

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

Ve vašem nasazení se může zobrazit upozornění linteru Bicep , že managedResourceGroupId vlastnost očekává ID prostředku. Vzhledem k tomu, že se spravovaná skupina prostředků vytvoří během nasazení, není pro vlastnost k dispozici ID prostředku.

Zobrazení výsledků

Po nasazení spravované aplikace katalogu služeb máte dvě nové skupiny prostředků. Jedna skupina prostředků obsahuje spravovanou aplikaci. Druhá skupina prostředků obsahuje spravované prostředky, které byly nasazeny. V tomto příkladu se jedná o App Service, plán App Service a účet úložiště.

Spravovaná aplikace

Po dokončení nasazení můžete zkontrolovat stav spravované aplikace.

Spuštěním následujícího příkazu zkontrolujte stav spravované aplikace.

Get-AzManagedApplication -Name sampleBicepManagedApp -ResourceGroupName bicepAppRG

Rozbalte vlastnosti, abyste usnadnili čtení Properties informací.

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

Spravované prostředky

Můžete zobrazit prostředky nasazené do spravované skupiny prostředků.

Pokud chcete zobrazit prostředky spravované skupiny prostředků, spusťte následující příkaz. Proměnnou jste vytvořili $mrgname při vytváření parametrů.

Get-AzResource -ResourceGroupName $mrgname

Zobrazení všech přiřazení rolí pro spravovanou skupinu prostředků

Get-AzRoleAssignment -ResourceGroupName $mrgname

Definice spravované aplikace, kterou jste vytvořili v článcích rychlý start, používala skupinu s přiřazenou rolí Vlastník. Skupinu můžete zobrazit pomocí následujícího příkazu.

Get-AzRoleAssignment -ResourceGroupName $mrgname -RoleDefinitionName Owner

Můžete také zobrazit seznam přiřazení zamítnutí pro spravovanou skupinu prostředků.

Get-AzDenyAssignment -ResourceGroupName $mrgname

Vyčištění prostředků

Po dokončení práce se spravovanou aplikací můžete odstranit skupiny prostředků a tím odebrat všechny prostředky, které jste vytvořili. Například jste vytvořili skupiny prostředků bicepAppRG a spravovanou skupinu prostředků s předponou mrg-bicepManagedApplication.

Když odstraníte skupinu prostředků bicepAppRG , odstraní se spravovaná aplikace, spravovaná skupina prostředků a všechny prostředky Azure.

Příkaz vás vyzve k potvrzení, že chcete odebrat skupinu prostředků.

Remove-AzResourceGroup -Name bicepAppRG

Pokud chcete odstranit definici spravované aplikace, odstraňte skupiny prostředků, které jste vytvořili, s názvem packageStorageRG a bicepDefinitionRG.

Další kroky