快速入門:使用 Bicep 來部署 Azure 受控應用程式定義
本快速入門描述如何使用 Bicep 從服務類別目錄部署 Azure 受控應用程式定義。 服務類別目錄中的定義可供組織成員使用。
若要從服務類別目錄部署受控應用程式定義,請執行下列工作:
- 使用 Bicep 來開發部署受控應用程式定義的範本。
- 建立部署的參數檔案。
- 從您的服務類別目錄部署受控應用程式定義。
必要條件
若要完成這篇文章中的工作,您需要下列項目︰
- 透過快速入門:使用 Bicep 建立和發佈 Azure 受控應用程式定義 (部分機器翻譯) 部署了定義。
- 具有有效訂用帳戶的 Azure 帳戶。 如果您沒有帳戶,請在開始之前建立免費帳戶。
- Visual Studio Code 搭配最新的 Azure Resource Manager 工具延伸模組。 針對 Bicep 檔案,請安裝適用於 Visual Studio Code 的 Bicep 延伸模組。
- 最新版的 Azure PowerShell (英文) 或 Azure CLI (部分機器翻譯)。
取得受控應用程式定義
若要使用 Azure PowerShell 取得受控應用程式的定義,請執行下列命令。
在 Visual Studio Code 中,開啟新的 PowerShell 終端並登入您的 Azure 訂用帳戶。
Connect-AzAccount
此命令會開啟您的預設瀏覽器,並提示您登入 Azure。 如需詳細資訊,請移至 使用 Azure PowerShell 登入。
從 Azure PowerShell 取得受控應用程式的定義。 在此範例中,請使用您部署受控應用程式定義時所建立的資源群組名稱「bicepDefinitionGroup」。
Get-AzManagedApplicationDefinition -ResourceGroupName bicepDefinitionGroup
Get-AzManagedApplicationDefinition
會列出指定資源群組 (例如 sampleBicepManagedApplication) 中所有可用的定義。
下列命令會剖析輸出,只顯示定義名稱和資源群組名稱。 當您部署受控應用程式時,請使用名稱。
Get-AzManagedApplicationDefinition -ResourceGroupName bicepDefinitionGroup | 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
@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
}
}
}
}
如需資源類型的詳細資訊,請前往 Microsoft.Solutions/applications。
建立參數檔案
開啟 Visual Studio Code 並建立名為「deployServiceCatalog-parameters.bicepparam」的參數檔案。 將下列程式碼複製並貼上檔案中,然後儲存。
using './deployServiceCatalog.bicep'
param definitionName = 'sampleBicepManagedApplication'
param definitionRG = 'bicepDefinitionGroup'
param managedAppName = 'sampleBicepManagedApp'
param mrgName = 'placeholder for managed resource group name'
param appServicePlanName = 'demoAppServicePlan'
param appServiceNamePrefix = 'demoApp'
您需要提供數個參數來部署受控應用程式:
參數 | 值 |
---|---|
definitionName |
服務類別目錄定義的名稱。 此範例會使用 sampleBicepManagedApplication。 |
definitionRG |
儲存定義的資源組名。 此範例使用「bicepDefinitionGroup」。 |
managedAppName |
已部署受控應用程式的名稱。 此範例使用 sampleBicepManagedApp。 |
mrgName |
包含應用程式已部署資源之受控資源群組的唯一名稱。 當您部署受控應用程式時,會建立資源群組。 若要建立受控資源群組名稱,請執行遵循此參數清單的命令,並使用 $mrgname 值來取代參數檔案中的預留位置。 |
appServicePlanName |
建立方案名稱。 最多 40 個英數位元和連字號。 例如,demoAppServicePlan。 App Service 方案名稱在訂用帳戶中的資源群組內必須是唯一的。 |
appServiceNamePrefix |
建立計劃名稱的前置詞。 最多 47 個英數位元或連字號。 例如,demoApp。 在部署期間,前置詞會與唯一字串串連,以建立跨 Azure 全域唯一的名稱。 |
您可以執行下列命令以利建立受控資源群組的名稱。
$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 bicepApplicationGroup -Location westus
$deployparms = @{
ResourceGroupName = "bicepApplicationGroup"
TemplateFile = "deployServiceCatalog.bicep"
TemplateParameterFile = "deployServiceCatalog-parameters.bicepparam"
Name = "deployServiceCatalogApp"
}
New-AzResourceGroupDeployment @deployparms
$deployparms
變數會使用 PowerShell splatting (部分機器翻譯) 來改善參數值的可讀性。
您的部署可能會顯示 Bicep linter 警告,指出 managedResourceGroupId
屬性需要資源識別碼。 因為受控資源群組是在部署期間建立的,因此屬性沒有可用的資源識別碼。
檢視結果
在部署服務類別目錄受控應用程式之後,您會有兩個新的資源群組。 一個資源群組包含受控應用程式。 另一個資源群組包含已部署的受控資源。 在此範例中,App Service、App Service 方案和儲存體帳戶。
受控應用程式
部署完成後,您可以檢查受控應用程式的狀態。
執行下列命令來檢查受控應用程式的狀態。
Get-AzManagedApplication -Name sampleBicepManagedApp -ResourceGroupName bicepApplicationGroup
展開屬性,讓您更容易閱讀 Properties
資訊。
Get-AzManagedApplication -Name sampleBicepManagedApp -ResourceGroupName bicepApplicationGroup | Select-Object -ExpandProperty Properties
受控資源
您可以檢視部署至受控資源群組的資源。
若要顯示受控資源群組的資源,請執行下列命令。 您在建立參數時建立了 $mrgname
變數。
Get-AzResource -ResourceGroupName $mrgname
顯示受控資源群組的所有角色指派。
Get-AzRoleAssignment -ResourceGroupName $mrgname
您在快速入門文章中建立的受控應用程式定義,使用具有擁有者角色指派的群組。 您可以使用下列命令來檢視群組。
Get-AzRoleAssignment -ResourceGroupName $mrgname -RoleDefinitionName Owner
您也可以列出受控資源群組的否定性指派。
Get-AzDenyAssignment -ResourceGroupName $mrgname
清除資源
當您完成使用受控應用程式時,您可以刪除資源群組,這樣會移除您建立的所有資源。 例如,您已建立資源群組「bicepApplicationGroup」及具有前置詞「mrg-bicepManagedApplication」的受控資源群組。
您刪除「bicepApplicationGroup」資源群組時,會刪除受控應用程式、受控資源群組和所有 Azure 資源。
命令會提示您確認要移除資源群組。
Remove-AzResourceGroup -Name bicepApplicationGroup
如果您要刪除受控應用程式定義,請刪除您所建立名為「packageStorageGroup」和「bicepDefinitionGroup」的資源群組。
下一步
- 若要瞭解如何使用 Azure PowerShell、Azure CLI 或入口網站建立及發佈受控應用程式的定義檔案,請前往快速入門:建立及發佈 Azure 受控應用程式定義。
- 若要使用您自己的儲存體來建立和發佈受控應用程式的定義檔案,請移至快速入門:自備儲存體來建立及發佈 Azure 受控應用程式定義。