Adicione suporte a CLI para desenvolvedores do Azure à sua aplicação usando código no diretório da sua aplicação

A CLI do Azure Developer (azd) fornece dois fluxos de trabalho diferentes para inicializar um modelo a usar com a sua aplicação, que incluem:

  • Use código no diretório atual: Esta abordagem analisa a sua aplicação e gera automaticamente a infraestrutura suportada e os recursos de configuração.
  • Selecione um modelo: Esta abordagem permite-lhe integrar um modelo existente com a sua aplicação, ou usar um modelo existente como ponto de partida para uma nova aplicação.

Estas duas abordagens são analisadas no documento Descrição geral da criação de modelos do Azure Developer CLI.

Neste artigo, aprende como adicionar suporte para o Azure Developer CLI (azd) à sua aplicação através da abordagem Use code na diretório atual. Visite o Adicionar azd suporte à sua aplicação usando um documento modelo existente para mais informações sobre a abordagem alternativa. Pode também consultar a Formação - criar e implementar azd modelos para mais informações sobre a criação de azd modelos.

Usar código no diretório atual

  1. Pode seguir os passos seguintes usando o seu próprio projeto. No entanto, se preferir acompanhar usando uma aplicação de exemplo, clone o seguinte repositório inicial para um diretório vazio no seu computador:

    git clone https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
    
  2. Abra um terminal para o diretório raiz do projeto.

  3. Executa o azd init comando para inicializar o modelo.

    azd init
    
  4. Quando solicitado, selecione a opção Usar código no diretório atual. azdanalisa o projeto e fornece um resumo dos serviços detetados e dos recursos recomendados para alojamento Azure.

  5. Selecione Confirmar e continue a inicializar a minha aplicação. azd Gera os seguintes ativos no diretório raiz do projeto:

    • Um azure.yaml ficheiro com definições de serviço apropriadas.
    • Uma infra pasta com ficheiros infrastructure-as-code para provisionar e implementar o projeto no Azure.
    • Uma .azure pasta com variáveis de ambiente definidas num .env ficheiro.

    Mais detalhes sobre este processo de deteção e geração são fornecidos mais adiante no artigo.

  6. Os ficheiros gerados funcionam tal como estão na aplicação de exemplo fornecida e também poderão funcionar com as suas próprias aplicações. Se necessário, os ficheiros gerados podem ser modificados para se adequarem às suas necessidades. Por exemplo, pode ser necessário modificar ainda mais os ficheiros infrastructure-as-code na infra pasta se a sua aplicação depender de recursos do Azure para além daqueles identificados por azd.

  7. Executa o azd up comando para provisionar e implementar a tua aplicação no Azure.

    azd up
    
  8. Quando solicitado, selecione a subscrição e o local desejados para iniciar o processo de provisionamento e implementação.

  9. Quando o processo terminar, clique na ligação na saída azd para abrir a aplicação no navegador.

Explore os passos de inicialização

Quando seleciona o fluxo de trabalho Usar código no diretório atual, o comando azd init analisa o seu projeto e gera código automaticamente com base no que encontra. As secções abaixo explicam os detalhes de como este processo funciona e quais as tecnologias atualmente suportadas.

Deteção

O azd init comando deteta ficheiros de projeto para línguas suportadas localizados no diretório e subdiretórios do projeto. azd Também analisa dependências de pacotes para recolher informações sobre os frameworks web ou bases de dados que a sua aplicação utiliza. Se necessário, pode adicionar ou editar manualmente os componentes detetados conforme apresentado no prompt de resumo de confirmação.

A lógica de deteção atual é a seguinte:

  • Idiomas suportados:
    • Python
    • JavaScript/TypeScript
    • .NET
    • Java
  • Bases de dados suportadas:
    • MongoDB
    • PostgreSQL
  • Para Python e JavaScript/TypeScript, os frameworks web e bases de dados são automaticamente detetados.
  • Quando um projeto JavaScript/TypeScript utiliza um framework web front-end (ou do lado do cliente), é classificado como um serviço front-end. Se o seu serviço utiliza uma framework web de front-end que ainda não foi detetada, pode selecionar JQuery para fornecer uma classificação e um comportamento equivalentes ao serviço de front-end.

Generation

Depois de confirmar os componentes detetados, azd init gera os ficheiros de infraestrutura como código necessários para implementar a sua aplicação no Azure.

A lógica de geração é a seguinte:

  • Hosts suportados:
    • Azure Container Apps.
  • Para bases de dados, o mapeamento suportado entre tecnologia e serviço de base de dados utilizado:
    • MongoDB: Azure CosmosDB API for MongoDB
    • PostgreSQL: Base de Dados do Azure para PostgreSQL – servidor flexível
    • Redis: suplemento Redis para Azure Container Apps
  • Os serviços que utilizam bases de dados terão variáveis de ambiente que fornecem ligação à base de dados pré-configuradas por defeito.
  • Quando são detetados serviços front-end e back-end, a configuração do CORS no host Azure para serviços back-end será atualizada para permitir o domínio de alojamento predefinido dos serviços front-end. Isto pode ser modificado ou removido conforme necessário nos ficheiros de configuração Infrastructure as Code.

Adicionar suporte para containers de desenvolvimento

Também pode tornar o seu template compatível com contentores de desenvolvimento e Codespaces. Um contentor de desenvolvimento permite-lhe usar um contentor como um ambiente de desenvolvimento completo. Pode ser usado para executar uma aplicação, separar ferramentas, bibliotecas ou tempos de execução necessários para trabalhar com uma base de código, e para auxiliar na integração e testes contínuos. Os contentores de desenvolvimento podem ser executados local ou remotamente, numa nuvem privada ou pública. (Fonte: https://containers.dev/)

Para adicionar suporte a containers de desenvolvimento:

  1. Cria uma pasta .devcontainer na raiz do teu projeto.

  2. Cria um devcontainer.json ficheiro dentro da .devcontainer pasta com as configurações desejadas. O azd modelo inicial fornece um ficheiro de exemplo devcontainer.json que pode copiar para o seu projeto e modificar conforme necessário.

Leia mais sobre como trabalhar com containers de desenvolvimento na documentação do Visual Studio Code.

Adicionar suporte para um pipeline CI/CD

Também pode adicionar suporte para CI/CD no seu template usando ações do GitHub ou Azure DevOps seguindo os seguintes passos:

  1. Adicione uma .github pasta para ações do GitHub ou uma .ado pasta para Azure DevOps à raiz do seu projeto.

  2. Adiciona um ficheiro de workflow à nova pasta. O azd modelo inicial fornece um ficheiro de workflow de exemplo do GitHub Actions e um ficheiro de exemplo do Azure DevOps Pipelines para cada plataforma. Pode copiar estes ficheiros para o seu projeto e modificá-los conforme necessário.

  3. Também poderá precisar de atualizar o main.parameters.json ficheiro na sua infra pasta com as variáveis de ambiente necessárias para o seu fluxo de trabalho funcionar.