Hızlı Başlangıç: Azure Yönetilen Uygulama tanımını dağıtmak için Bicep kullanma

Bu hızlı başlangıçta Hizmet kataloğunuzdan Azure Yönetilen Uygulama tanımı dağıtmak için Bicep'in nasıl kullanılacağı açıklanmaktadır. Hizmet kataloğunuzdaki tanımlar kuruluşunuzun üyeleri tarafından kullanılabilir.

Hizmet kataloğunuzdan yönetilen uygulama tanımı dağıtmak için aşağıdaki görevleri gerçekleştirin:

  • Yönetilen uygulama tanımını dağıtan bir şablon geliştirmek için Bicep'i kullanın.
  • Dağıtım için bir parametre dosyası oluşturun.
  • Yönetilen uygulama tanımını hizmet kataloğunuzdan dağıtın.

Önkoşullar

Bu makaledeki görevleri tamamlamak için aşağıdaki öğelere ihtiyacınız vardır:

Yönetilen uygulama tanımını alma

yönetilen uygulamanın tanımını Azure PowerShell ile almak için aşağıdaki komutları çalıştırın.

Visual Studio Code'da yeni bir PowerShell terminali açın ve Azure aboneliğinizde oturum açın.

Connect-AzAccount

Komut varsayılan tarayıcınızı açar ve Azure'da oturum açmanızı ister. Daha fazla bilgi için Azure PowerShell ile oturum açma bölümüne gidin.

Azure PowerShell yönetilen uygulamanızın tanımını alın. Bu örnekte, yönetilen uygulama tanımını dağıttığınızda oluşturulan bicepDefinitionRG kaynak grubu adını kullanın.

Get-AzManagedApplicationDefinition -ResourceGroupName bicepDefinitionRG

Get-AzManagedApplicationDefinitionsampleBicepManagedApplication gibi belirtilen kaynak grubundaki tüm kullanılabilir tanımları listeler.

Aşağıdaki komut, çıkışı yalnızca tanım adını ve kaynak grubu adını gösterecek şekilde ayrıştırır. Yönetilen uygulamayı dağıtırken adları kullanırsınız.

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

Bicep dosyasını oluşturma

Visual Studio Code açın ve deployServiceCatalog.bicep dosya adını oluşturun. Aşağıdaki kodu kopyalayıp dosyaya yapıştırın ve kaydedin.

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

Kaynak türü hakkında daha fazla bilgi için Microsoft.Solutions/applications adresine gidin.

Parametre dosyasını oluşturma

Visual Studio Code açın ve deployServiceCatalog.parameters.json adlı bir parametre dosyası oluşturun. Aşağıdaki kodu kopyalayıp dosyaya yapıştırın ve kaydedin.

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

Yönetilen uygulamayı dağıtmak için çeşitli parametreler sağlamanız gerekir:

Parametre Değer
definitionName Hizmet kataloğu tanımının adı. Bu örnekte sampleBicepManagedApplication kullanılmıştır.
definitionRG Tanımın depolandığı kaynak grubu adı. Bu örnekte bicepDefinitionRG kullanılır.
managedAppName Dağıtılan yönetilen uygulamanın adı. Bu örnekte sampleBicepManagedApp kullanılmıştır.
mrgName Uygulamanın dağıtılan kaynaklarını içeren yönetilen kaynak grubunun benzersiz adı. Yönetilen uygulamayı dağıttığınızda kaynak grubu oluşturulur. Yönetilen kaynak grubu adı oluşturmak için bu parametre listesini izleyen komutları çalıştırabilirsiniz.
appServicePlanName Plan adı oluşturun. En fazla 40 alfasayısal karakter ve kısa çizgi. Örneğin demoAppServicePlan. App Service plan adları aboneliğinizdeki bir kaynak grubu içinde benzersiz olmalıdır.
appServiceNamePrefix Plan adı için bir ön ek oluşturun. En fazla 47 alfasayısal karakter veya kısa çizgi. Örneğin demoApp. Dağıtım sırasında ön ek, Azure genelinde genel olarak benzersiz bir ad oluşturmak için benzersiz bir dizeyle birleştirilir.
storageAccountNamePrefix Yalnızca küçük harf ve sayı kullanın ve en fazla 11 karakter kullanın. Örneğin, demostg1234. Dağıtım sırasında ön ek, Azure genelinde genel olarak benzersiz bir ad oluşturmak için benzersiz bir dizeyle birleştirilir.
storageAccountType Seçenekler Premium_LRS, Standard_LRS ve Standard_GRS.

Yönetilen kaynak grubu için bir ad oluşturmak için aşağıdaki komutları çalıştırabilirsiniz.

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

$mrgprefix ve $mrgtimestamp değişkenleri birleştirilir ve değişkende $mrgname depolanır. Değişkenin değeri mrg-sampleBicepManagedApplication-20230512103059 biçimindedir. Yönetilen uygulamayı dağıtırken değişkenin değerini kullanırsınız $mrgname .

Yönetilen uygulamayı dağıtma

Kaynak grubu oluşturmak ve yönetilen uygulamayı dağıtmak için Azure PowerShell veya Azure CLI kullanın.

New-AzResourceGroup -Name bicepAppRG -Location westus3

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

Dağıtımınız, özelliğin bir kaynak kimliği beklediğine managedResourceGroupId ilişkin bir Bicep linter uyarısı görüntüleyebilir. Yönetilen kaynak grubu dağıtım sırasında oluşturulduğundan, özelliği için kullanılabilir bir kaynak kimliği yoktur.

Sonuçları görüntüleme

Hizmet kataloğu yönetilen uygulaması dağıtıldıktan sonra iki yeni kaynak grubunuz olur. Bir kaynak grubu yönetilen uygulamayı içerir. Diğer kaynak grubu, dağıtılan yönetilen kaynakları içerir. Bu örnekte bir App Service, App Service planı ve depolama hesabı.

Yönetilen uygulama

Dağıtım tamamlandıktan sonra yönetilen uygulamanızın durumunu kontrol edebilirsiniz.

Yönetilen uygulamanın durumunu denetlemek için aşağıdaki komutu çalıştırın.

Get-AzManagedApplication -Name sampleBicepManagedApp -ResourceGroupName bicepAppRG

Bilgileri okumayı Properties kolaylaştırmak için özellikleri genişletin.

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

Yönetilen kaynaklar

Yönetilen kaynak grubuna dağıtılan kaynakları görüntüleyebilirsiniz.

Yönetilen kaynak grubunun kaynaklarını görüntülemek için aşağıdaki komutu çalıştırın. Parametreleri oluştururken $mrgname değişkenini oluşturdunuz.

Get-AzResource -ResourceGroupName $mrgname

Yönetilen kaynak grubunun tüm rol atamalarını görüntülemek için.

Get-AzRoleAssignment -ResourceGroupName $mrgname

Hızlı başlangıç makalelerinde oluşturduğunuz yönetilen uygulama tanımı, Sahip rolü atamasıyla bir grup kullandı. Grubu aşağıdaki komutla görüntüleyebilirsiniz.

Get-AzRoleAssignment -ResourceGroupName $mrgname -RoleDefinitionName Owner

Yönetilen kaynak grubu için reddetme atamalarını da listeleyebilirsiniz.

Get-AzDenyAssignment -ResourceGroupName $mrgname

Kaynakları temizleme

Yönetilen uygulamayla işiniz bittiğinde, kaynak gruplarını silebilirsiniz ve bu da oluşturduğunuz tüm kaynakları kaldırır. Örneğin, bicepAppRG kaynak gruplarını ve mrg-bicepManagedApplication ön ekini içeren bir yönetilen kaynak grubu oluşturdunuz.

bicepAppRG kaynak grubunu sildiğinizde, yönetilen uygulama, yönetilen kaynak grubu ve tüm Azure kaynakları silinir.

Komut, kaynak grubunu kaldırmak istediğinizi onaylamanızı ister.

Remove-AzResourceGroup -Name bicepAppRG

Yönetilen uygulama tanımını silmek istiyorsanız packageStorageRG ve bicepDefinitionRG adlı kaynak gruplarını silin.

Sonraki adımlar