التشغيل السريع: استخدم Bicep لنشر تعريف تطبيق مدار من Azure
يصف هذا التشغيل السريع كيفية استخدام Bicep لنشر تعريف تطبيق Azure المدار من كتالوج الخدمة الخاص بك. التعريف الموجود في كتالوج الخدمة متوفر لأعضاء مؤسستك.
لنشر تعريف تطبيق مدار من كتالوج الخدمة، قم بالمهام التالية:
- استخدم Bicep لتطوير قالب ينشر تعريف تطبيق مدار.
- إنشاء ملف معلمة للتوزيع.
- انشر تعريف التطبيق المدار من كتالوج الخدمة.
المتطلبات الأساسية
لإكمال المهام في هذه المقالة، تحتاج إلى العناصر التالية:
- أكمل التشغيل السريع لاستخدام Bicep لإنشاء تعريف تطبيق مدار ونشره في كتالوج الخدمة.
- حساب Azure باشتراك نشط. إذا لم يكن لديك حساب، فأنشئ حسابا مجانيا قبل أن تبدأ.
- التعليمة البرمجية Visual Studio مع أحدث ملحق Resource Manager Tools. بالنسبة لملفات Bicep، قم بتثبيت ملحق Bicep ل Visual Studio Code.
- تثبيت أحدث إصدار من Azure PowerShell أو Azure CLI.
الحصول على تعريف التطبيق المدار
للحصول على تعريف التطبيق المدار باستخدام 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.
الخطوات التالية
- لمعرفة كيفية إنشاء ملفات التعريف ونشرها لتطبيق مدار باستخدام Azure PowerShell أو Azure CLI أو المدخل، انتقل إلى التشغيل السريع: إنشاء تعريف تطبيق مدار من Azure ونشره.
- لاستخدام التخزين الخاص بك لإنشاء ملفات التعريف ونشرها لتطبيق مدار، انتقل إلى التشغيل السريع: إحضار التخزين الخاص بك لإنشاء تعريف تطبيق مدار من Azure ونشره.