Exercício - Configurar seu ambiente de DevOps do Azure
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 Doing.
- 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 o utilizador não precise de uma subscrição do Azure para trabalhar com o Azure DevOps, este exercício está a utilizar o Azure DevOps para implantar nos recursos do Azure na sua subscrição 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, insere um nome de projeto, como Space Game - web - Azure Functions, e depois, em Selecionar Organização, seleciona a organização que usas para a tua subscrição do Azure.
Na próxima seção, selecione Sim, quero bifurcar este repositórioe, em seguida, selecione Autorizar.
Se aparecer 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 Space Game site. O modelo usa o seu fork existente.
Selecione Criar projeto.
O modelo leva alguns minutos para ser executado.
Quando o projeto for provisionado com êxito, selecione Navegar para o projeto para acessar o seu projeto no Azure DevOps.
Importante
A página Limpar o seu ambiente de DevOps do Azure deste módulo contém etapas importantes que deve concluir, mesmo que não finalize o módulo. A limpeza ajuda a garantir que não fiques sem minutos de construçã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: torne seu projeto privado público
- Definindo a visibilidade do repositório
Atribuir um item de trabalho e movê-lo para o estado Em Progresso
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, tu e a tua equipa 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, aceda à categoria Painéis e, em seguida, selecione Painéis no menu.
Abra a API do Refactor leaderboard como função do Azure e abra o item de trabalho 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 Fazerou selecione o cartão e arraste-o para a coluna Fazer.
O item de trabalho é movido da coluna Fazer para a 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 lançamento com o Azure Pipelines Learn, você configurou o App Service através 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. Você pode acessar a CLI do Azure de um terminal ou por meio do Visual Studio Code. Aqui, acessaremos a CLI do Azure a partir do Azure Cloud Shell. Essa experiência de shell baseada em navegador é hospedada na nuvem. No Cloud Shell, a CLI do Azure é configurada para uso com sua assinatura do Azure.
Importante
Você precisa de sua própria assinatura 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.
Observação
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. O Leste dos EUA, o Oeste dos EUA e o Norte da Europa são 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 comando
az account list-locations
para listar as regiões disponíveis na sua assinatura do Azure:az account list-locations \ --query "[].{Name: name, DisplayName: displayName}" \ --output table
Na coluna
Name
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.
Observação
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 comando
az group create
para criar um grupo de recursos usando o nome definido anteriormente:az group create --name $rgName
Execute o seguinte comando
az appservice plan create
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 parâmetro
--sku
especifica o plano B1. Este plano funciona na camada Básica. O parâmetro--is-linux
especifica os trabalhadores do Linux (threads usados em eventos e agendamento de tarefas).Importante
Se a SKU B1 não estiver disponível na sua assinatura do Azure, escolha um plano diferente, como S1 (Padrão).
Execute o seguinte comando
az webapp create
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 comando
az storage account create
para criá-lo:az storage account create \ --name $storageName \ --resource-group $rgName \ --sku Standard_LRS
Execute o seguinte comando
az functionapp create
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 comando
az webapp list
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 anfitrião web mais tarde quando verificar o seu trabalho.
HostName State ---------------------------------------------- ------- tailspin-space-game-web-4692.azurewebsites.net Running
Execute o seguinte comando
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. Vai precisar do nome do host da tabela de classificação mais tarde, quando for verificar o 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 Limpeza do seu ambiente do Azure DevOps neste módulo contém etapas 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 executar as etapas 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 pipeline que armazena o nome do seu aplicativo Web no Serviço de Aplicativo. Aqui, você fará o mesmo. Além disso, adicionarás o nome da tua aplicação de classificação 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.
O projeto Space Game - web - Azure Functions deve estar aberto no Azure DevOps.
No menu, selecione Pipelinese, em seguida, em Pipelines selecione Biblioteca. O painel Biblioteca é exibido.
Na barra de comandos ou no meio do painel, selecione grupo Variável. A página Novo grupo de variáveis é exibida.
Para o nome do grupo de variáveis, insira Lançamento.
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 instância do nome de 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 Guardar para guardar o grupo de variáveis de 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 de desenvolvimento para , de teste para e de preparação para . Aqui, você fará o mesmo. Desta vez, você criará um ambiente chamado spike.
No menu Azure DevOps, em Pipelines, selecione Environments.
Selecione Criar ambiente. O painel Novo ambiente é exibido.
Para 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 tanto no portal do Azure como no Azure DevOps, ambas na mesma conta Microsoft.
No Azure DevOps, no projeto de pipeline Space Game - web - Azure Functions, 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 depois, no painel Nova conexão de serviço, selecione Azure Resource Managere, em seguida, selecione Avançar.
No painel Nova ligação de serviço, selecione principal de serviço (automático)e depois selecione Seguinte.
No painel de conexão de serviço do Novo Azure , selecione ou insira as seguintes configurações:
Campo Valor Nível de âmbito Assinatura Subscrição Selecione sua assinatura do Azure Grupo de Recursos tailspin-space-game-rg Nome da conexão de serviço Resource Manager - Tailspin - Jogo Espacial Durante o processo, poderá ser-lhe pedido para iniciar sessão na sua conta Microsoft.
Certifique-se de que Conceder permissão de acesso a todos os pipelines está selecionado.
Selecione Salvar.
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.