Exercício – configurar o ambiente do Azure DevOps

Concluído

Nesta unidade, você garantirá que sua organização do Azure DevOps esteja configurada para concluir o restante deste módulo. Você também criará os ambientes do Serviço de Aplicativo do Azure nos quais implantará.

Para atingir esses objetivos, você:

  • Adicione um usuário para garantir que o Azure DevOps possa se conectar à sua assinatura do Azure.
  • Configure um projeto de DevOps do Azure para este módulo.
  • Nos Painéis do Azure, mova o item de trabalho deste módulo para a coluna Fazendo .
  • Certifique-se de que seu projeto esteja configurado localmente para que você possa enviar as alterações para o pipeline.
  • Crie o Serviço de Aplicativo do Azure e o aplicativo Azure Functions usando a CLI do Azure no Azure Cloud Shell.
  • Crie variáveis de pipeline que definem os nomes do seu Serviço de Aplicativo e da instância do Azure Functions.
  • Crie uma conexão de serviço que permita que o Azure Pipelines acesse com segurança sua assinatura do Azure.

Adicionar um usuário ao Azure DevOps

Para concluir este módulo, você precisa de sua própria assinatura do Azure. Pode começar a utilizar o Azure gratuitamente.

Embora você não precise de uma assinatura do Azure para trabalhar com o Azure DevOps, este exercício está usando o Azure DevOps para implantar nos recursos do Azure em sua assinatura do Azure. Para simplificar o processo, use a mesma conta da Microsoft para entrar na sua assinatura do Azure e na sua organização do Azure DevOps.

Importante

Se iniciar sessão com contas diferentes, deve adicionar um utilizador à sua organização de DevOps na conta Microsoft que utiliza para iniciar sessão no Azure. Para obter mais informações, consulte Adicionar usuários à sua organização ou projeto. Ao adicionar o usuário, escolha o nível de acesso Básico .

Em seguida, saia do Azure DevOps e entre com a nova conta de usuário. Utilize a conta Microsoft que utiliza para iniciar sessão na sua subscrição do Azure.

Obtenha o projeto Azure DevOps

Certifique-se de que sua organização do Azure DevOps esteja configurada para concluir o restante deste módulo. Para fazer isso, você executará um modelo que cria um projeto no Azure DevOps.

Os módulos neste caminho de aprendizagem formam uma progressão à medida que você segue a equipe da web do Tailspin em sua jornada de DevOps. Para fins de aprendizagem, cada módulo tem seu próprio projeto Azure DevOps.

Executar o modelo

  1. Execute um modelo que configure sua organização do Azure DevOps:

  2. No site do Gerador de Demonstração do Azure DevOps, selecione Entrar. Se solicitado, aceite os termos de uso. A página Criar novo projeto é exibida.

  3. Na página Criar Novo Projeto, insira um nome de projeto, como Jogo Espacial - Web - Azure Functions e, em seguida, para Selecionar Organização, selecione a organização que você usa para sua assinatura do Azure.

    Uma captura de tela do Gerador de Demonstração do Azure DevOps mostrando como criar o projeto.

  4. Na próxima seção, selecione Sim, quero bifurcar este repositório e, em seguida, selecione Autorizar.

    Se for apresentada uma janela, autorize o acesso à sua conta do GitHub.

    Importante

    A ativação desta opção de bifurcação é necessária para que o modelo se conecte ao seu repositório GitHub. Selecione-o mesmo que você já tenha bifurcado o projeto do site Space Game . O modelo utiliza o seu fork existente.

  5. Selecione Criar projeto.

    O modelo leva alguns minutos para ser executado.

  6. Quando o projeto for provisionado com êxito, selecione Navegar até o projeto para ir para seu projeto no Azure DevOps.

Importante

A página Limpar seu ambiente de DevOps do Azure neste módulo contém etapas importantes que você deve concluir, mesmo que não conclua este módulo. A limpeza ajuda a garantir que não fica sem minutos de compilação gratuitos.

Defina a visibilidade do seu projeto

Inicialmente, sua bifurcação do repositório do Jogo Espacial no GitHub é definida como pública, enquanto o projeto criado pelo modelo de DevOps do Azure é definido como privado. Um repositório público no GitHub pode ser acessado por qualquer pessoa, enquanto um repositório privado só é acessível para você e para as pessoas com quem você escolher compartilhá-lo. Da mesma forma, no Azure DevOps, os projetos públicos fornecem acesso somente leitura a usuários não autenticados, enquanto os projetos privados exigem que os usuários recebam acesso e sejam autenticados para acessar os serviços.

No momento, não é necessário modificar nenhuma dessas configurações para os fins deste módulo. No entanto, para seus projetos pessoais, você deve determinar a visibilidade e o acesso que deseja conceder a outras pessoas. Por exemplo, se seu projeto for de código aberto, você pode optar por tornar público o repositório do GitHub e o projeto do Azure DevOps. Se seu projeto for proprietário, você normalmente tornará o repositório do GitHub e o projeto do Azure DevOps privados.

Mais tarde, você pode achar os seguintes recursos úteis para determinar qual opção é melhor para o seu projeto:

Atribuir um item de trabalho e movê-lo para o estado Fazendo

Aqui, você atribuirá um item de trabalho a si mesmo nos Painéis do Azure e definirá o estado do item de trabalho como Fazendo. Na prática, você e sua equipe criariam itens de trabalho no início de cada sprint, ou iteração de trabalho.

Este exercício cria uma lista de verificação a partir da qual trabalhar. Ele dá a outros membros da equipe visibilidade sobre o que você está trabalhando e quanto trabalho resta. O item de trabalho também ajuda a impor limites de WIP (trabalho em andamento) para que a equipe não assuma muito trabalho ao mesmo tempo.

  1. No Azure DevOps, navegue até a categoria Painéis e selecione Painéis no menu.

    Azure DevOps mostrando o local do menu Painéis.

  2. Abra a API da tabela de líderes Refatorar como um item de trabalho do Azure Function selecionando o título. Atribua este item de trabalho a si mesmo e selecione Salvar & Fechar.

  3. Selecione a seta para baixo na parte inferior do cartão e selecione Fazer ou selecione o cartão e arraste-o para a coluna Fazer.

    Captura de ecrã do cartão de item de trabalho realçando a localização da seta para baixo.

  4. O item de trabalho é movido da coluna Tarefas Pendentes para a coluna Tarefas .

    Captura de ecrã dos Painéis do Azure a realçar o cartão de item de trabalho na coluna Fazer.

No final deste módulo, você moverá o cartão para a coluna Concluído depois de concluir a tarefa.

Criar os ambientes do Serviço de Aplicativo do Azure e do Azure Functions

Aqui, você criará o Serviço de Aplicativo e o aplicativo Azure Functions necessários para implantar a nova versão do site e da API.

No módulo Criar um pipeline de liberação com o Azure Pipelines Learn, você trouxe o Serviço de Aplicativo por meio do portal do Azure. Embora o portal seja uma ótima maneira de explorar o que está disponível no Azure ou executar tarefas básicas, trazer componentes como o Serviço de Aplicativo pode ser tedioso.

Neste módulo, você usa a CLI do Azure para exibir uma instância do Serviço de Aplicativo. Pode aceder à CLI do Azure a partir de um terminal ou do Visual Studio Code. Aqui, acessaremos a CLI do Azure a partir do Azure Cloud Shell. Esta experiência de shell com base no browser é alojada na cloud. No Cloud Shell, a CLI do Azure é configurada para utilização com a sua subscrição do Azure.

Importante

Precisa da sua subscrição do Azure para concluir os exercícios neste módulo.

Abrir o Cloud Shell através do portal do Azure

  1. Inicie sessão no portal do Azure.

  2. Nos controles globais no cabeçalho da página, selecione Cloud Shell.

    Uma captura de tela do portal do Azure mostrando o local do item de menu do Cloud Shell.

    Um terminal é aberto e se conecta ao Azure Cloud Shell.

  3. Se necessário, selecione Bash no menu do terminal.

    Nota

    O Cloud Shell requer um recurso de armazenamento do Azure para manter todos os arquivos criados no Cloud Shell. Ao abrir o Cloud Shell pela primeira vez, você será solicitado a criar um grupo de recursos, uma conta de armazenamento e um compartilhamento de Arquivos do Azure. Essa configuração é usada automaticamente para todas as futuras sessões do Cloud Shell.

Selecione uma região do Azure

Uma região é um ou mais datacenters do Azure dentro de uma localização geográfica. E.U.A. Leste, E.U.A. Oeste e Europa do Norte são alguns exemplos de regiões. Cada recurso do Azure, incluindo uma instância do Serviço de Aplicativo, recebe uma região.

Para facilitar a execução de comandos, vamos começar definindo uma região padrão. Depois de especificar a região padrão, os comandos inseridos usam essa região até especificar uma região diferente.

  1. No Cloud Shell, execute o seguinte az account list-locations comando para listar as regiões disponíveis na sua assinatura do Azure:

    az account list-locations \
      --query "[].{Name: name, DisplayName: displayName}" \
      --output table
    
  2. Name Na coluna na saída, escolha uma região próxima a você. Por exemplo, escolha eastasia ou westus2.

  3. Execute az configure para definir sua região padrão. Substitua <REGION> pelo nome da região escolhida.

    az configure --defaults location=<REGION>
    

    Este exemplo define westus2 como a região padrão:

    az configure --defaults location=westus2
    

Criar variáveis Bash

Aqui, você criará variáveis Bash para tornar o processo de configuração mais conveniente e menos propenso a erros. O uso de variáveis para cadeias de texto compartilhadas ajuda a evitar erros de digitação acidentais.

  1. A partir do Cloud Shell, gere um número aleatório, que usaremos para criar nomes globalmente exclusivos para determinados serviços na próxima etapa.

    resourceSuffix=$RANDOM
    
  2. Crie três nomes globalmente exclusivos para seu Serviço de Aplicativo, Função do Azure e contas de armazenamento. Esses comandos usam aspas duplas, que instruem Bash a resolver as variáveis usando sintaxe embutida.

    webName="tailspin-space-game-web-${resourceSuffix}"
    leaderboardName="tailspin-space-game-leaderboard-${resourceSuffix}"
    storageName="tailspinspacegame${resourceSuffix}"
    
  3. Crie mais duas variáveis Bash para armazenar os nomes do seu grupo de recursos e plano de serviço.

    rgName='tailspin-space-game-rg'
    planName='tailspin-space-game-asp'
    

Criar os recursos do Azure necessários

Nossa solução requer vários recursos do Azure para implantação, que criaremos agora.

Nota

Este exercício utiliza as predefinições de rede, para que o seu site seja acessível a partir da Internet. Na prática, você pode configurar uma rede virtual do Azure para colocar seu site em uma rede que somente você e sua equipe podem acessar. Mais tarde, você pode reconfigurar sua rede virtual para disponibilizar o site para seus usuários.

  1. Execute o seguinte az group create comando para criar um grupo de recursos usando o nome definido anteriormente:

    az group create --name $rgName
    
  2. Execute o seguinte az appservice plan create comando para criar um plano do Serviço de Aplicativo usando o nome definido na tarefa anterior:

    az appservice plan create \
      --name $planName \
      --resource-group $rgName \
      --sku B1 \
      --is-linux
    

    O --sku parâmetro especifica o plano B1. Este plano é executado na camada Básica. O --is-linux parâmetro especifica os trabalhadores do Linux (threads usados em eventos e agendamento de tarefas).

    Importante

    Se a SKU B1 não estiver disponível em sua assinatura do Azure, escolha um plano diferente, como S1 (Padrão).

  3. Execute o seguinte az webapp create comando para criar a instância do Serviço de Aplicativo:

    az webapp create \
      --name $webName \
      --resource-group $rgName \
      --plan $planName \
      --runtime "DOTNETCORE|6.0"
    
  4. O Azure Functions requer uma conta de armazenamento para implantação. Execute o seguinte az storage account create comando para criá-lo:

    az storage account create \
      --name $storageName \
      --resource-group $rgName \
      --sku Standard_LRS
    
  5. Execute o seguinte az functionapp create comando para criar a instância do aplicativo Azure Functions. Substitua o <region> pela sua região preferida.

    az functionapp create \
      --name $leaderboardName \
      --resource-group $rgName \
      --storage-account $storageName \
      --functions-version 4 \
      --consumption-plan-location <region>
    
  6. Execute o seguinte az webapp list comando para listar o nome do host e o estado da instância do Serviço de Aplicativo:

    az webapp list \
      --resource-group $rgName \
      --query "[].{hostName: defaultHostName, state: state}" \
      --output table
    

    Anote o nome do host para o serviço em execução. Deve ser semelhante ao seguinte, mas o identificador de número aleatório será diferente. Você precisará do nome do host mais tarde quando verificar seu trabalho.

    HostName                                        State
    ----------------------------------------------  -------
    tailspin-space-game-web-4692.azurewebsites.net  Running
    
  7. Execute o comando a seguir az functionapp list para listar o nome do host e o estado da instância do Azure Functions.

    az functionapp list \
      --resource-group $rgName \
      --query "[].{hostName: defaultHostName, state: state}" \
      --output table
    

    Anote o nome do host para o serviço em execução. Deve ser semelhante ao seguinte, mas o identificador de número aleatório será diferente. Você precisará do nome do host da tabela de classificação mais tarde quando verificar seu trabalho.

    HostName                                                State
    ------------------------------------------------------  -------
    tailspin-space-game-leaderboard-4692.azurewebsites.net  Running
    
  8. Copie esses dois nomes de host para um local que você possa acessar facilmente mais tarde.

  9. Como etapa opcional, abra um navegador e insira um nome de host para verificar se ele está em execução. A página inicial padrão é exibida.

Importante

A página Limpar o ambiente do Azure DevOps neste módulo contém passos de limpeza importantes. A limpeza ajuda a garantir que você não seja cobrado pelos recursos do Azure depois de concluir este módulo. Certifique-se de que executa os passos de limpeza, mesmo que não conclua este módulo.

Criar variáveis de pipeline no Azure Pipelines

No módulo Criar um pipeline de liberação com o Azure Pipelines , você adicionou uma variável ao seu pipeline que armazena o nome do seu aplicativo Web no Serviço de Aplicativo. Aqui, você fará o mesmo. Além disso, você adicionará o nome do seu aplicativo de tabela de líderes para a instância do Azure Functions.

Você pode codificar esses nomes em sua configuração de pipeline, mas se defini-los como variáveis, sua configuração será mais reutilizável. Além disso, se os nomes das instâncias mudarem, você poderá atualizar as variáveis e acionar o pipeline sem modificar a configuração.

Vamos adicionar um grupo variável ao seu projeto.

  1. Seu projeto Space Game - Web - Azure Functions deve estar aberto no Azure DevOps.

  2. No menu, selecione Pipelines e, em Pipelines, selecione Library. O painel Biblioteca é exibido.

    Captura de ecrã do menu Azure DevOps a realçar a opção Biblioteca em Pipelines.

  3. Na barra de comandos ou no meio do painel, selecione Grupo de variáveis. A página Novo grupo de variáveis é exibida.

  4. Para o nome do grupo de variáveis, insira Release.

  5. Em Variáveis, selecione Adicionar.

  6. Para o nome da variável, digite WebAppName. Para obter o valor, insira o nome da instância do Serviço de Aplicativo que foi criada para seu aplicativo Web, como tailspin-space-game-web-4692.

    Importante

    Defina o nome da instância do Serviço de Aplicativo, não o nome completo do host. Neste exercício, por exemplo, tailspin-space-game-web-4692 é a parte da instância do nome do host tailspin-space-game-web-4692.azurewebsites.net.

  7. Adicione outra variável chamada LeaderboardAppName com o valor da sua instância de placar de líderes, por exemplo, tailspin-space-game-leaderboard-4692.

  8. Adicione uma variável final chamada ResourceGroupName com o valor tailspin-space-game-rg.

  9. Na barra de comandos, na parte superior da página, selecione Salvar para salvar o grupo de variáveis Release no pipeline.

    As variáveis do seu grupo de variáveis devem ser semelhantes:

    Uma captura de tela dos Pipelines do Azure mostrando o grupo de variáveis. O grupo contém três variáveis.

Criar o ambiente de pico

Nos módulos anteriores, você criou ambientes para ambientes de desenvolvimento, teste e preparação . Aqui, você fará o mesmo. Desta vez, você criará um ambiente chamado spike.

  1. No menu Azure DevOps, em Pipelines, selecione Ambientes.

    Uma captura de tela do Azure Pipelines mostrando o local da opção de menu Ambientes.

  2. Selecione Criar ambiente. O painel Novo ambiente é exibido.

  3. Em Nome, insira spike.

  4. Deixe os campos restantes em seus valores padrão.

  5. Selecione Criar.

Criar uma conexão de serviço

Aqui, você criará uma conexão de serviço que permite que o Azure Pipelines acesse sua assinatura do Azure. O Azure Pipelines usa essa conexão de serviço para implantar o site no Serviço de Aplicativo. Você criou uma conexão de serviço semelhante no módulo anterior.

Importante

Certifique-se de que tem sessão iniciada no portal do Azure e no Azure DevOps na mesma conta Microsoft.

  1. No Azure DevOps, Space Game - web - Azure Functions pipeline project, abaixo do menu, selecione Configurações do projeto. O painel Detalhes do projeto é exibido.

  2. No menu, em Pipelines, selecione Conexões de serviço.

  3. Na página Conexões de serviço, selecione Nova conexão de serviço e, no painel Nova conexão de serviço, selecione Gerenciador de Recursos do Azure e selecione Avançar.

  4. No painel Nova conexão de serviço, selecione Entidade de serviço (automática) e, em seguida, selecione Avançar.

  5. No painel Nova conexão de serviço do Azure, selecione ou insira as seguintes configurações:

    Campo Value
    Nível de âmbito Subscrição
    Subscrição Selecione a sua subscrição do Azure
    Grupo de Recursos tailspin-espaço-jogo-rg
    Nome da conexão de serviço Gestor de Recursos - Tailspin - Jogo Espacial

    Durante o processo, poderá ser-lhe pedido para iniciar sessão na sua conta Microsoft.

  6. Verifique se a opção Conceder permissão de acesso a todos os pipelines está selecionada.

  7. Selecione Guardar.

O Azure DevOps executa uma conexão de teste para verificar se ele pode se conectar à sua assinatura do Azure. Se o Azure DevOps não puder se conectar, você terá a chance de entrar pela segunda vez.