Exercício – Configurar seu ambiente do Azure DevOps
Nesta unidade, verifique se sua organização do Azure DevOps está configurada para concluir o restante deste módulo. Você também cria os ambientes do Serviço de Aplicativo do Azure aos 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 do Azure DevOps para este módulo.
- No Azure Boards, mova o item de trabalho deste módulo para a coluna Doing.
- Verifique se o projeto está 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 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. Você pode começar a usar o Azure gratuitamente.
Embora você não precise de uma assinatura do Azure para trabalhar com o Azure DevOps, este exercício usa o Azure DevOps para implantar recursos do Azure em sua assinatura do Azure. Para simplificar o processo, use a mesma conta da Microsoft para entrar em sua assinatura do Azure e em sua organização do Azure DevOps.
Importante
Se você entrar com contas diferentes, adicione um usuário à sua organização de DevOps na conta da Microsoft que você usa para entrar 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. Use a conta da Microsoft que você usa para entrar em sua assinatura do Azure.
Obter o projeto do Azure DevOps
Verifique se a sua organização do Azure DevOps está pronta para concluir o restante deste módulo. Para fazer isso, execute um modelo que cria um projeto no Azure DevOps.
Os módulos neste roteiro de aprendizagem formam uma progressão à medida que você segue a equipe web da Tailspin por meio de sua jornada de DevOps. Para fins de aprendizado, cada módulo tem seu próprio projeto do Azure DevOps.
Executar o modelo
Execute um modelo que configura sua organização do Azure DevOps.
Obtenha e execute o projeto ADOGenerator no Visual Studio ou o IDE de sua escolha.
Quando solicitado a inserir o número do modelo na lista de modelos, insira38 para automatizar implantações do Azure Function com o Azure Pipelines e pressione Enter.
Escolha seu método de autenticação. Você pode configurar e usar um PAT (Token de Acesso Pessoal) ou usar o logon do dispositivo.
Observação
Se você configurar um PAT, certifique-se de autorizar os escopos necessários. Para este módulo, você pode usar o acesso completo, mas em uma situação real, você deve conceder apenas os escopos necessários.
Insira o nome da sua organização do Azure DevOps e pressione Enter.
Se solicitado, insira o PAT do Azure DevOps e pressione Enter.
Insira um nome de projeto como Space Game – Web – Azure Functions e pressione Enter.
Depois que o projeto for criado, acesse sua organização do Azure DevOps no navegador (em
https://dev.azure.com/<your-organization-name>/
) e selecione o projeto.
Criar um fork do repositório
Se você ainda não fez isso, crie um fork do repositório mslearn-tailspin-spacegame-web-azure-functions.
No GitHub, acesse o repositório mslearn-tailspin-spacegame-web-azure-functions .
Selecione Fork no canto superior direito da tela.
Selecione sua conta do GitHub como Proprietário e selecione Criar bifurcação.
Importante
A página Limpar seu ambiente do Azure DevOps 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 você não fique sem minutos de compilação gratuitos.
Definir a visibilidade do projeto
Inicialmente, o fork do repositório Space Game no GitHub é definido como público, ao passo que o projeto criado pelo modelo do Azure DevOps é 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ê escolhe compartilhá-lo. Da mesma forma, no Azure DevOps, os projetos públicos fornecem acesso somente leitura a usuários não autenticados, enquanto projetos privados exigem que os usuários tenham 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, em seus projetos pessoais, você precisa determinar a visibilidade e o acesso que deseja permitir às outras pessoas. Por exemplo, se o projeto for de código aberto, você poderá optar por tornar o repositório GitHub e o projeto do Azure DevOps públicos. Se o projeto for proprietário, normalmente, você tornará o repositório GitHub e o projeto do Azure DevOps privados.
Mais adiante você poderá se interessar pelos seguintes recursos para determinar qual opção é melhor para seu projeto:
- Usar projetos públicos e privados
- Altere a visibilidade do projeto para pública ou privada
- Definir a visibilidade do repositório
Atribuir um item de trabalho e movê-lo para o estado Em andamento
Aqui, você atribui um item de trabalho a si mesmo no Azure Boards e define o estado do item de trabalho como Doing. 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 que você usará para 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 Boards e selecione Boards no menu.
Azure DevOps mostrando a localização do menu Boards.
Abra a API Refatorar placar de líderes como um item de trabalho do Azure Function selecionando o título. Atribua esse item de trabalho a si mesmo e, em seguida, selecione Salvar &Fechar.
Selecione a seta para baixo na parte inferior do cartão e selecione Fazendo ou selecione o cartão e arraste-o para a coluna Fazendo.
O item de trabalho é movido da coluna To Do para a coluna Doing .
No final deste módulo, mova o cartão para a coluna Concluído após concluir a tarefa.
Criar o Serviço de Aplicativo do Azure e os ambientes do Azure Functions
Aqui, você cria o Serviço de Aplicativo e o aplicativo do 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ê criou 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 realizar tarefas básicas, a criação de componentes como o Serviço de Aplicativo pode ser entediante.
Neste módulo, você usará a CLI do Azure para abrir uma instância do Serviço de Aplicativo. Você pode acessar a CLI do Azure em um terminal ou por meio do Visual Studio Code. Usado a CLI do Azure do Azure Cloud Shell. Essa experiência de shell baseada em navegador é hospedada na nuvem. No Cloud Shell, a CLI do Azure está 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.
Criar o Cloud Shell por meio do portal do Azure
Entre 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 exige um recurso de Armazenamento do Azure para manter todos os arquivos que você criar no Cloud Shell. Ao abrir o Cloud Shell pela primeira vez, você precisará criar um grupo de recursos, uma conta de armazenamento e um compartilhamento de Arquivos do Azure. Essa configuração é usada automaticamente para todas as sessões futuras do Cloud Shell.
Selecionar uma região do Azure
Uma região é um ou mais datacenters do Azure em uma localização geográfica. Leste dos EUA, Oeste dos EUA e Norte da Europa são exemplos de regiões. Todos os recursos do Azure, incluindo uma instância do Serviço de Aplicativo, recebem 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
az account list-locations
comando para listar as regiões disponíveis em sua assinatura do Azure:az account list-locations \ --query "[].{Name: name, DisplayName: displayName}" \ --output table
Na coluna de saída
Name
, escolha uma região que esteja 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 que você escolheu.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, crie variáveis bash para tornar o processo de instalação mais conveniente e menos propenso a erros. Usar variáveis para cadeias de caracteres 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=$RANDOM
Crie três nomes globalmente exclusivos para o Serviço de Aplicativo, a Função do Azure e as contas de armazenamento. Esses comandos usam aspas duplas, que instruem o Bash a resolver as variáveis usando a 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 grupo de recursos e do 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 usa as configurações de rede padrão, para que seu site seja acessível pela 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. Posteriormente, você poderá 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. Esse plano é executado na camada Básica. O parâmetro--is-linux
especifica os trabalhadores do Linux (threads usados em eventos e agendamento de tarefas).Importante
Se o SKU B1 não estiver disponível em sua assinatura do Azure, escolha um plano diferente, como S1 (Standard).
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|8.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 comando a seguir
az functionapp create
para criar a instância do aplicativo do 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
Observe o nome do host do serviço em execução. Ele deve ser semelhante ao seguinte, mas com um número aleatório diferente. Você precisará do nome do host da Web 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
Observe o nome do host do serviço em execução. Ele deve ser semelhante ao seguinte, mas com um identificador de número aleatório diferente. Você precisará do nome do host do placar de líderes 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ê pode acessar facilmente mais tarde.
Como uma etapa opcional, abra um navegador e insira um nome de host para verificar se ele está em execução. A home page padrão é exibida.
Importante
A página Limpar 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. Execute 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 lançamento com o Azure Pipelines , você adicionou uma variável ao pipeline que armazena o nome do aplicativo Web no Serviço de Aplicativo. Aqui, faça o mesmo. Além disso, adicione o nome do seu aplicativo de placar 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 forem alterados, você poderá atualizar as variáveis e disparar o pipeline sem modificar a configuração.
Adicione um grupo de variáveis ao seu projeto.
Seu projeto Space Game - web - Azure Functions deve estar aberto no Azure DevOps.
No menu, selecione Pipelines e, 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 Release.
Em Variáveis, selecione Adicionar.
Para o nome da variável, insira WebAppName. Para 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 seu nome de host completo. 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 do seu exemplo de leaderboard, 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 próxima à parte superior da página, selecione Salvar para salvar o grupo de variáveis Versão no pipeline.
As variáveis em seu grupo de variáveis devem ser semelhantes:
Criar o ambiente de pico
Em módulos anteriores, você criou ambientes para ambientes de desenvolvimento, teste e preparo . Aqui, faça o mesmo. Desta vez, crie um ambiente chamado pico.
No menu Azure DevOps, em Pipelines, selecione Ambientes.
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
Verifique se você está conectado ao portal do Azure e ao Azure DevOps na mesma conta da Microsoft.
No Azure DevOps, Space Game – Web – projeto de pipeline do Azure Functions , abaixo do menu, selecione Configurações do Projeto. O painel de 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, em seguida, no painel Nova conexão de serviço , selecione Azure Resource Manager e selecione Avançar.
Na aba Nova conexão de serviço, selecione Principal de serviço (automático) e, em seguida, selecione Avançar.
No painel Nova conexão de serviço do Azure , selecione ou insira as seguintes configurações:
Campo Valor Nível de escopo Assinatura Subscrição Selecione sua Assinatura do Azure. Grupo de Recursos tailspin-space-game-rg Nome da conexão de serviço Gerenciador de Recursos – Tailspin – Jogo espacial Durante o processo, você pode ser solicitado a entrar em sua conta da Microsoft.
Verifique se a opção Conceder permissão de acesso a todos os pipelines está selecionada.
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 uma segunda vez.