Início Rápido: usar o Bicep para implantar uma definição de Aplicativo Gerenciado do Azure
Esse início rápido descreve como usar o Bicep para implantar uma definição de Aplicativo Gerenciado do Azure a partir do catálogo de serviços. As definições em seu catálogo de serviços estão disponíveis para os membros da sua organização.
Para implantar uma definição de aplicativo gerenciado do catálogo de serviços, execute as seguintes tarefas:
- Use o Bicep para desenvolver um modelo que implanta uma definição de aplicativo gerenciado.
- Crie um arquivo de parâmetro para a implantação.
- Implante a definição de aplicativo gerenciado do catálogo de serviços.
Pré-requisitos
Para executar as tarefas incluídas neste artigo, você precisará dos seguintes itens:
- Implantou uma definição com Início Rápido: usar o Bicep para criar e publicar uma definição de Aplicativo Gerenciado do Azure.
- Uma conta do Azure com uma assinatura ativa. Se você ainda não tiver uma conta, crie uma conta gratuita antes de começar.
- Visual Studio Code com a extensão Ferramentas do Resource Manager mais recente. Para arquivos Bicep, instale a extensão Bicep para Visual Studio Code.
- A versão mais recente do Azure PowerShell ou CLI do Azure.
Obter definição de aplicativo gerenciado
Para obter a definição do aplicativo gerenciado com o Azure PowerShell, execute os comandos a seguir.
No Visual Studio Code, abra um novo terminal do PowerShell e entre em sua assinatura do Azure.
Connect-AzAccount
O comando abre o navegador padrão e solicita que você entre no Azure. Para obter mais informações, vá para Entrar com o Azure PowerShell.
Em Azure PowerShell, obtenha a definição do aplicativo gerenciado. Neste exemplo, use o nome do grupo de recursos bicepDefinitionGroup que foi criado quando você implantou a definição do aplicativo gerenciado.
Get-AzManagedApplicationDefinition -ResourceGroupName bicepDefinitionGroup
Get-AzManagedApplicationDefinition
lista todas as definições disponíveis no grupo de recursos especificado, como sampleBicepManagedApplication.
O comando a seguir analisa a saída para mostrar apenas o nome da definição e o nome do grupo de recursos. Você usa os nomes quando implanta o aplicativo gerenciado.
Get-AzManagedApplicationDefinition -ResourceGroupName bicepDefinitionGroup | Select-Object -Property Name, ResourceGroupName
Criar o arquivo Bicep
Abra o Visual Studio Code e crie um nome de arquivo deployServiceCatalog.bicep. Copie e cole o código a seguir no arquivo e salve-o.
@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
}
}
}
}
Para obter mais informações sobre o tipo de recurso, acesse Microsoft.Solutions/applications.
Criar o arquivo de parâmetros
Abra o Visual Studio Code e crie um arquivo de parâmetro chamado deployServiceCatalog-parameters.bicepparam. Copie e cole o código a seguir no arquivo e salve-o.
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'
Você precisa fornecer vários parâmetros para implantar o aplicativo gerenciado:
Parâmetro | Valor |
---|---|
definitionName |
Nome da definição do catálogo de serviços. Esse exemplo usa sampleBicepManagedApplication. |
definitionRG |
Nome do grupo de recursos no qual a definição é armazenada. Este exemplo usa o bicepDefinitionGroup. |
managedAppName |
Nome do aplicativo gerenciado implantado. Esse exemplo usa sampleBicepManagedApp. |
mrgName |
Nome exclusivo para o grupo de recursos gerenciados que contém os recursos implantados do aplicativo. O grupo de recursos é criado quando você implanta o aplicativo gerenciado. Para criar um nome de grupo de recursos gerenciados, execute os comandos que seguem essa lista de parâmetros e use o valor $mrgname para substituir o espaço reservado no arquivo de parâmetros. |
appServicePlanName |
Crie um nome do plano. Máximo de 40 caracteres alfanuméricos e hifens. Por exemplo, demoAppServicePlan. Os nomes dos Planos dos Serviços de Aplicativo devem ser exclusivos dentro de um grupo de recursos em sua assinatura. |
appServiceNamePrefix |
Crie um prefixo para o nome do plano. Máximo de 47 caracteres alfanuméricos ou hifens. Por exemplo, demoApp. Durante a implantação, o prefixo é concatenado com uma cadeia de caracteres exclusiva para criar um nome global que é exclusivo em todo o Azure. |
Você pode executar os comandos a seguir para criar o nome do grupo de recursos gerenciados.
$mrgprefix = 'mrg-sampleBicepManagedApplication-'
$mrgtimestamp = Get-Date -UFormat "%Y%m%d%H%M%S"
$mrgname = $mrgprefix + $mrgtimestamp
$mrgname
As variáveis $mrgprefix
e $mrgtimestamp
são concatenadas e armazenadas na variável $mrgname
. O valor da variável está no formato mrg-sampleBicepManagedApplication-20230512103059. Você usará o valor de variável $mrgname
ao implantar a definição de aplicativo gerenciado.
Implantar o aplicativo gerenciado
Use o Azure PowerShell ou a CLI do Azure para criar um grupo de recursos e implantar o aplicativo gerenciado.
New-AzResourceGroup -Name bicepApplicationGroup -Location westus
$deployparms = @{
ResourceGroupName = "bicepApplicationGroup"
TemplateFile = "deployServiceCatalog.bicep"
TemplateParameterFile = "deployServiceCatalog-parameters.bicepparam"
Name = "deployServiceCatalogApp"
}
New-AzResourceGroupDeployment @deployparms
A variável $deployparms
usa o splatting do PowerShell para melhorar a legibilidade dos valores de parâmetro.
Sua implantação pode exibir um aviso de linter do Bicep de que a propriedade managedResourceGroupId
espera uma ID do recurso. Como o grupo de recursos gerenciados é criado durante a implantação, não há uma ID do recurso disponível para a propriedade.
Exibir os resultados
Depois que o aplicativo gerenciado do catálogo de serviços tiver sido implantado, você terá dois novos grupos de recursos. Um grupo de recursos contém o aplicativo gerenciado. O outro grupo de recursos contém os recursos gerenciados que foram implantados. Neste exemplo, um Serviço de Aplicativo, Plano do Serviço de Aplicativo e uma conta de armazenamento.
Aplicativo gerenciado
Depois que a implantação for concluída, você poderá verificar o status do aplicativo gerenciado.
Execute o comando a seguir para verificar o status do aplicativo gerenciado.
Get-AzManagedApplication -Name sampleBicepManagedApp -ResourceGroupName bicepApplicationGroup
Expanda as propriedades para facilitar a leitura das informações Properties
.
Get-AzManagedApplication -Name sampleBicepManagedApp -ResourceGroupName bicepApplicationGroup | Select-Object -ExpandProperty Properties
Recursos gerenciados
Você pode exibir os recursos implantados no grupo de recursos gerenciados.
Para exibir os recursos do grupo de recursos gerenciados, execute o comando a seguir. Você criou a variável $mrgname
quando criou os parâmetros.
Get-AzResource -ResourceGroupName $mrgname
Para exibir todas as atribuições de função para o grupo de recursos gerenciados.
Get-AzRoleAssignment -ResourceGroupName $mrgname
A definição de aplicativo gerenciado que você criou nos artigos de início rápido usou um grupo com a atribuição de função Proprietário. Você pode exibir o grupo com o comando a seguir.
Get-AzRoleAssignment -ResourceGroupName $mrgname -RoleDefinitionName Owner
Você também pode listar as atribuições de negação para o grupo de recursos gerenciados.
Get-AzDenyAssignment -ResourceGroupName $mrgname
Limpar recursos
Ao terminar com o aplicativo gerenciado, você poderá excluir os grupos de recursos e isso remove todos os recursos que você criou. Por exemplo, você criou os grupos de recursos bicepApplicationGroup e um grupo de recursos gerenciados com o prefixo mrg-bicepManagedApplication.
Quando você exclui o grupo de recursos bicepApplicationGroup, o aplicativo gerenciado, o grupo de recursos gerenciados e todos os recursos do Azure são excluídos.
O comando solicita que você confirme se deseja remover o grupo de recursos.
Remove-AzResourceGroup -Name bicepApplicationGroup
Se você quiser excluir a definição do aplicativo gerenciado, exclua os grupos de recursos que você criou chamados de packageStorageGroup e bicepDefinitionGroup.
Próximas etapas
- Para saber como criar e publicar os arquivos de definição de um aplicativo gerenciado usando o Azure PowerShell, CLI do Azure ou o portal, vá para Início Rápido: Criar e publicar uma definição de Aplicativo Gerenciado do Azure.
- Para usar seu próprio armazenamento para criar e publicar os arquivos de definição de um aplicativo gerenciado, vá para Início Rápido: Trazer seu próprio armazenamento para criar e publicar uma definição de Aplicativo Gerenciado do Azure.