Exercício – configurar o ambiente do Azure DevOps
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
Execute um modelo que configure sua organização do Azure DevOps:
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.
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.
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.
Selecione Criar projeto.
O modelo leva alguns minutos para ser executado.
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:
- Utilizar projetos privados e públicos
- Guia de início rápido: tornar seu projeto privado público
- Setting repository visibility (Definir a visibilidade de repositórios)
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.
No Azure DevOps, navegue até a categoria Painéis e selecione Painéis no menu.
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.
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.
O item de trabalho é movido da coluna Tarefas Pendentes para a coluna Tarefas .
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
Inicie sessão no portal do Azure.
Nos controles globais no cabeçalho da página, selecione Cloud Shell.
Um terminal é aberto e se conecta ao Azure Cloud Shell.
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.
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
Name
Na coluna na saída, escolha uma região próxima a você. Por exemplo, escolhaeastasia
ouwestus2
.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.
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
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}"
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.
Execute o seguinte
az group create
comando para criar um grupo de recursos usando o nome definido anteriormente:az group create --name $rgName
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).
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"
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
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>
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
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
Copie esses dois nomes de host para um local que você possa acessar facilmente mais tarde.
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.
Seu projeto Space Game - Web - Azure Functions deve estar aberto no Azure DevOps.
No menu, selecione Pipelines e, em Pipelines, selecione Library. O painel Biblioteca é exibido.
Na barra de comandos ou no meio do painel, selecione Grupo de variáveis. A página Novo grupo de variáveis é exibida.
Para o nome do grupo de variáveis, insira Release.
Em Variáveis, selecione Adicionar.
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.
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.
Adicione uma variável final chamada ResourceGroupName com o valor tailspin-space-game-rg.
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:
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.
No menu Azure DevOps, em Pipelines, selecione Ambientes.
Selecione Criar ambiente. O painel Novo ambiente é exibido.
Em Nome, insira spike.
Deixe os campos restantes em seus valores padrão.
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.
No Azure DevOps, Space Game - web - Azure Functions pipeline project, abaixo do menu, selecione Configurações do projeto. O painel Detalhes do projeto é exibido.
No menu, em Pipelines, selecione Conexões de serviço.
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.
No painel Nova conexão de serviço, selecione Entidade de serviço (automática) e, em seguida, selecione Avançar.
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.
Verifique se a opção Conceder permissão de acesso a todos os pipelines está selecionada.
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.