Compartilhar via


Explorar o azd up fluxo de trabalho

A CLI do Desenvolvedor do Azure (azd) permite provisionar e implantar recursos de aplicativo no Azure com apenas um único comando usando azd up. Este guia fornece um detalhamento completo de azd up e mostra como os diferentes estágios desse fluxo de trabalho se correlacionam com a estrutura de um azd modelo.

Acompanhar usando um modelo

As seções à frente usam exemplos do hello-azd modelo para demonstrar vários azd conceitos e padrões. Você pode acompanhar inicializando o modelo em seu computador local:

azd init -t hello-azd

Para obter mais informações sobre como começar a usar azd e o modelo hello-azd, visite o artigo Guia de Início Rápido: Implantar um modelo da CLI do Desenvolvedor do Azure.

Conceitos essenciais

Ao trabalhar com um azd modelo, você pode provisionar e implantar seus recursos de aplicativo no Azure usando o azd up comando. Execute o comando na janela do terminal que está aberta na pasta do seu modelo.

azd up

azd up é projetado para que você possa executar repetidamente o comando à medida que desenvolve seu aplicativo e as novas alterações são implantadas incrementalmente. O comando inicia um fluxo de trabalho poderoso que essencialmente encapsula três estágios específicos:

  1. Empacotamento: prepara o código do aplicativo e as dependências para implantação.
  2. Provisionamento: cria e configura os recursos necessários do Azure exigidos pelo aplicativo usando arquivos de infraestrutura como código.
  3. Implantação: implanta o aplicativo empacotado nos recursos provisionados do Azure.

Você também pode executar cada um desses estágios individualmente usando seu respectivo comando, mas azd up fornece um wrapper de conveniência para simplificar o processo geral. Cada estágio desempenha um papel crítico na garantia de um processo de implantação automatizado e suave. Você pode influenciar os estágios de azd up fluxo de trabalho usando configurações no arquivo de modelo azure.yaml . As seções a seguir exploram cada estágio com mais detalhes.

O estágio de empacotamento

O estágio de empacotamento é a primeira etapa no azd up fluxo de trabalho. Durante este estágio:

  • O código do aplicativo está preparado para implantação. Dependendo da linguagem de programação com a qual o aplicativo de modelo foi criado, o empacotamento pode envolver a criação ou compilação do aplicativo, o agrupamento de dependências ou a criação de artefatos de implantação, como imagens do Docker.
  • A azd estrutura de modelo normalmente inclui uma src pasta em que o código do aplicativo reside. Criar scripts ou arquivos de configuração (como um Dockerfile) pode influenciar como o aplicativo deve ser empacotado.
  • O azure.yaml arquivo contém mapeamentos de configuração que informam azd onde o código do aplicativo reside e qual idioma ele usa para azd que possa empacotá-lo adequadamente.
  • Esse estágio garante que o aplicativo esteja em um estado implantável antes de passar para a próxima etapa.

Você pode executar o processo de empacotamento por conta própria fora do azd up usando o comando azd package:

azd package

Configurações de empacotamento de exemplo

azd pode empacotar aplicativos criados com idiomas diferentes de diferentes maneiras. Por exemplo, se seu aplicativo usar uma abordagem em contêineres, o azd modelo poderá incluir um Dockerfile no diretório do aplicativo src . O estágio de empacotamento cria uma imagem do Docker para o aplicativo com base nesse arquivo. Essas configurações são gerenciadas por meio do azure.yaml arquivo.

Por exemplo, considere a seguinte estrutura de projeto e as configurações do hello-azd modelo inicial:

Uma captura de tela mostrando o estágio de empacotamento do azd up.

Na imagem anterior, o arquivo azure.yaml:

  • Define o código no src diretório como um aplicativo C#.
  • Especifica o local de um Dockerfile a ser usado para criar uma imagem de contêiner do aplicativo.

Quando você executa azd up (ou azd package), a CLI do Desenvolvedor do Azure usa essa combinação de configurações para criar e empacotar o código do src aplicativo no diretório como uma imagem de contêiner do .NET. Se um Dockerfile não tiver sido configurado, azd também poderá empacotar o aplicativo .NET usando o processo de publicação padrão do .NET.

O estágio de provisionamento

O estágio de provisionamento cria e configura os recursos necessários do Azure para seu aplicativo. Por exemplo, seu aplicativo pode exigir que uma instância do Serviço de Aplicativo do Azure hospede o aplicativo em si e uma Conta de Armazenamento do Azure para armazenar arquivos carregados. O estágio de provisionamento usa arquivos iac (infraestrutura como código) incluídos no modelo para definir os recursos.

Alguns pontos importantes a serem entendidos sobre o estágio de provisionamento incluem:

  1. O azd dá suporte ao Bicep e ao Terraform para tarefas de infraestrutura como código.
  2. Por padrão, os arquivos de infraestrutura como código são armazenados na infra pasta, mas esse local pode ser personalizado.
  3. azd pesquisa um arquivo main.bicep ou main.tf para atuar como o arquivo de orquestração principal para o processo de IaC.

Uma captura de tela mostrando o estágio de provisionamento do azd up.

Você também pode executar o processo de provisionamento de forma independente, fora do azd up, usando o comando azd provision.

azd provision

Exemplo de configurações de provisionamento

Dentro da infra pasta, um main.bicep arquivo geralmente define os recursos do Azure que azd devem ser criados para o aplicativo. Considere o seguinte snippet de main.bicep no modelo hello-azd de início:

// ...omitted code for other resource configurations

// Create an Azure Cosmos DB account
module cosmos 'app/cosmos.bicep' = {
  name: 'cosmos'
  scope: rg
  params: {
    userPrincipalId: principalId
    managedIdentityId: identity.outputs.principalId
  }
}

// Create a storage account
module storage './core/storage/storage-account.bicep' = {
  name: 'storage'
  scope: rg
  params: {
    name: !empty(storageAccountName) ? storageAccountName : '${abbrs.storageStorageAccounts}${resourceToken}'
    location: location
    tags: tags
    containers: [
      { name: 'attachments' }
    ]
  }
}

// Container apps environment and registry
module containerAppsEnv './core/host/container-apps.bicep' = {
  name: 'container-apps'
  scope: rg
  params: {
    name: 'app'
    containerAppsEnvironmentName: !empty(containerAppsEnvName) ? containerAppsEnvName : '${abbrs.appManagedEnvironments}${resourceToken}'
    containerRegistryName: !empty(containerRegistryName) ? containerRegistryName : '${abbrs.containerRegistryRegistries}${resourceToken}'
    location: location
  }
}

// ...omitted code for other resource configurations

Usando o código Bicep anterior, azd cria os seguintes recursos:

  • Uma instância do Azure Cosmos DB para armazenar dados enviados por meio do aplicativo
  • Uma conta de Armazenamento do Azure para armazenar imagens carregadas
  • Um Aplicativo de Contêiner do Azure para hospedar o aplicativo

O estágio de implantação

O estágio de implantação é a etapa final no azd up fluxo de trabalho. Durante este estágio:

  • Os artefatos de aplicativo criados durante o estágio de empacotamento são implantados nos recursos provisionados do Azure.
  • azd usa arquivos de configuração no modelo, como azure.yaml, por exemplo, para determinar como implantar o aplicativo.
  • Variáveis de ambiente e cadeias de conexão são configuradas para garantir que o aplicativo possa interagir com os recursos provisionados.

Você também pode executar o processo de implantação por conta própria fora do azd up usando o comando azd deploy.

azd deploy

Configurações de implantação de exemplo

Dentro do arquivo, você pode especificar qual serviço em seu projeto deve ser implantado em qual recurso do azure.yaml Azure. Por exemplo, considere as seguintes configurações para o hello-azd modelo inicial:

metadata:
  template: hello-azd-dotnet
name: azd-starter
services:
  aca:
    project: ./src # The location of the service source code
    language: csharp
    host: containerapp # The provisioned resource to deploy the service to
    docker:
      path: ./Dockerfile

O código anterior instrui azd a implantar os artefatos empacotados do código na pasta src para o containerapp que foi criado durante o estágio de provisionamento. Você também pode definir vários serviços e mapear cada um para um host diferente.

Conclusão

O azd up fluxo de trabalho simplifica o processo de implantação de aplicativos no Azure automatizando os estágios de empacotamento, provisionamento e implantação. Os desenvolvedores podem garantir um processo de implantação consistente e eficiente, aderindo à estrutura de azd modelo. Se você estiver implantando um aplicativo Web simples ou uma arquitetura de microsserviços complexa, o azd up comando simplifica o percurso de código para nuvem.