integración de pilas de implementación de Azure con la CLI para Desarrolladores de Azure

La CLI de Azure Developer (azd) admite stacks de implementación de Azure para implementaciones de plantillas. Una pila de implementación de Azure es un recurso que permite administrar un grupo de recursos de Azure como una sola unidad cohesiva. Mediante el uso de pilas de implementación, puede obtener un control adicional sobre el conjunto de recursos asociados a la azd plantilla y la aplicación.

En este artículo aprenderá a:

  • Habilite el soporte de pila de implementación de Azure en azd.
  • Implante plantillas de azd mediante conjuntos de implementación de Azure.
  • Configure el comportamiento de la pila de implementación mediante azd configuraciones.

Habilitación de la compatibilidad con la pila de implementación de Azure

La compatibilidad con pilas de implementación de Azure debe estar habilitada mediante el comando azd config:

azd config set alpha.deployment.stacks on

Nota:

El soporte para pilas de implementación de Azure es actualmente una función alfa, por lo que debe habilitarse manualmente. Sin embargo, en una versión futura, las pilas de implementación se convertirán en el comportamiento de implementación predeterminado de azd. Obtenga más información sobre nuestra estrategia de control de versiones.

Compruebe que la característica se ha habilitado correctamente mediante el azd config show comando :

azd config show

Despliegue de una plantilla mediante pilas de despliegue

Después de activar la función de pilas de implementación, no se requieren más cambios en las plantillas azd para aprovechar el comportamiento estándar de esta función. azd encapsula automáticamente los recursos aprovisionados de la plantilla en una pila de implementación de Azure al ejecutar azd up:

azd up

azd usa el ámbito definido en el archivo main.bicep de la plantilla para la pila de implementación de Azure. Por ejemplo, si su plantilla está delimitada al nivel de suscripción o de grupo de recursos, puede ver la pila de implementación asociada en el portal de Azure en la página Pilas de implementación de la suscripción o del grupo de recursos correspondiente.

Una captura de pantalla que muestra una pila de implementación de nivel de suscripción en el portal de Azure.

Seleccione el stack de implementación para ver las páginas de administración para él.

Captura de pantalla que muestra los detalles del stack de implementación.

Elimine una pila de implementación

De forma predeterminada, puede eliminar una pila de implementación y sus recursos asociados mediante el comando estándar azd down :

azd down

El comportamiento exacto de azd down y de las pilas de implementación se configura mediante el archivo azure.yaml.

Configura la pila de implementación

azd expone varias opciones de configuración a través de la sección infra del archivo azure.yaml para influir en el comportamiento de la pila de implementación de Azure. Esta configuración se asigna a las opciones estándar detalladas en la documentación de las pilas de implementación. Tenga en cuenta el ejemplo siguiente azure.yaml :

name: todo-nodejs-mongo-aca
metadata:
  template: todo-nodejs-mongo-aca@0.0.1-beta
infra:
  provider: bicep
  deploymentStacks:
    actionOnUnmanage:
      resources: delete
      resourceGroups: delete
    denySettings:
      mode: denyDelete
      excludedActions:
        - Microsoft.Resources/subscriptions/resourceGroups/delete
      excludedResources:
        - <your-resource-id-1>
        - <your-resource-id-2>
      excludedPrincipals:
        - <your-targeted-principal-id-1>
        - <your-targeted-principal-id-2>
      applyToChildScopes: true
# ...
# Remaining file contents omitted
# ...

En el ejemplo anterior, las siguientes opciones se definen en la deploymentStacks sección :

  • actionOnUnmanage: Cuando se elimina una pila de implementación, los recursos de Azure asociados se consideran no administrados. Esta configuración determina cómo Azure controlará los recursos no administrados. Los valores posibles son:
    • delete es el valor predeterminado y destruye los recursos administrados por el grupo de implementación eliminado.
    • detach mantiene los recursos en su lugar, pero elimina su asociación con la pila de implementación eliminada.
  • denySettings: una subsección que proporciona un control detallado sobre los recursos de la pila de implementación.
    • mode: define las restricciones de alto nivel en los recursos de la pila de implementación. Los valores posibles son:
      • none es el valor predeterminado y permite eliminar los recursos de la pila de implementación o agregar nuevos recursos.
      • denyDelete impide que se eliminen los recursos de la pila de implementación.
      • denyWriteAndDelete evita que los recursos de la pila de implementación se eliminen y también impide que se agreguen nuevos recursos a la pila de implementación.
    • excludedActions: enumera las acciones del control de acceso basado en roles (RBAC) de Azure que no se permiten en los recursos de la pila de implementación.
    • excludedResources: enumera los identificadores de recursos que se excluyen de denySettings.
    • excludedPrincipals: enumera los IDs de principal de servicio que se excluyen de denySettings.
    • applyToChildScopes: un valor booleano que establece si la configuración de denegación se aplica a los recursos secundarios de los recursos de la pila de implementación. Por ejemplo, un recurso de SQL Server tiene recursos de base de datos secundarios.

Preguntas más frecuentes sobre la CLI para desarrolladores de Azure