Creación de una pila de implementación
Una pila de implementación de Azure es una colección de recursos de Azure que se pueden administrar como una sola unidad aunque abarquen varios grupos de recursos o suscripciones.
Planea la implementación de la versión de prueba de la nueva aplicación de depósitos. Debe obtener más información sobre cómo crear una pila de implementación y comprobar sus recursos administrados.
En esta unidad, aprenderá a crear una pila de implementación, comprobar su implementación y enumerar todas las pilas de implementación del entorno.
Nota:
Los comandos de esta unidad se muestran para ilustrar conceptos. No los ejecute todavía. Pronto va a practicar lo que aprenderá aquí.
Pilas de implementación revisadas
Las pilas de implementación cambian la forma en que piensa en la organización de recursos entre grupos de recursos y suscripciones. Una pila de implementación le permite agrupar todos los recursos que componen la aplicación, independientemente de dónde se encuentren en la jerarquía organizativa de recursos de Azure. Puede administrarlos como una sola unidad. Con las pilas de implementación, puede realizar operaciones de ciclo de vida en la colección de recursos que componen la pila.
Piense en las pilas de implementación como una serie de punteros que agrupan los recursos de la aplicación en una sola unidad. Las pilas de implementación se pueden crear en distintos ámbitos, como grupos de recursos, suscripciones y grupos de administración.
Definir recursos
Las pilas de implementación admiten el uso de archivos de Bicep, plantillas JSON de ARM o especificaciones de plantilla para definir recursos en una pila. Al crear una pila de implementación mediante la CLI de Azure o Azure PowerShell, puede apuntar al archivo de plantilla específico (archivo Bicep o plantilla JSON de ARM) o a la especificación de plantilla. No es necesario cambiar cómo se definen los recursos.
Usamos el siguiente archivo de Bicep para nuestra primera pila de implementación. El archivo define un plan de App Service y una aplicación web. Estos recursos se convierten en recursos administrados al crear la pila de implementación.
// Parameters
@description('The location for all resources.')
param location string = 'eastus'
@description('The name of the web application.')
param webApplicationName string = 'webapp-${uniqueString(resourceGroup().id)}'
// Variables
@description('The name of the app service plan.')
var appServicePlanName = 'plan-deposits'
// Resource - App Service Plan
resource appServicePlan 'Microsoft.Web/serverfarms@2023-12-01' = {
name: appServicePlanName
location: location
sku: {
name: 'F1'
capacity: 1
}
}
// Resource - Web App
resource webApplication 'Microsoft.Web/sites@2023-12-01' = {
name: webApplicationName
location: location
properties: {
serverFarmId: appServicePlan.id
}
}
Nota:
Es posible que observe la sintaxis ${uniqueString(resourceGroup().id)}
en el parámetro webApplicationName
. La función uniqueString crea una cadena basada en el id. del grupo de recursos y la agrega como sufijo a webapp-deposits
. Muchos servicios de Azure requieren nombres únicos. Esta función ayuda a generar un nombre único.
Creación de una pila de implementación
La creación e implementación de una pila de implementación y sus recursos es casi idéntica a una implementación estándar de Azure. Tanto si usa la CLI de Azure, Azure PowerShell o una infraestructura como canalización de código, el proceso se siente igual. Por ejemplo:
El comando de la CLI de Azure para implementar un archivo de Bicep en un grupo de recursos es:
az deployment group create \
--resource-group rg-depositsApplication \
--template-file ./main.bicep
El comando de la CLI de Azure para crear una pila de implementación en el ámbito del grupo de recursos es:
az stack group create \
--name stack-deposits \
--resource-group rg-depositsApplication \
--template-file ./main.bicep \
--action-on-unmanage detachAll \
--deny-settings-mode none
Observe que los únicos cambios en el comando son las palabras deployment
y stack
, y las diferencias en los parámetros usados. Lo mismo sucede con las implementaciones en suscripciones y grupos de administración.
Nota:
En módulos posteriores, exploraremos cómo administrar los recursos de una pila de implementación mediante --action-on-unmanage
y cómo evitar cambios no deseados mediante --deny-settings-mode
.
El comando de Azure PowerShell para implementar un archivo de Bicep en un grupo de recursos es:
New-AzResourceGroupDeployment `
-ResourceGroupName rg-depositsApplication `
-TemplateFile ./main.bicep
El comando de Azure PowerShell para crear una pila de implementación en el ámbito del grupo de recursos es:
New-AzResourceGroupDeploymentStack `
-Name stack-deposits `
-ResourceGroupName rg-depositsApplication `
-TemplateFile ./main.bicep `
-ActionOnUnmanage DetachAll `
-DenySettingsMode None
Observe que el único cambio en el comando es la palabra stack
y las diferencias en los parámetros usados. Lo mismo sucede con las implementaciones en suscripciones y grupos de administración.
Nota:
En módulos posteriores, exploraremos cómo administrar los recursos de una pila de implementación mediante -ActionOnUnmanage
y cómo evitar cambios no deseados mediante -DenySettingsMode
.
Ahora, echemos un vistazo a la creación de una pila de implementación en el ámbito del grupo de recursos.
Para crear una pila de implementación mediante la CLI de Azure, use el comando az stack group create
. En primer lugar, los comandos siguientes crean un grupo de recursos denominado rg-depositsApplication
y, a continuación, crean la pila de implementación en el ámbito del grupo de recursos.
az group create \
--name rg-depositsApplication \
--location eastus
az stack group create \
--name stack-deposits \
--resource-group rg-depositsApplication \
--template-file ./main.bicep \
--action-on-unmanage detachAll \
--deny-settings-mode none
Para crear una pila de implementación mediante Azure PowerShell, use el comando New-AzResourceGroupDeploymentStack
. En primer lugar, los comandos siguientes crean un grupo de recursos denominado rg-depositsApplication
y, a continuación, crean la pila de implementación en el ámbito del grupo de recursos.
New-AzResourceGroup `
-Name rg-depositsApplication `
-Location eastus
New-AzResourceGroupDeploymentStack `
-Name stack-deposits `
-ResourceGroupName rg-depositsApplication `
-TemplateFile ./main.bicep `
-ActionOnUnmanage DetachAll `
-DenySettingsMode None
Mostrar pilas de implementación
Los grupos de recursos pueden tener varias pilas de implementación en su ámbito. Puede mostrar detalles sobre una pila de implementación específica en el ámbito de un grupo de recursos.
Para mostrar un recurso de pila de implementación específico con ámbito a un grupo de recursos mediante la CLI de Azure, use el comando az stack group show
y especifique el nombre de la pila de implementación y el grupo de recursos de destino.
az stack group show \
--resource-group rg-depositsApplication \
--name stack-deposits
Los resultados incluyen las propiedades de la pila de implementación y el estado de los recursos administrados. La salida debería parecerse a la siguiente sección:
{
"actionOnUnmanage": {
"managementGroups": "detach",
"resourceGroups": "detach",
"resources": "detach"
},
"bypassStackOutOfSyncError": null,
"correlationId": ".",
"debugSetting": null,
"deletedResources": [],
"denySettings": {
"applyToChildScopes": false,
"excludedActions": null,
"excludedPrincipals": null,
"mode": "none"
},
"deploymentId": "/subscriptions/././rg-depositsApplication/./Microsoft.Resources/deployments/stack-deposits",
"deploymentScope": null,
"description": null,
"detachedResources": [],
"duration": "PT2M53.2734284S",
"error": null,
"failedResources": [],
"id": "/subscriptions/././rg-depositsApplication/./Microsoft.Resources/deploymentStacks/stack-deposits",
"location": null,
"name": "stack-deposits",
"outputs": null,
"parametersLink": null,
"provisioningState": "succeeded",
"resourceGroup": "rg-depositsApplication",
"resources": [
{
"denyStatus": "none",
"id": "/subscriptions/././rg-depositsApplication/././serverfarms/plan-deposits",
"resourceGroup": "rg-depositsApplication",
"status": "managed"
},
{
"denyStatus": "none",
"id": "/subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-eque2jlrboltq",
"resourceGroup": "rg-depositsApplication",
"status": "managed"
}
],
"systemData": {
"createdAt": "2024-01-01T00:00:01.000000+00:00",
"createdBy": "depositsapplication@contoso.com",
"createdByType": "User",
"lastModifiedAt": "2024-01-01T00:00:01.000000+00:00",
"lastModifiedBy": "depositsapplication@contoso.com",
"lastModifiedByType": "User"
},
"tags": {},
"template": null,
"templateLink": null,
"type": "Microsoft.Resources/deploymentStacks"
}
Observe la sección de recursos de la salida. Para cada recurso, muestra su estado como managed
, su grupo de recursos, su id. de recurso y su configuración de denegación.
Para mostrar un recurso de pila de implementación específico con ámbito a un grupo de recursos mediante Azure PowerShell, use el comando Get-AzResourceGroupDeploymentStack
y especifique el nombre de la pila de implementación y el grupo de recursos de destino.
Get-AzResourceGroupDeploymentStack `
-ResourceGroupName rg-depositsApplication `
-Name stack-deposits
Los resultados incluyen las propiedades de la pila de implementación y el estado de los recursos administrados. La salida debería parecerse a la siguiente sección:
Id : /subscriptions/././rg-depositsApplication/././deploymentStacks/stack-deposits
Name : stack-deposits
ProvisioningState : succeeded
resourcesCleanupAction : detach
resourceGroupsCleanupAction : detach
managementGroupsCleanupAction : detach
CorrelationId : .
DenySettingsMode : none
CreationTime(UTC) : 1/01/2024 0:00:01 AM
DeploymentId : /subscriptions/././rg-depositsApplication/././deployments/stack-deposits
Resources : /subscriptions/././rg-depositsApplication/././serverfarms/plan-deposits
/subscriptions/././rg-depositsApplication/././sites/webapp-eque2jlrboltq
Observe la sección de recursos de la salida. Define los recursos administrados por la pila de implementación. Verá el id. de recurso completo de cada recurso.
También puede ver las pilas de implementación en Azure Portal. Están disponibles en sus respectivos ámbitos. Para un grupo de recursos, vaya al grupo de recursos en el que se limita la pila de implementación. En configuración, verá una opción para las pilas de implementación.
Al hacer clic en las pilas de implementación, se enumeran las pilas en el ámbito del grupo de recursos. Al hacer clic en una pila de implementación, se le lleva a la página de propiedades de las pilas de implementación.
Descripción de pilas de implementación
También puede enumerar todas las pilas de implementación en el ámbito de un grupo de recursos específico.
Para enumerar todos los recursos de la pila de implementación cuyo ámbito es un grupo de recursos mediante la CLI de Azure, use el comando az stack group list
y especifique el grupo de recursos de destino.
az stack group list \
--resource-group rg-depositsApplication
Para enumerar todos los recursos de la pila de implementación cuyo ámbito es un grupo de recursos mediante Azure PowerShell, use el comando Get-AzResourceGroupDeploymentStack
y especifique el grupo de recursos de destino.
Get-AzResourceGroupDeploymentStack `
-ResourceGroupName rg-depositsApplication
Nota:
Azure PowerShell usa el mismo comando, Get-AzResourceGroupDeploymentStack
, para las operaciones show y list.