Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure CLI para desarrolladores (azd) puede compilar, publicar e implementar imágenes de contenedor en varios servicios de hospedaje Azure. Un flujo de trabajo de contenedor combina un destino de hospedaje con una ubicación de compilación y un enfoque de publicación. La mejor combinación depende de la aplicación, de las herramientas que el equipo tiene disponible y de cómo se promueven imágenes entre entornos.
Use este artículo para adaptarlas a sus necesidades. Compara las siguientes decisiones:
- Qué Azure servicio hospeda el contenedor.
- Tanto si
azdcompila la imagen localmente, como si lo hace de forma remota en Azure Container Registry (ACR), o usa una imagen existente. - Si
azdpublica y despliega la imagen juntas o como pasos independientes.
En el artículo se comparan estos servicios de hospedaje de uso general:
Comience comparando los destinos de hospedaje y las opciones de compilación de imágenes. Después de comprender esas opciones, úselas para identificar un flujo de trabajo candidato en la sección Comparar flujos de trabajo de implementación de contenedores .
Comparación de destinos de hospedaje de contenedores
La host propiedad de azure.yaml identifica el servicio Azure en el que azd implementa el contenedor. Elija el host independientemente de la ubicación de compilación de la imagen.
| Valor del host | Destino de alojamiento de Azure | Flujo de trabajo del contenedor | Consideraciones |
|---|---|---|---|
containerapp |
Tareas de Azure Container Apps y Container Apps | Compile a partir de un proyecto y Dockerfile, o implemente una imagen precompilada. | Admite variables de entorno de nivel de servicio y estrategias de implementación específicas de Container Apps. Use el mismo valor de host para los trabajos de Container Apps. |
appservice |
Aplicación web de Linux para contenedores en Azure App Service | Compile a partir de un proyecto y Dockerfile, o implemente una imagen precompilada. | La infraestructura debe aprovisionar un sitio preparado para contenedores Linux y configurar el acceso a ACR mediante identidad administrada.
azd deploy actualiza solo la referencia de imagen. |
aks |
Azure Kubernetes Service | Cree una imagen e implemente manifiestos de Kubernetes, gráficos de Helm o configuraciones de Kustomize. | Proporciona el mayor control, pero requiere que administre el clúster y la configuración de Kubernetes. Usar Helm o Kustomize con azd requiere habilitar los indicadores de función alfa. |
Los ai.endpoint hosts y azure.ai.agent también admiten la configuración de Docker para escenarios especializados de Microsoft Foundry. Para esas cargas de trabajo, consulte Implementación en puntos de conexión en línea de Microsoft Foundry y la extensión del agente de Microsoft Foundry.
Comparación de las opciones de compilación de imágenes
La definición de servicio determina si azd crea una imagen o comienza con una imagen existente.
| Opción de creación | Configuración necesaria | Dónde se ejecuta la compilación | Motor de contenedor local | Ideal para |
|---|---|---|---|---|
| Compilación local |
project y, opcionalmente, docker |
Su entorno de desarrollo o ejecutor de CI | Obligatorio | Iteraciones de desarrollo rápidas y entornos de compilación que ya proporcionan Docker o Podman. |
| Compilación remota de ACR |
project y docker.remoteBuild: true |
Azure Container Registry (Registro de Contenedores de Azure) | No es necesario a menos que azd recurra a un plan de contingencia tras un fallo en la compilación remota |
Compilaciones y entornos coherentes en la nube sin un motor de contenedor local. El flujo de trabajo de compilación remota documentado tiene como destino Azure Container Apps. |
Imagen existente administrada por azd |
image |
No hay ninguna compilación fuente | Es posible que sea necesario para las operaciones del ciclo de vida de las imágenes. | Imágenes que ya existen localmente o en un registro y que azd puede extraer, etiquetar y subir. |
| Acceso directo a imágenes remotas |
image y docker.imagePassthrough: true |
Sin compilación | No es necesario | Imágenes remotas con ruta completa que el recurso de alojamiento debe usar tal cual. |
Tenga en cuenta estas diferencias conceptuales al leer los artículos de configuración por opción:
- Una imagen predefinida usa la propiedad
imageen lugar deproject, yazdaún puede descargarla, etiquetarla y subirla. - Una compilación remota de ACR vuelve a una compilación local de Docker o Podman cuando se produce un error en la compilación remota y hay disponible un motor de contenedor compatible.
-
La transferencia directa de imágenes requiere una referencia completa a una imagen remota que incluya un registro, no se puede combinar con
remoteBuildy no admite las opcionesazd publish --from-packageniazd publish --toporqueazdno administra la imagen.
Para obtener la configuración completa de cada opción, consulte Compatibilidad con compilaciones remotas con Azure Container Registry, Uso de registros de contenedor de terceros, implementaciones de contenedores de App Service con Azure CLI para desarrolladores y el docker esquema.
Comparación de flujos de trabajo de implementación de contenedores
Después de comparar los destinos de alojamiento en Comparar destinos de alojamiento de contenedores y las opciones de compilación en Comparar opciones de compilación de imágenes, utilice la siguiente tabla para identificar los flujos de trabajo que mejor se adapten a sus necesidades.
| Si lo necesitas | Comenzar con una | Por qué |
|---|---|---|
| Implementación de una aplicación en contenedor en una plataforma sin servidor | Azure Container Apps con una compilación local | Este flujo de trabajo compila e implementa un proyecto basado en Dockerfile en un flujo de trabajo de desarrollo. |
| Compilación sin instalar Docker o Podman localmente | Azure Container Apps con una compilación remota de ACR | ACR compila la imagen a partir de tu proyecto y el Dockerfile en Azure. |
| Implementación de una imagen que genera otro sistema de compilación | Azure Container Apps o App Service con una imagen precompilada | La image propiedad identifica la imagen existente en lugar del código fuente que se va a compilar. |
| Reutiliza una imagen remota sin extraerla, etiquetarla ni subirla | Azure Container Apps con transferencia directa de imágenes |
azd pasa la referencia de imagen completa directamente al recurso de hospedamiento. |
| Hospedaje de una aplicación web tradicional como contenedor de Linux | Aplicación web para contenedores en Azure App Service | App Service proporciona una plataforma integrada de alojamiento web, mientras que su infraestructura controla la configuración del sitio preparada para contenedores. |
| Control de manifiestos de Kubernetes y configuración del clúster | Azure Kubernetes Service (AKS) |
azd puede compilar y publicar la imagen y, a continuación, implementar manifiestos de Kubernetes, gráficos de Helm o configuraciones de Kustomize. |
| Compilar una vez y promocionar la misma imagen entre distintos entornos |
azd publish, seguido de azd deploy --from-package |
La publicación y la implementación son independientes, por lo que cada entorno recibe la misma imagen. |
Cada fila combina las opciones de hospedaje de Comparar destinos de hospedaje de contenedores y las opciones de compilación de Comparar opciones de compilación de imágenes en un punto de partida. Configure su elección en azure.yamly permita que los archivos Bicep o Terraform aprovisionen los recursos de hospedaje y registro correspondientes.
Una definición mínima del servicio establece host, el origen de compilación y el Dockerfile:
services:
api:
project: ./src/api
language: docker
host: containerapp
docker:
path: ./Dockerfile
Para adaptar esta definición a otro host, cambie el host valor y siga el contrato de configuración por host:
- Implementación en Azure Container Apps mediante la CLI para desarrolladores de Azure
- Implementaciones de contenedores de App Service con Azure CLI para desarrolladores
- Compatibilidad con Helm y Kustomize
Comparación de comandos de publicación e implementación
Después de elegir un host y una opción de compilación, seleccione si quiere combinar o separar la publicación e implementación de imágenes.
| Comando | Acciones de imagen | Acción del recurso de Azure | Se utiliza cuando |
|---|---|---|---|
azd up |
Compilación e inserción | Aprovisionamiento e implementación | Quiere crear o actualizar el entorno completo e implementar la aplicación en un flujo de trabajo. |
azd deploy |
Compilación e inserción | Desplegar | La infraestructura ya existe y usted quiere implementar cambios en la aplicación. |
azd publish |
Compilación e inserción | Ninguno | Quiere crear un artefacto de registro sin desplegarlo.
azd publish admite container Apps y servicios de AKS. |
azd publish --from-package <image> |
Subir una imagen local existente | Ninguno | Otro proceso creó la imagen, y quiere que azd la publique. |
azd deploy --from-package <image> |
Ninguno | Desplegar | Quiere desplegar una imagen específica sin reconstruirla. |
Por ejemplo, publique una imagen con versiones e implemente esa misma imagen en otro entorno:
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
Este flujo de trabajo evita las diferencias que pueden producirse al recompilar una imagen para cada entorno. Para obtener un flujo de trabajo de promoción completo, consulte los flujos de trabajo de publicación de Azure Developer CLI.