Exercício - Configurar seu ambiente de DevOps do Azure
Nesta unidade, certifique-se de que sua organização do Azure DevOps esteja configurada para concluir o restante deste módulo. Você também cria os ambientes do Serviço de Aplicativo do Azure nos quais implanta.
Para atingir essas metas, execute estas tarefas:
- 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 não seja necessária uma subscrição do Azure para trabalhar com o Azure DevOps, este exercício utiliza o Azure DevOps para implantar recursos 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, adicione 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, execute 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.
Importante
O Gerador de Demonstração do Azure DevOps não é mais suportado, mas você ainda pode usá-lo para criar ambientes de demonstração. Atualmente, não há substituição, e seus recursos ou disponibilidade podem mudar no futuro.
Obtenha e execute o projeto ADOGenerator no Visual Studio ou no IDE de sua escolha.
Quando solicitado a Inserir o número do modelo na lista de modelos, digite 38 para Automatizar implantações do Azure Function com o Azure Pipelines e pressione Enter.
Escolha o seu método de autenticação. Você pode configurar e usar um Token de Acesso Pessoal (PAT) ou usar o login do dispositivo.
Observação
Se configurar um PAT, certifique-se de autorizar as permissões necessárias. Para este módulo, você pode usar o acesso total, mas em uma situação do mundo real, você deve conceder apenas os escopos necessários.
Insira o nome da organização do Azure DevOps e pressione Enter.
Se solicitado, insira seu PAT do Azure DevOps e pressione Enter.
Insira um nome de projeto, como Space Game - web - Azure Functions, e pressione Enter.
Depois que seu projeto for criado, vá para sua organização do Azure DevOps em seu navegador (em
https://dev.azure.com/<your-organization-name>/) e selecione o projeto.
Fazer fork do repositório
Se ainda não o fez, crie uma bifurcação do repositório mslearn-tailspin-spacegame-web-azure-functions .
No GitHub, vá para o repositório mslearn-tailspin-spacegame-web-azure-functions .
Selecione Forquilha no canto superior direito da tela.
Escolha sua conta do GitHub como Proprietário e, em seguida, selecione Criar bifurcação.
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
- Alterar a visibilidade do projeto para público ou privado
- Definindo a visibilidade do repositório
Atribuir um item de trabalho e movê-lo para o estado Em Progresso
Aqui, você atribui um item de trabalho a si mesmo nos Painéis do Azure e define 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, mova 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ê cria o Serviço de Aplicativo e o aplicativo Azure Functions necessários para implantar a nova versão do site e da API.
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. Usado Azure CLI 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, comece 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-locationspara listar as regiões disponíveis na sua assinatura do Azure:az account list-locations \ --query "[].{Name: name, DisplayName: displayName}" \ --output tableNa coluna
Namena saída, escolha uma região próxima a você. Por exemplo, escolhaeastasiaouwestus2.Execute
az configurepara definir sua região padrão. Substitua<REGION>pelo nome da região escolhida.az configure --defaults location=<REGION>Este exemplo define
westus2como a região padrão:az configure --defaults location=westus2
Criar variáveis Bash
Aqui, crie 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.
No Cloud Shell, gere um número aleatório, que você usa para criar nomes globalmente exclusivos para determinados serviços na próxima etapa.
resourceSuffix=$RANDOMCrie 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
Sua solução requer vários recursos do Azure para implantação, que você cria agora.
Observação
Este exercício utiliza as predefinições de rede, para que o seu site esteja 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 createpara criar um grupo de recursos usando o nome definido anteriormente:az group create --name $rgNameExecute o seguinte comando
az appservice plan createpara 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-linuxO parâmetro
--skuespecifica o plano B1. Este plano funciona na camada Básica. O parâmetro--is-linuxespecifica 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 createpara criar a instância do Serviço de Aplicativo:az webapp create \ --name $webName \ --resource-group $rgName \ --plan $planName \ --runtime "DOTNETCORE|8.0"O Azure Functions requer uma conta de armazenamento para implantação. Execute o seguinte comando
az storage account createpara criá-lo:az storage account create \ --name $storageName \ --resource-group $rgName \ --sku Standard_LRSExecute o seguinte comando
az functionapp createpara 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 listpara 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 tableAnote o nome do host para o serviço em execução. Deve ser semelhante ao seguinte, mas com um número aleatório diferente. Vai precisar do nome do anfitrião web mais tarde quando verificar o seu trabalho.
HostName State ---------------------------------------------- ------- tailspin-space-game-web-4692.azurewebsites.net RunningExecute o seguinte comando
az functionapp listpara 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 tableAnote o nome do host para o serviço em execução. Deve ser semelhante ao seguinte, mas com um identificador de número aleatório 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 RunningCopie 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
Aqui, você adiciona uma variável ao seu pipeline que armazena o nome do seu aplicativo Web no Serviço de Aplicativo. Além disso, adicione o nome do seu aplicativo de classificação à 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.
Adicione um grupo de variáveis 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, faça o mesmo. Desta vez, crie 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ê cria 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-espaço-jogo-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.