Exercício – Criar e implantar uma pilha de implantação com o Bicep
Você está no sprint 1 do novo aplicativo de depósitos. Você deseja testar o processo de criação de uma pilha de implantação com recursos gerenciados em uma assinatura de desenvolvimento. Neste exercício, você cria uma pilha de implantação com escopo de um grupo de recursos que faz referência a um arquivo Bicep. O arquivo define um Plano do Serviço de Aplicativo do Azure e um Serviço de Aplicativo do Azure.
Durante o processo, você vai:
- Criar um arquivo Bicep que define sua arquitetura inicial
- Criar uma pilha de implantação com escopo para um grupo de recursos usando o arquivo Bicep.
- Examinar a configuração da pilha de implantação e dos recursos gerenciados
Este exercício usa a extensão Bicep para Visual Studio Code. É necessário que você instale essa extensão no Visual Studio Code.
Criar o arquivo Bicep
Nossa primeira etapa é criar um arquivo Bicep que defina os recursos a serem usados com a pilha de implantação.
Abra o Visual Studio Code.
Crie um arquivo chamado main.bicep.
Salve o arquivo vazio para que Visual Studio Code carregue as ferramentas Bicep.
Você pode selecionar Arquivo>Salvar Como ou Ctrl+S no Windows (⌘+S no macOS). Lembre-se do local em que salvou o arquivo. Por exemplo, você pode criar uma pasta de modelos para salvar o arquivo.
Adicione o código do Bicep a seguir ao arquivo. Você vai implantar o modelo em breve. É uma boa ideia digitar o código por conta própria em vez de copiar e colar, para que você possa ver como o conjunto de ferramentas ajuda a escrever arquivos Bicep.
// Parameters @description('The location for all resources.') param location string = 'eastus' @description('The name of the web application.') param webApplicationName string = 'webapp-${uniqueString(resourceGroup().id)}' // Variables @description('The name of the app service plan.') var appServicePlanName = 'plan-deposits' // Resource - App Service Plan resource appServicePlan 'Microsoft.Web/serverfarms@2023-12-01' = { name: appServicePlanName location: location sku: { name: 'F1' capacity: 1 } } // Resource - Web App resource webApplication 'Microsoft.Web/sites@2023-12-01' = { name: webApplicationName location: location properties: { serverFarmId: appServicePlan.id } }
Observe que você está usando expressões que incluem a interpolação de cadeia de caracteres e a função
uniqueString()
para definir valores de parâmetro padrão. Alguém que esteja implantando esse modelo pode substituir os valores de parâmetro padrão, especificando os valores no momento da implementação, mas não pode substituir os valores das variáveis.Observe também que você está usando uma variável para o nome do Plano do Serviço de Aplicativo do Azure, mas está usando os parâmetros para os outros nomes. As contas de armazenamento e os aplicativos do Serviço de Aplicativo precisam de nomes globalmente exclusivos, mas os nomes do Plano do Serviço de Aplicativo precisam ser exclusivos apenas dentro do grupo de recursos deles. Essa diferença significa que não é uma preocupação usar o mesmo nome de Plano do Serviço de Aplicativo em diferentes implantações, desde que todas as implantações estejam indo para grupos de recursos distintos.
Salve as alterações no arquivo.
Criar a pilha de implantação e implantar seus recursos no Azure
Para implantar esse modelo no Azure, será necessário entrar em sua conta do Azure do terminal do Visual Studio Code. Verifique se você instalou as ferramentas da CLI do Azure.
No menu Terminal, selecione Novo Terminal. A janela do terminal geralmente é aberta na metade inferior da tela.
Se a janela do terminal exibir bash no lado direito, significa que o shell correto já está aberto. Como alternativa, se você vir um ícone de shell bash à direita, poderá selecioná-lo para iniciar o shell.
Se aparecer um shell diferente do bash, selecione a seta da lista de seleção do shell e selecione Git Bash.
No terminal, vá até o diretório no qual você salvou o modelo. Por exemplo, se você salvou o modelo na pasta modelos, use este comando:
cd templates
Instalar o Bicep
Veja se você tem a versão mais recente do Bicep executando o seguinte comando:
az bicep install && az bicep upgrade
Entrar no Azure usando a CLI do Azure
No terminal do Visual Studio Code, entre no Azure executando o seguinte comando:
az login
No navegador que é aberto, entre em sua conta do Azure.
O terminal do Visual Studio Code exibe uma lista das assinaturas associadas a essa conta.
Na lista, encontre a assinatura que deseja usar para este exercício.
Caso você tenha perdido a lista da inscrição, use o snippet a seguir para listar suas assinaturas novamente.
az account list --output table
Defina a assinatura padrão para todos os comandos da CLI do Azure que você executar nesta sessão.
az account set --subscription "Your Subscription Name or ID"
Criar um grupo de recursos
Precisamos criar um grupo de recursos para a pilha de implantação e os recursos gerenciados. Para criar um grupo de recursos, execute o comando a seguir no terminal no Visual Studio Code.
az group create \
--name rg-depositsApplication \
--location eastus
Para implantar esse modelo no Azure, entre na sua conta do Azure por meio do terminal do Visual Studio Code. Verifique se você instalou o Azure PowerShell.
No menu Terminal, selecione Novo Terminal. A janela do terminal geralmente é aberta na metade inferior da tela.
Se a janela do terminal exibir pwsh ou powershell no lado direito, significa que o shell correto já está aberto. Como alternativa, se você vir um ícone de shell do PowerShell à direita, poderá selecioná-lo para iniciar o shell.
Se aparecer um shell diferente de pwsh ou powershell, selecione a seta suspensa do shell e, em seguida, selecione PowerShell.
No terminal, vá até o diretório no qual você salvou o modelo. Por exemplo, se você salvou o modelo na pasta modelos, use este comando:
Set-Location -Path templates
Instalar a CLI do Bicep
Para usar o Bicep no Azure PowerShell, instale a CLI do Bicep.
Entrar no Azure usando o Azure PowerShell
No terminal do Visual Studio Code, entre no Azure executando o seguinte comando:
Connect-AzAccount
No navegador que é aberto, entre em sua conta do Azure.
Obtenha a ID da assinatura que deseja usar para este exercício executando o seguinte comando:
Get-AzSubscription
A ID da assinatura será a segunda coluna. Copie a segunda coluna. É semelhante a aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e.
Defina a assinatura padrão para todos os comandos do Azure PowerShell que você executar nesta sessão.
Set-AzContext -SubscriptionId {Your subscription ID}
Criar um grupo de recursos
Precisamos criar um grupo de recursos para a pilha de implantação e os recursos gerenciados. Para criar um grupo de recursos, execute o comando a seguir no terminal no Visual Studio Code.
New-AzResourceGroup `
-Name rg-depositsApplication `
-Location eastus
Criar a pilha de implantação
Em seguida, precisamos criar a pilha de implantação com escopo para o grupo de recursos criado recentemente. Para criar a pilha de implantação, execute o comando a seguir no terminal no Visual Studio Code.
az stack group create \
--name stack-deposits \
--resource-group rg-depositsApplication \
--template-file ./main.bicep \
--action-on-unmanage detachAll \
--deny-settings-mode none
New-AzResourceGroupDeploymentStack `
-Name stack-deposits `
-ResourceGroupName rg-depositsApplication `
-TemplateFile ./main.bicep `
-ActionOnUnmanage DetachAll `
-DenySettingsMode None
Verificar a criação da pilha de implantação e dos recursos gerenciados
Ao criar uma pilha de implantação e respectivos recursos gerenciados, você pode exibir a configuração usando a linha de comando ou o portal do Azure. Neste exercício, usamos a CLI do Azure. Para ver a configuração da pilha de implantação, execute o comando a seguir no terminal no Visual Studio Code.
az stack group show \
--resource-group rg-depositsApplication \
--name stack-deposits
Os resultados incluem as propriedades da pilha de implantação e o status dos recursos gerenciados. A saída JSON deve ficar parecida com a seguinte imagem:
{
"actionOnUnmanage": {
"managementGroups": "detach",
"resourceGroups": "detach",
"resources": "detach"
},
"bypassStackOutOfSyncError": null,
"correlationId": ".",
"debugSetting": null,
"deletedResources": [],
"denySettings": {
"applyToChildScopes": false,
"excludedActions": null,
"excludedPrincipals": null,
"mode": "none"
},
"deploymentId": "/subscriptions/././rg-depositsApplication/./Microsoft.Resources/deployments/stack-deposits",
"deploymentScope": null,
"description": null,
"detachedResources": [],
"duration": "PT2M53.2734284S",
"error": null,
"failedResources": [],
"id": "/subscriptions/././rg-depositsApplication/./Microsoft.Resources/deploymentStacks/stack-deposits",
"location": null,
"name": "stack-deposits",
"outputs": null,
"parametersLink": null,
"provisioningState": "succeeded",
"resourceGroup": "rg-depositsApplication",
"resources": [
{
"denyStatus": "none",
"id": "/subscriptions/././rg-depositsApplication/././serverfarms/plan-deposits",
"resourceGroup": "rg-depositsApplication",
"status": "managed"
},
{
"denyStatus": "none",
"id": "/subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-eque2jlrboltq",
"resourceGroup": "rg-depositsApplication",
"status": "managed"
}
],
"systemData": {
"createdAt": "2024-01-01T00:00:01.000000+00:00",
"createdBy": "depositsapplication@contoso.com",
"createdByType": "User",
"lastModifiedAt": "2024-01-01T00:00:01.000000+00:00",
"lastModifiedBy": "depositsapplication@contoso.com",
"lastModifiedByType": "User"
},
"tags": {},
"template": null,
"templateLink": null,
"type": "Microsoft.Resources/deploymentStacks"
}
Observe a seção de recursos da saída. Para cada recurso, ela mostra o status como "gerenciado", o grupo de recursos, a ID de recurso e as configurações de negação.
Ao criar uma pilha de implantação e respectivos recursos gerenciados, você pode exibir a configuração usando a linha de comando ou o portal do Azure. Neste exercício, usamos o Azure PowerShell. Para ver a configuração da pilha de implantação, execute o comando a seguir no terminal no Visual Studio Code.
Get-AzResourceGroupDeploymentStack `
-ResourceGroupName rg-depositsApplication `
-Name stack-deposits
Os resultados incluem as propriedades da pilha de implantação e o status dos recursos gerenciados. A saída do PowerShell deve ficar parecida com a seguinte imagem:
Id : /subscriptions/././rg-depositsApplication/././deploymentStacks/stack-deposits
Name : stack-deposits
ProvisioningState : succeeded
resourcesCleanupAction : detach
resourceGroupsCleanupAction : detach
managementGroupsCleanupAction : detach
CorrelationId : .
DenySettingsMode : none
CreationTime(UTC) : 1/01/2024 0:00:01 AM
DeploymentId : /subscriptions/././rg-depositsApplication/././deployments/stack-deposits
Resources : /subscriptions/././rg-depositsApplication/././serverfarms/plan-deposits
/subscriptions/././rg-depositsApplication/././sites/webapp-eque2jlrboltq
Observe a seção de recursos da saída. Ela define os recursos gerenciados pela pilha de implantação. Veja a ID de recurso completa de cada recurso.