Partilhar via


Explore 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 upo . Este guia fornece um detalhamento minucioso de azd up e como os diferentes estágios desse processo de fluxo de trabalho se correlacionam com a estrutura de um modelo azd.

Siga 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 sua máquina local:

azd init -t hello-azd

Para obter mais informações sobre como começar com azd e o hello-azd modelo, visite o artigo Guia de início rápido: implantar um modelo de 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 a partir de uma janela de terminal aberta para a pasta de modelos:

azd up

azd up foi 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 basicamente envolve 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 respetivo comando, mas azd up fornece um wrapper de conveniência para simplificar o processo geral. Cada estágio desempenha um papel crítico para garantir um processo de implantação suave e automatizado. Você pode influenciar os estágios do 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.

A fase de embalagem

O estágio de empacotamento é o primeiro passo no azd up fluxo de trabalho. Durante esta fase:

  • O código do aplicativo está preparado para implantação. Dependendo da linguagem de programação com a qual o aplicativo modelo é criado, o empacotamento pode envolver a criação ou compilação do aplicativo, a agregação de dependências ou a criação de artefatos de implantação, como imagens do Docker.
  • A azd estrutura do modelo normalmente inclui uma src pasta onde o código do aplicativo reside. Scripts de compilação ou arquivos de configuração (como um Dockerfile) podem 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 seu aplicativo vive e qual idioma ele usa para azd que possa empacotá-lo adequadamente.
  • Este 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 independentemente fora de azd up usando o comando azd package.

azd package

Exemplo de configurações de empacotamento

azd Pode empacotar aplicativos criados com diferentes idiomas de maneiras diferentes. Por exemplo, se seu aplicativo usa uma abordagem em contêineres, o azd modelo pode 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 através do azure.yaml arquivo.

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

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

Na imagem anterior, o arquivo azure.yaml:

  • Define o src código no 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 aplicativo no src diretório como uma imagem de contêiner .NET. Se um Dockerfile não estiver configurado, azd também poderá empacotar o aplicativo .NET usando o processo de publicação .NET padrão.

A etapa 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 uma instância do Serviço de Aplicativo do Azure para hospedar o próprio aplicativo e uma Conta de Armazenamento do Azure para armazenar arquivos carregados. O estágio de provisionamento usa arquivos de infraestrutura como código (IaC) incluídos no modelo para definir os recursos.

Alguns pontos-chave para entender sobre o estágio de provisionamento incluem:

  1. azd suporta tanto o Bicep como o Terraform para tarefas de infraestrutura como código.
  2. Por padrão, os ficheiros de infraestrutura como código são armazenados na pasta infra, mas esse local pode ser personalizado.
  3. azd procura um arquivo main.bicep ou main.tf para atuar como o arquivo principal de orquestração para o processo IaC.

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

Você também pode executar o processo de provisionamento por conta própria fora do azd up, utilizando 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 trecho do modelo inicial main.bicep no hello-azd :

// ...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 do azd up fluxo de trabalho. Durante esta fase:

  • Os artefatos do 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, para determinar como implantar o aplicativo.
  • As variáveis de ambiente e as 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 sozinho fora de azd up usando o comando azd deploy.

azd deploy

Exemplo de configurações de implantação

Dentro do ficheiro azure.yaml, pode-se especificar qual serviço no seu projeto deve ser implantado em qual recurso do 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 src pasta 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 do azd modelo. Quer esteja a implementar uma aplicação Web simples ou uma arquitetura de microsserviços complexa, o azd up comando simplifica a viagem do código para a nuvem.