Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Azure Developer CLI (azd) pode compilar, publicar e implantar imagens de contêiner em vários serviços de hospedagem do Azure. Um fluxo de trabalho de contêiner combina um destino de hospedagem com um local de build e uma abordagem de publicação. A melhor combinação depende do aplicativo, das ferramentas que sua equipe tem disponível e de como você promove imagens entre ambientes.
Use este artigo para corresponder a essas opções às suas necessidades. Ele compara as seguintes decisões:
- Qual serviço Azure hospeda seu contêiner.
- Seja
azdcompilar a imagem localmente, compilá-la remotamente em Registro de Contêiner do Azure (ACR) ou usar uma imagem existente. - Se
azdpublica e implanta a imagem em conjunto ou como etapas separadas.
O artigo compara esses serviços de hospedagem de uso geral:
- Aplicativos de Contêiner do Azure
- Contêineres do Serviço de Aplicativo
- AKS (Serviço de Kubernetes do Azure)
Comece comparando os destinos de hospedagem e as opções de compilação de imagem. Depois de entender essas opções, use-as para identificar um fluxo de trabalho candidato na seção Comparar fluxos de trabalho de implantação de contêiner .
Comparar destinos de hospedagem de contêiner
A host propriedade em azure.yaml identifica o serviço Azure ao qual azd implanta seu contêiner. Escolha o host independentemente do local de build da imagem.
| Valor do host | destino de hospedagem do Azure | Fluxo de trabalho de contêiner | Considerações |
|---|---|---|---|
containerapp |
Aplicativos de Contêiner do Azure e trabalhos de Aplicativos de Contêiner | Crie com base em um projeto e um Dockerfile, ou implante uma imagem pré-compilada. | Dá suporte a variáveis de ambiente de nível de serviço e estratégias de implantação específicas dos Aplicativos de Contêiner. Use o mesmo valor do host para tarefas do Container Apps. |
appservice |
Aplicativo Web linux para contêineres no Serviço de Aplicativo do Azure | Crie com base em um projeto e um Dockerfile, ou implante uma imagem pré-construída. | Sua infraestrutura deve provisionar um site Linux compatível com contêineres e configurar o acesso da identidade gerenciada ao ACR.
azd deploy atualiza apenas a referência de imagem. |
aks |
Serviço de Kubernetes do Azure | Crie uma imagem e implante manifestos do Kubernetes, gráficos do Helm ou configurações do Kustomize. | Fornece mais controle, mas exige que você gerencie o cluster e a configuração do Kubernetes. Usar Helm ou Kustomize com azd requer a habilitação de sinalizadores de recursos alfa. |
Os hosts ai.endpoint e azure.ai.agent também oferecem suporte à configuração do Docker para cenários especializados do Microsoft Foundry. Para essas cargas de trabalho, consulte Implantar em pontos de extremidade online do Microsoft Foundry e a extensão de agente do Microsoft Foundry.
Comparar opções de compilação de imagem
A definição de serviço determina se azd cria uma imagem ou começa com uma imagem existente.
| Opção de compilação | Configuração necessária | Onde o build é executado | Motor de contêiner local | Mais adequado para |
|---|---|---|---|---|
| Compilação local |
project e, opcionalmente, docker |
Seu ambiente de desenvolvimento ou executor de CI | Obrigatório | Iterações de desenvolvimento rápidas e ambientes de build que já fornecem o Docker ou o Podman. |
| Compilação remota do ACR |
project e docker.remoteBuild: true |
Registro de Contêiner do Azure | Não é necessário, a menos que azd recorra após uma falha de compilação remota |
Compilações e ambientes de nuvem consistentes sem um mecanismo de contêiner local. O fluxo de trabalho de build remoto documentado tem como alvo o Aplicativos de Contêiner do Azure. |
Imagem existente gerenciada por azd |
image |
Nenhuma compilação de fonte | Pode ser necessário para operações de ciclo de vida de imagem | Imagens que já existem localmente ou em um registro e que azd podem extrair, etiquetar e enviar. |
| Passagem de imagem remota |
image e docker.imagePassthrough: true |
Sem compilação | Não é necessário | Imagens remotas totalmente qualificadas que o recurso de hospedagem deve usar como estão. |
Tenha essas diferenças conceituais em mente ao ler os artigos de configuração por opção:
- Uma imagem pré-compilada usa a propriedade
imageem vez deproject, eazdainda pode extraí-la, etiquetá-la e enviá-la. - Um build remoto do ACR volta para um build local do Docker ou do Podman quando o build remoto falha e um mecanismo de contêiner com suporte está disponível.
-
O repasse de imagem requer uma referência remota de imagem totalmente qualificada, incluindo um registro de imagens; não pode ser combinado com
remoteBuilde não oferece suporte às opçõesazd publish --from-packageouazd publish --to, porqueazdnão gerencia a imagem.
Para obter a configuração completa de cada opção, consulte Suporte a compilações remotas com o Registro de Contêiner do Azure, Usar registros de contêiner de terceiros, Implantações de contêiner no App Service com a CLI do Desenvolvedor do Azure e o esquema docker.
Comparar fluxos de trabalho de implantação de contêiner
Depois de comparar os destinos de hospedagem para contêineres em Comparar destinos de hospedagem para contêineres e as opções de build de imagem em Comparar opções de build de imagem, use a tabela a seguir para identificar os fluxos de trabalho mais adequados às suas necessidades.
| Se precisar | Começar com | Por que |
|---|---|---|
| Implantar um aplicativo em contêineres em uma plataforma sem servidor | Aplicativos de Contêiner do Azure com compilação local | Esse fluxo de trabalho cria e implanta um projeto baseado em Dockerfile em um fluxo de trabalho de desenvolvimento. |
| Compilar sem instalar o Docker ou o Podman localmente | Aplicativos de Contêiner do Azure com compilação remota no ACR | O ACR cria a imagem a partir do seu projeto e do Dockerfile no Azure. |
| Implantar uma imagem que outro sistema de build produz | Aplicativos de Contêiner do Azure ou App Service com uma imagem pré-compilada | A image propriedade identifica a imagem existente em vez do código-fonte a ser criada. |
| Reutilizar uma imagem remota sem puxá-la, marcar ou efetuá-la por push | Aplicativos de Contêiner do Azure com passagem de imagem |
azd passa a referência de imagem totalmente qualificada diretamente para o recurso de hospedagem. |
| Hospedar um aplicativo Web tradicional como um contêiner do Linux | Aplicativo Web para contêineres no Serviço de Aplicativo do Azure | O App Service fornece uma plataforma integrada de hospedagem web, enquanto sua infraestrutura controla a configuração do site pronta para contêineres. |
| Controlar manifestos do Kubernetes e configuração de cluster | AKS (Serviço de Kubernetes do Azure) |
azd pode criar e publicar a imagem e, em seguida, implantar manifestos do Kubernetes, gráficos do Helm ou configurações do Kustomize. |
| Crie uma vez e promova a mesma imagem em diferentes ambientes |
azd publish, seguido por azd deploy --from-package |
A publicação e a implantação são separadas, portanto, cada ambiente recebe a mesma imagem. |
Cada linha combina as opções de hospedagem apresentadas em Comparar destinos de hospedagem para contêineres e as opções de criação de imagem apresentadas em Comparar opções de criação de imagem como ponto de partida. Configure a opção desejada em azure.yaml e deixe que seus arquivos Bicep ou Terraform provisionem os recursos correspondentes de hospedagem e registro.
Uma definição mínima de serviço define o host, a fonte de compilação e o Dockerfile:
services:
api:
project: ./src/api
language: docker
host: containerapp
docker:
path: ./Dockerfile
Para adaptar essa definição a outro host, altere o host valor e siga o contrato de configuração por host:
- Implantar em Aplicativos de Contêiner do Azure usando a CLI do Desenvolvedor do Azure
- Implantações de contêiner do App Service com a CLI do Azure Developer
- Suporte do Helm e do Kustomize
Comparar comandos de publicação e implantação
Depois de escolher um host e uma opção de compilação, selecione se deseja combinar ou separar a publicação de imagens e a implantação.
| Command | Ações de imagem | Ação de recurso do Azure | Usar quando |
|---|---|---|---|
azd up |
Compilar e enviar por push | Prover e implantar | Você deseja criar ou atualizar o ambiente completo e implantar o aplicativo em um fluxo de trabalho. |
azd deploy |
Compilar e enviar por push | Implantar | A infraestrutura já existe e você deseja implantar alterações de aplicativo. |
azd publish |
Compilar e efetuar push | None | Você quer criar um artefato de registro sem implantá-lo.
azd publish dá suporte a aplicativos de contêiner e serviços do AKS. |
azd publish --from-package <image> |
Enviar uma imagem local existente | None | Outro processo criou a imagem e você deseja azd publicá-la. |
azd deploy --from-package <image> |
None | Implantar | Você deseja implantar uma imagem específica sem reconstruí-la. |
Por exemplo, publique uma imagem com versão e implante a mesma imagem em outro ambiente:
azd publish api --to myregistry.azurecr.io/my-api:v1.0.0
azd env select production
azd deploy api --from-package myregistry.azurecr.io/my-api:v1.0.0
Esse fluxo de trabalho impede diferenças que podem ocorrer quando você recompila uma imagem para cada ambiente. Para ver um fluxo de promoção completo, consulte os fluxos de trabalho de publicação do Azure Developer CLI.