التشغيل السريع: استخدم Bicep لنشر تعريف تطبيق مدار من Azure

يصف هذا التشغيل السريع كيفية استخدام Bicep لنشر تعريف تطبيق Azure المدار من كتالوج الخدمة الخاص بك. التعريف الموجود في كتالوج الخدمة متوفر لأعضاء مؤسستك.

لنشر تعريف تطبيق مدار من كتالوج الخدمة، قم بالمهام التالية:

  • استخدم Bicep لتطوير قالب ينشر تعريف تطبيق مدار.
  • إنشاء ملف معلمة للتوزيع.
  • انشر تعريف التطبيق المدار من كتالوج الخدمة.

المتطلبات الأساسية

لإكمال المهام في هذه المقالة، تحتاج إلى العناصر التالية:

الحصول على تعريف التطبيق المدار

للحصول على تعريف التطبيق المدار باستخدام Azure PowerShell، قم بتشغيل الأوامر التالية.

في Visual Studio Code، افتح محطة PowerShell طرفية جديدة وسجل الدخول إلى اشتراك Azure الخاص بك.

Connect-AzAccount

يفتح الأمر المستعرض الافتراضي ويطالبك بتسجيل الدخول إلى Azure. لمزيد من المعلومات، انتقل إلى تسجيل الدخول باستخدام Azure PowerShell.

من Azure PowerShell، احصل على تعريف التطبيق المدار. في هذا المثال، استخدم اسم مجموعة الموارد bicepDefinitionRG الذي تم إنشاؤه عند نشر تعريف التطبيق المدار.

Get-AzManagedApplicationDefinition -ResourceGroupName bicepDefinitionRG

Get-AzManagedApplicationDefinition يسرد جميع التعريفات المتوفرة في مجموعة الموارد المحددة، مثل sampleBicepManagedApplication.

يقوم الأمر التالي بتحليل الإخراج لإظهار اسم التعريف واسم مجموعة الموارد فقط. يمكنك استخدام الأسماء عند توزيع التطبيق المدار.

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

إنشاء ملف Bicep

افتح Visual Studio Code وأنشئ اسم ملف deployServiceCatalog.bicep. انسخ التعليمات البرمجية التالية والصقها في الملف واحفظه.

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

لمزيد من المعلومات حول نوع المورد، انتقل إلى Microsoft.Solutions/applications.

إنشاء ملف المعلمة

افتح Visual Studio Code وأنشئ ملف معلمة باسم deployServiceCatalog.parameters.json. انسخ التعليمات البرمجية التالية والصقها في الملف واحفظه.

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

تحتاج إلى توفير العديد من المعلمات لنشر التطبيق المدار:

المعلمة القيمة
definitionName اسم تعريف كتالوج الخدمة. يستخدم هذا المثال sampleBicepManagedApplication.
definitionRG اسم مجموعة الموارد حيث يتم تخزين التعريف. يستخدم هذا المثال bicepDefinitionRG.
managedAppName اسم التطبيق المدار المنشور. يستخدم هذا المثال sampleBicepManagedApp.
mrgName اسم فريد لمجموعة الموارد المدارة التي تحتوي على الموارد المنشورة للتطبيق. يتم إنشاء مجموعة الموارد عند توزيع التطبيق المدار. لإنشاء اسم مجموعة موارد مدارة، يمكنك تشغيل الأوامر التي تتبع قائمة المعلمات هذه.
appServicePlanName إنشاء اسم خطة. بحد أقصى 40 حرفا أبجديا رقميا وواصلات. على سبيل المثال، demoAppServicePlan. يجب أن تكون أسماء خطة App Service فريدة داخل مجموعة موارد في اشتراكك.
appServiceNamePrefix إنشاء بادئة لاسم الخطة. بحد أقصى 47 حرفا أبجديا رقميا أو واصلة. على سبيل المثال، demoApp. أثناء التوزيع، يتم ربط البادئة بسلسلة فريدة لإنشاء اسم فريد عالميا عبر Azure.
storageAccountNamePrefix استخدم الأحرف الصغيرة والأرقام فقط وبحد أقصى 11 حرفا. على سبيل المثال، demostg1234. أثناء التوزيع، يتم تسلسل البادئة بسلسلة فريدة لإنشاء اسم فريد عالميا عبر Azure.
storageAccountType الخيارات هي Premium_LRS Standard_LRS Standard_GRS.

يمكنك تشغيل الأوامر التالية لإنشاء اسم لمجموعة الموارد المدارة.

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

$mrgprefix يتم تسلسل المتغيرين و $mrgtimestamp وتخزينهما في $mrgname المتغير. قيمة المتغير بتنسيق mrg-sampleBicepManagedApplication-20230512103059. يمكنك استخدام $mrgname قيمة المتغير عند توزيع التطبيق المدار.

توزيع التطبيق المدار

استخدم Azure PowerShell أو Azure CLI لإنشاء مجموعة موارد ونشر التطبيق المدار.

New-AzResourceGroup -Name bicepAppRG -Location westus3

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

قد يعرض التوزيع تحذير Bicep linter من أن الخاصية managedResourceGroupId تتوقع معرف مورد. نظرا لإنشاء مجموعة الموارد المدارة أثناء التوزيع، لا يوجد معرف مورد متوفر للخاصية .

عرض النتائج

تكون لديك مجموعتَا موارد جديدتان بعد توزيع التطبيق المدار بواسطة كتالوج الخدمة. تحتوي مجموعة موارد واحدة على التطبيق المدار. تحتوي مجموعة الموارد الأخرى على الموارد المدارة التي تم نشرها. في هذا المثال، خدمة التطبيقات وخطة App Service وحساب التخزين.

التطبيق المدار

بعد الانتهاء من التوزيع، يمكنك التحقق من حالة التطبيق المدار.

قم بتشغيل الأمر التالي للتحقق من حالة التطبيق المدار.

Get-AzManagedApplication -Name sampleBicepManagedApp -ResourceGroupName bicepAppRG

قم بتوسيع الخصائص لتسهيل قراءة Properties المعلومات.

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

الموارد المُدارة

يمكنك عرض الموارد الموزعة إلى مجموعة الموارد المدارة.

لعرض موارد مجموعة الموارد المدارة، قم بتشغيل الأمر التالي. قمت بإنشاء $mrgname المتغير عند إنشاء المعلمات.

Get-AzResource -ResourceGroupName $mrgname

لعرض جميع تعيينات الأدوار لمجموعة الموارد المدارة.

Get-AzRoleAssignment -ResourceGroupName $mrgname

استخدم تعريف التطبيق المدار الذي أنشأته في مقالات التشغيل السريع مجموعة مع تعيين دور المالك. يمكنك عرض المجموعة باستخدام الأمر التالي.

Get-AzRoleAssignment -ResourceGroupName $mrgname -RoleDefinitionName Owner

يمكنك أيضا سرد تعيينات الرفض لمجموعة الموارد المدارة.

Get-AzDenyAssignment -ResourceGroupName $mrgname

تنظيف الموارد

عند الانتهاء من التطبيق المدار، يمكنك حذف مجموعات الموارد وإزالة جميع الموارد التي قمت بإنشائها. على سبيل المثال، قمت بإنشاء مجموعات الموارد bicepAppRG ومجموعة موارد مدارة مع البادئة mrg-bicepManagedApplication.

عند حذف مجموعة موارد bicepAppRG ، يتم حذف التطبيق المدار ومجموعة الموارد المدارة وجميع موارد Azure.

يطالبك الأمر بتأكيد رغبتك في إزالة مجموعة الموارد.

Remove-AzResourceGroup -Name bicepAppRG

إذا كنت ترغب في حذف تعريف التطبيق المدار، فاحذف مجموعات الموارد التي أنشأتها المسماة packageStorageRGوbicepDefinitionRG.

الخطوات التالية