Exercício - Adicionar parâmetros e decoradores

Concluído

Observação

Este exercício é opcional. Se quiser concluir este exercício, terá de criar uma subscrição do Azure antes de começar. Se você não tiver uma conta do Azure ou não quiser criar uma no momento, leia as instruções para entender as informações que estão sendo apresentadas.

Observação

Você precisa usar um grupo de recursos para concluir as etapas deste exercício. Você pode usar um grupo de recursos que já criou ou pode criar um novo grupo de recursos especificamente para este exercício. Se você optar por criar um novo grupo de recursos, isso facilitará a limpeza de todos os recursos criados ao concluir o exercício. Se você não tiver um grupo de recursos existente ou quiser criar um novo especificamente para este exercício, siga as etapas em Usar o portal do Azure e o Gerenciador de Recursos do Azure para gerenciar grupos de recursos para criar um grupo de recursos usando o portal do Azure, ou você pode seguir as etapas em Gerenciar grupos de recursos do Azure usando a CLI do Azure para criar um grupo de recursos usando a CLI do Azure.

Como parte da migração do aplicativo de RH, você está criando um modelo Bicep para implantar recursos do Azure. Neste exercício, você criará um plano do Serviço de Aplicativo do Azure e um aplicativo do Serviço de Aplicativo. Você aplicará decoradores a cada parâmetro para garantir que eles sempre contenham os valores esperados.

Durante o processo, você fará as seguintes tarefas:

  • Crie um arquivo Bicep que inclua parâmetros e variáveis.
  • Adicione decoradores aos parâmetros.
  • Teste a implantação para garantir que o modelo seja válido.

Este exercício usa a extensão Bicep para Visual Studio Code. Certifique-se de instalar essa extensão no Visual Studio Code.

Criar um modelo Bicep com parâmetros

  1. Abre Visual Studio Code.

  2. Crie um novo arquivo chamado main.bicep.

  3. Salve o arquivo vazio para que o Visual Studio Code carregue as ferramentas do Bíceps.

    Você pode selecionar Arquivo>Salvar como ou Ctrl +S no Windows (⌘+S no macOS). Lembre-se de onde você salvou o arquivo. Por exemplo, talvez queiras criar uma pasta de scripts para a salvar.

  4. Adicione o seguinte conteúdo ao arquivo. Você implantará o modelo em breve. Insira o conteúdo você mesmo em vez de copiar e colar para que você possa ver como as ferramentas ajudam você a escrever seus arquivos Bicep.

    param environmentName string = 'dev'
    param solutionName string = 'toyhr${uniqueString(resourceGroup().id)}'
    param appServicePlanInstanceCount int = 1
    param appServicePlanSku object = {
      name: 'F1'
      tier: 'Free'
    }
    param location string = 'eastus'
    
    var appServicePlanName = '${environmentName}-${solutionName}-plan'
    var appServiceAppName = '${environmentName}-${solutionName}-app'
    

    Você está criando vários parâmetros aqui, e eles usam uma mistura de tipos. Você está definindo valores padrão para cada parâmetro. Alguns dos valores padrão incluem interpolação de cadeia de caracteres e a uniqueString() função.

    Sugestão

    A uniqueString() função é útil para criar nomes de recursos globalmente exclusivos. Ele retorna uma cadeia de caracteres que é a mesma em todas as implantações para o mesmo grupo de recursos, mas diferente quando você implanta em diferentes grupos de recursos ou assinaturas.

    Você também está definindo variáveis que constroem os nomes do plano do Serviço de Aplicativo do Azure e do aplicativo do Serviço de Aplicativo. Seus valores incluem alguns dos parâmetros que você especificou. Os valores dos parâmetros podem ser substituídos pelo usuário que executa a implantação, mas os valores das variáveis não podem ser substituídos.

  5. No arquivo main.bicep no Visual Studio Code, adicione o seguinte código à parte inferior do arquivo:

    resource appServicePlan 'Microsoft.Web/serverfarms@2024-04-01' = {
      name: appServicePlanName
      location: location
      sku: {
        name: appServicePlanSku.name
        tier: appServicePlanSku.tier
        capacity: appServicePlanInstanceCount
      }
    }
    
    resource appServiceApp 'Microsoft.Web/sites@2024-04-01' = {
      name: appServiceAppName
      location: location
      properties: {
        serverFarmId: appServicePlan.id
        httpsOnly: true
      }
    }
    

    Observe que os recursos usam os valores dos parâmetros definidos.

  6. Salve as alterações no arquivo.

Adicionar descrições de parâmetros

  1. No arquivo main.bicep no Visual Studio Code, adicione o @description decorador diretamente acima de cada parâmetro que você criou na tarefa anterior. Os parâmetros devem ser semelhantes a este exemplo:

    @description('The name of the environment. This must be dev, test, or prod.')
    param environmentName string = 'dev'
    
    @description('The unique name of the solution. This is used to ensure that resource names are unique.')
    param solutionName string = 'toyhr${uniqueString(resourceGroup().id)}'
    
    @description('The number of App Service plan instances.')
    param appServicePlanInstanceCount int = 1
    
    @description('The name and tier of the App Service plan SKU.')
    param appServicePlanSku object = {
      name: 'F1'
      tier: 'Free'
    }
    
    @description('The Azure region into which the resources should be deployed.')
    param location string = 'eastus'
    
  2. Salve as alterações no arquivo.

Valores-limite de entrada

Sua empresa de brinquedos implantará o aplicativo de RH em três ambientes: dev, test, e prod. Você limitará o environmentName parâmetro para permitir apenas esses três valores.

  1. No arquivo main.bicep no Visual Studio Code, localize o environmentName parâmetro. Insira um @allowed decorador por baixo do seu @description decorador. Depois de terminar, o parâmetro deve ser semelhante a este exemplo:

    @description('The name of the environment. This must be dev, test, or prod.')
    @allowed([
      'dev'
      'test'
      'prod'
    ])
    param environmentName string = 'dev'
    

    Observe que você está limitando o valor do parâmetro para environmentName o parâmetro a apenas dev, teste prod. Se mais ambientes forem adicionados no futuro, você precisará atualizar essa lista.

  2. Salve as alterações no arquivo.

Limitar comprimentos de entrada

Seu solutionName parâmetro é usado para gerar os nomes dos recursos. Você deseja impor um comprimento mínimo de 5 caracteres e um comprimento máximo de 30 caracteres.

  1. No arquivo main.bicep no Visual Studio Code, localize o solutionName parâmetro. Adicione @minLength e @maxLength decoradores por baixo do @description decorador. Depois de terminar, o parâmetro deve ser semelhante a este exemplo:

    @description('The unique name of the solution. This is used to ensure that resource names are unique.')
    @minLength(5)
    @maxLength(30)
    param solutionName string = 'toyhr${uniqueString(resourceGroup().id)}'
    
  2. Salve as alterações no arquivo.

Valores-limite numéricos

Em seguida, você garantirá que o appServicePlanInstanceCount parâmetro permita apenas valores entre 1 e 10.

  1. No arquivo main.bicep no Visual Studio Code, localize o appServicePlanInstanceCount parâmetro. Adicione @minValue e @maxValue decoradores por baixo do @description decorador. Depois de terminar, o parâmetro deve ser semelhante a este exemplo:

    @description('The number of App Service plan instances.')
    @minValue(1)
    @maxValue(10)
    param appServicePlanInstanceCount int = 1
    
  2. Salve as alterações no arquivo.

Verifique seu arquivo Bicep

Depois de concluir todas as alterações anteriores, o arquivo Bicep deve ter esta aparência:

@description('The name of the environment. This must be dev, test, or prod.')
@allowed([
  'dev'
  'test'
  'prod'
])
param environmentName string = 'dev'

@description('The unique name of the solution. This is used to ensure that resource names are unique.')
@minLength(5)
@maxLength(30)
param solutionName string = 'toyhr${uniqueString(resourceGroup().id)}'

@description('The number of App Service plan instances.')
@minValue(1)
@maxValue(10)
param appServicePlanInstanceCount int = 1

@description('The name and tier of the App Service plan SKU.')
param appServicePlanSku object = {
  name: 'F1'
  tier: 'Free'
}

@description('The Azure region into which the resources should be deployed.')
param location string = 'eastus'

var appServicePlanName = '${environmentName}-${solutionName}-plan'
var appServiceAppName = '${environmentName}-${solutionName}-app'

resource appServicePlan 'Microsoft.Web/serverfarms@2024-04-01' = {
  name: appServicePlanName
  location: location
  sku: {
    name: appServicePlanSku.name
    tier: appServicePlanSku.tier
    capacity: appServicePlanInstanceCount
  }
}

resource appServiceApp 'Microsoft.Web/sites@2024-04-01' = {
  name: appServiceAppName
  location: location
  properties: {
    serverFarmId: appServicePlan.id
    httpsOnly: true
  }
}

Caso contrário, copie o exemplo ou ajuste o modelo para corresponder ao exemplo.

Implantar o modelo Bicep 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 .

  1. No menu Terminal, selecione New Terminal (Novo Terminal). A janela do terminal geralmente abre na metade inferior da tela.

  2. 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.

    Captura de tela da janela do terminal do Visual Studio Code, com a opção bash mostrada.

    Se um shell diferente de bash aparecer, selecione a seta da lista de opções do shell e, em seguida, selecione Git Bash.

    Captura de ecrã da janela do terminal do Visual Studio Code, com o menu do shell do terminal mostrado e

  3. 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

  1. No terminal do Visual Studio Code, entre no Azure executando o seguinte comando:

    az login
    
  2. 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.

  3. 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
    
  4. 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"
    

Implantar o modelo no Azure usando a CLI do Azure

Execute o código a seguir do terminal no Visual Studio Code para implantar o modelo Bicep no Azure. Não é necessário especificar os valores dos parâmetros porque eles têm valores padrão especificados. Esse processo pode levar um ou dois minutos para ser concluído e, em seguida, você verá uma implantação bem-sucedida.

az deployment group create --name main --template-file main.bicep

Verá Running... no terminal.

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.

  1. No menu Terminal, selecione New Terminal (Novo Terminal). A janela do terminal geralmente abre na metade inferior da tela.

  2. 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.

    Captura de ecrã da janela do terminal do Visual Studio Code, com a opção pwsh exibida na lista suspensa do shell.

    Se um shell diferente de pwsh ou powershell aparecer, selecione a seta suspensa do shell e depois selecione PowerShell.

    Screenshot da janela do terminal do Visual Studio Code, com o menu do shell mostrado e o PowerShell selecionado.

  3. 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

  1. No terminal do Visual Studio Code, entre no Azure executando o seguinte comando:

    Connect-AzAccount
    
  2. No browser que se abre, inicie sessão na sua conta do Azure.

  3. 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.

  4. Defina a assinatura padrão para todos os comandos do Azure PowerShell executados nesta sessão.

    Set-AzContext -SubscriptionId {Your subscription ID}
    

Implantar o modelo no Azure usando o PowerShell

Implante o modelo no Azure usando o seguinte comando do Azure PowerShell no terminal. Não é necessário especificar os valores dos parâmetros porque eles têm valores padrão especificados. Esse processo pode levar um ou dois minutos para ser concluído e, em seguida, você verá uma implantação bem-sucedida.

New-AzResourceGroupDeployment -Name main -TemplateFile main.bicep

Verifique a sua implementação

  1. Vai ao portal Azure e certifica-te de que estás na subscrição correta.

  2. No painel esquerdo, selecione Grupos de recursos.

  3. Selecione o nome do seu grupo de recursos.

  4. Em Visão geral, você pode ver que uma implantação foi bem-sucedida.

    Captura de tela da interface do portal do Azure para a visão geral do grupo de recursos, com a seção de implantações mostrando que uma foi bem-sucedida.

  5. Selecione 1 Êxito para ver os detalhes da implantação.

    Captura de ecrã da interface do portal do Azure para as implementações, com uma implementação listada e um estado bem-sucedido.

  6. Selecione a implantação chamada principal para ver quais recursos foram implantados e, em seguida, selecione Detalhes da implantação para expandi-la. Nesse caso, há um plano e um aplicativo do Serviço de Aplicativo.

    Captura de ecrã da interface do portal do Azure para a implementação específica, com um plano e aplicação do Serviço de Aplicação listados.

  7. No menu à esquerda, selecione Entradas.

    Captura de ecrã da interface do portal do Azure para a implementação específica, com o item de menu 'Entradas' realçado.

  8. Observe que os parâmetros e seus valores estão listados.

    Captura de tela da interface do portal do Azure para a implantação específica mostrando os valores de parâmetro.

  9. Deixe a página aberta no seu browser. Vai verificar as implementações novamente mais tarde.