Mulai cepat: Menggunakan Bicep untuk menyebarkan definisi Azure Managed Application

Mulai cepat ini menjelaskan cara menggunakan Bicep untuk menyebarkan definisi Azure Managed Application dari katalog layanan Anda. Definisi dalam katalog layanan Anda tersedia untuk anggota organisasi Anda.

Untuk menyebarkan definisi aplikasi terkelola dari katalog layanan Anda, lakukan tugas berikut:

  • Gunakan Bicep untuk mengembangkan templat yang menyebarkan definisi aplikasi terkelola.
  • Buat file parameter untuk penyebaran.
  • Sebarkan definisi aplikasi terkelola dari katalog layanan Anda.

Prasyarat

Untuk menyelesaikan tugas dalam artikel ini, Anda memerlukan item berikut:

Mendapatkan definisi aplikasi terkelola

Untuk mendapatkan definisi aplikasi terkelola dengan Azure PowerShell, jalankan perintah berikut.

Di Visual Studio Code, buka terminal PowerShell baru dan masuk ke langganan Azure Anda.

Connect-AzAccount

Perintah membuka browser default Anda dan meminta Anda untuk masuk ke Azure. Untuk informasi selengkapnya, buka Masuk dengan Azure PowerShell.

Dari Azure PowerShell, dapatkan definisi aplikasi terkelola Anda. Dalam contoh ini, gunakan nama grup sumber daya bicepDefinitionRG yang dibuat saat Anda menyebarkan definisi aplikasi terkelola.

Get-AzManagedApplicationDefinition -ResourceGroupName bicepDefinitionRG

Get-AzManagedApplicationDefinition mencantumkan semua definisi yang tersedia dalam grup sumber daya yang ditentukan, seperti sampleBicepManagedApplication.

Perintah berikut mengurai output untuk hanya menampilkan nama definisi dan nama grup sumber daya. Anda menggunakan nama saat menyebarkan aplikasi terkelola.

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

Membuat file Bicep

Buka Visual Studio Code dan buat nama file deployServiceCatalog.bicep. Salin dan tempel kode berikut ke dalam file dan simpan.

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

Untuk informasi selengkapnya tentang jenis sumber daya, buka Microsoft.Solutions/applications.

Buat file parameter

Buka Visual Studio Code dan buat file parameter bernama deployServiceCatalog.parameters.json. Salin dan tempel kode berikut ke dalam file dan simpan.

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

Anda perlu menyediakan beberapa parameter untuk menyebarkan aplikasi terkelola:

Parameter Nilai
definitionName Nama definisi katalog layanan. Contoh ini menggunakan sampleBicepManagedApplication.
definitionRG Nama grup sumber daya tempat definisi disimpan. Contoh ini menggunakan bicepDefinitionRG.
managedAppName Nama untuk aplikasi terkelola yang disebarkan. Contoh ini menggunakan sampleBicepManagedApp.
mrgName Nama unik untuk grup sumber daya terkelola yang berisi sumber daya aplikasi yang disebarkan. Grup sumber daya dibuat saat Anda menyebarkan aplikasi terkelola. Untuk membuat nama grup sumber daya terkelola, Anda dapat menjalankan perintah yang mengikuti daftar parameter ini.
appServicePlanName Buat nama paket. Maksimum 40 karakter alfanumerik dan tanda hubung. Misalnya, demoAppServicePlan. App Service nama paket harus unik dalam grup sumber daya di langganan Anda.
appServiceNamePrefix Buat awalan untuk nama paket. Maksimum 47 karakter alfanumerik atau tanda hubung. Misalnya, demoApp. Selama penyebaran, awalan digabungkan dengan string unik untuk membuat nama yang unik secara global di seluruh Azure.
storageAccountNamePrefix Gunakan hanya huruf kecil dan angka dan maksimal 11 karakter. Misalnya, demostg1234. Selama penyebaran, awalan digabungkan dengan string unik untuk membuat nama yang unik secara global di seluruh Azure.
storageAccountType Opsinya Premium_LRS, Standard_LRS, dan Standard_GRS.

Anda dapat menjalankan perintah berikut untuk membuat nama untuk grup sumber daya terkelola.

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

Variabel $mrgprefix dan $mrgtimestamp digabungkan dan disimpan dalam $mrgname variabel . Nilai variabel dalam format mrg-sampleBicepManagedApplication-20230512103059. Anda menggunakan $mrgname nilai variabel saat menyebarkan aplikasi terkelola.

Menyebarkan aplikasi terkelola

Gunakan Azure PowerShell atau Azure CLI untuk membuat grup sumber daya dan menyebarkan aplikasi terkelola.

New-AzResourceGroup -Name bicepAppRG -Location westus3

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

Penyebaran Anda mungkin menampilkan peringatan linter Bicep bahwa managedResourceGroupId properti mengharapkan ID sumber daya. Karena grup sumber daya terkelola dibuat selama penyebaran, tidak ada ID sumber daya yang tersedia untuk properti .

Melihat hasil

Setelah aplikasi yang dikelola katalog layanan disebarkan, Anda memiliki dua grup sumber daya baru. Satu grup sumber daya berisi aplikasi terkelola. Grup sumber daya lainnya berisi sumber daya terkelola yang disebarkan. Dalam contoh ini, App Service, paket App Service, dan akun penyimpanan.

Aplikasi terkelola

Setelah penyebaran selesai, Anda dapat memeriksa status aplikasi terkelola Anda.

Jalankan perintah berikut untuk memeriksa status aplikasi terkelola.

Get-AzManagedApplication -Name sampleBicepManagedApp -ResourceGroupName bicepAppRG

Perluas properti untuk mempermudah membaca Properties informasi.

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

Sumber daya terkelola

Anda dapat melihat sumber daya yang disebarkan ke grup sumber daya terkelola.

Untuk menampilkan sumber daya grup sumber daya terkelola, jalankan perintah berikut. Anda membuat $mrgname variabel saat membuat parameter.

Get-AzResource -ResourceGroupName $mrgname

Untuk menampilkan semua penetapan peran untuk grup sumber daya terkelola.

Get-AzRoleAssignment -ResourceGroupName $mrgname

Definisi aplikasi terkelola yang Anda buat di artikel mulai cepat menggunakan grup dengan penetapan peran Pemilik. Anda bisa menampilkan grup dengan perintah berikut.

Get-AzRoleAssignment -ResourceGroupName $mrgname -RoleDefinitionName Owner

Anda juga dapat mencantumkan penetapan penolakan untuk grup sumber daya terkelola.

Get-AzDenyAssignment -ResourceGroupName $mrgname

Membersihkan sumber daya

Setelah selesai dengan aplikasi terkelola, Anda dapat menghapus grup sumber daya dan yang menghapus semua sumber daya yang Anda buat. Misalnya, Anda membuat grup sumber daya bicepAppRG dan grup sumber daya terkelola dengan awalan mrg-bicepManagedApplication.

Saat Anda menghapus grup sumber daya bicepAppRG , aplikasi terkelola, grup sumber daya terkelola, dan semua sumber daya Azure akan dihapus.

Perintah meminta Anda untuk mengonfirmasi bahwa Anda ingin menghapus grup sumber daya.

Remove-AzResourceGroup -Name bicepAppRG

Jika Anda ingin menghapus definisi aplikasi terkelola, hapus grup sumber daya yang Anda buat bernama packageStorageRG dan bicepDefinitionRG.

Langkah berikutnya