Exercício - Criar e implantar uma pilha de implantação com o Bicep
Você está no sprint 1 para o 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 para um grupo de recursos que faz referência a um arquivo Bicep. O arquivo define um plano de serviço de aplicativo do Azure e um serviço de aplicativo do Azure.
Durante o processo, você:
- Crie um arquivo Bicep que define sua arquitetura inicial
- Crie uma pilha de implantação com escopo para um grupo de recursos usando seu arquivo Bicep.
- Revise a configuração da pilha de implantação e dos recursos gerenciados
Este exercício usa a extensão Bicep para Visual Studio Code. Certifique-se de que instala esta extensão no Visual Studio Code.
Criar o arquivo Bicep
Nossa primeira etapa é criar um arquivo Bicep que define nossos recursos para usar com a pilha de implantação.
Abra o Visual Studio Code.
Crie um novo arquivo chamado main.bicep.
Salve o arquivo vazio para que o Visual Studio Code carregue as ferramentas do Bíceps.
Você pode selecionar >Salvar como ou Ctrl+S no Windows (⌘+S no macOS). Lembre-se de onde você salvou o arquivo. Por exemplo, talvez você queira criar uma pasta de modelos na qual salvar o arquivo.
Adicione o seguinte código Bicep ao ficheiro. Você implanta o modelo em breve. É uma boa ideia digitar o código você mesmo em vez de copiar e colar, para que você possa ver como as ferramentas ajudam você a escrever seus 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 interpolação de cadeia de caracteres e a
uniqueString()
função para definir valores de parâmetro padrão. Alguém que implanta esse modelo pode substituir os valores de parâmetro padrão especificando os valores no momento da implantaçã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 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 dos planos do Serviço de Aplicativo precisam ser exclusivos apenas dentro do grupo de recursos. Essa diferença significa que não é uma preocupação usar o mesmo nome de plano do Serviço de Aplicativo em implantações diferentes, desde que as implantações estejam todas indo para grupos de recursos diferentes.
Guarde as alterações ao ficheiro.
Crie a pilha de implantação e implante seus recursos no Azure
Para implementar este modelo no Azure, tem de iniciar sessão na sua conta do Azure a partir do terminal do Visual Studio Code. Certifique-se de ter instalado as ferramentas da CLI do Azure.
No menu Terminal, selecione New Terminal (Novo Terminal). A janela do terminal geralmente abre na metade inferior da tela.
Se a janela do terminal exibir bash no lado direito, isso significa que o shell correto já está aberto. Como alternativa, se você vir um ícone de shell bash à direita, você pode selecioná-lo para iniciar o shell.
Se um shell diferente de bash aparecer, selecione a seta suspensa do shell e, em seguida, selecione Git Bash.
No terminal, vá para o diretório onde você salvou seu modelo. Por exemplo, se você salvou seu modelo na pasta de modelos , poderá usar este comando:
cd templates
Instalar o Bicep
Execute o seguinte comando para garantir que você tenha a versão mais recente do Bicep:
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 browser que se abre, inicie sessão na sua conta do Azure.
O terminal de código do Visual Studio exibe uma lista das assinaturas associadas a essa conta.
Na lista, localize a subscrição que pretende utilizar para este exercício.
Se você perdeu a lista do login, você pode usar o trecho 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ê executa nesta sessão.
az account set --subscription "Your Subscription Name or ID"
Criar um grupo de recursos
Precisamos criar um grupo de recursos para nossa pilha de implantação e recursos gerenciados. Para criar um grupo de recursos, execute o seguinte comando a partir do terminal no Visual Studio Code.
az group create \
--name rg-depositsApplication \
--location eastus
Para implantar esse modelo no Azure, entre em sua conta do Azure a partir do terminal do Visual Studio Code. Certifique-se de ter instalado o Azure PowerShell.
No menu Terminal, selecione New Terminal (Novo Terminal). A janela do terminal geralmente abre na metade inferior da tela.
Se a janela do terminal exibir pwsh ou powershell no lado direito, isso 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 um shell diferente de pwsh ou powershell for exibido, selecione a seta suspensa do shell e selecione PowerShell.
No terminal, vá para o diretório onde você salvou seu modelo. Por exemplo, se você salvou seu modelo na pasta de modelos , poderá usar este comando:
Set-Location -Path templates
Instalar a CLI do Bíceps
Para usar o Bicep do Azure PowerShell, instale a CLI do Bicep.
Iniciar sessão no Azure com o Azure PowerShell
No terminal do Visual Studio Code, entre no Azure executando o seguinte comando:
Connect-AzAccount
No browser que se abre, inicie sessão na sua conta do Azure.
Obtenha o ID da subscrição que pretende utilizar para este exercício executando o seguinte comando:
Get-AzSubscription
O ID de subscrição é a segunda coluna. Copie a segunda coluna. Parece algo como aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e.
Defina a assinatura padrão para todos os comandos do Azure PowerShell executados nesta sessão.
Set-AzContext -SubscriptionId {Your subscription ID}
Criar um grupo de recursos
Precisamos criar um grupo de recursos para nossa pilha de implantação e recursos gerenciados. Para criar um grupo de recursos, execute o seguinte comando a partir do terminal no Visual Studio Code.
New-AzResourceGroup `
-Name rg-depositsApplication `
-Location eastus
Criar a pilha de implantação
Em seguida, precisamos criar nossa pilha de implantação com escopo para nosso grupo de recursos criado recentemente. Para criar a pilha de implantação, execute o seguinte comando do 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 os recursos gerenciados
Ao criar uma pilha de implantação e seus recursos gerenciados, você pode exibir sua configuração usando a linha de comando ou o portal do Azure. Neste exercício, usamos a CLI do Azure. Para exibir a configuração da pilha de implantação, execute o seguinte comando do 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 parecer familiar para 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"
}
Tome nota da secção de recursos da saída. Para cada recurso, ele mostra seu status como "gerenciado", seu grupo de recursos, sua id de recurso e suas configurações de negação.
Ao criar uma pilha de implantação e seus recursos gerenciados, você pode exibir sua configuração usando a linha de comando ou o portal do Azure. Neste exercício, usamos o Azure PowerShell. Para exibir a configuração da pilha de implantação, execute o seguinte comando do 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 parecer familiar à imagem a seguir:
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
Tome nota da secção de recursos da saída. Ele define os recursos gerenciados pela pilha de implantação. Você vê a ID completa do recurso de cada recurso.