Guida introduttiva: Creare e distribuire uno stack di distribuzione con Bicep
Questa guida introduttiva descrive come creare uno stack di distribuzione.
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Azure PowerShell versione 12.0.0 o successiva o dell'interfaccia della riga di comando di Azure versione 2.61.0 o successiva.
- Visual Studio Code con l'estensione Bicep.
Creare un file Bicep
Creare un file Bicep per creare un account di archiviazione e una rete virtuale.
param resourceGroupLocation string = resourceGroup().location
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
param vnetName string = 'vnet${uniqueString(resourceGroup().id)}'
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: storageAccountName
location: resourceGroupLocation
kind: 'StorageV2'
sku: {
name: 'Standard_LRS'
}
}
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2023-11-01' = {
name: vnetName
location: resourceGroupLocation
properties: {
addressSpace: {
addressPrefixes: [
'10.0.0.0/16'
]
}
subnets: [
{
name: 'Subnet-1'
properties: {
addressPrefix: '10.0.0.0/24'
}
}
{
name: 'Subnet-2'
properties: {
addressPrefix: '10.0.1.0/24'
}
}
]
}
}
Salvare il file Bicep come main.bicep.
Creare uno stack di distribuzione
In questa guida introduttiva si crea lo stack di distribuzione nell'ambito del gruppo di risorse. È anche possibile creare lo stack di distribuzione nell'ambito della sottoscrizione o nell'ambito del gruppo di gestione. Per ulteriori informazioni, vedere Creare stack di distribuzione.
az group create \
--name 'demoRg' \
--location 'centralus'
az stack group create \
--name demoStack \
--resource-group 'demoRg' \
--template-file './main.bicep' \
--action-on-unmanage 'detachAll' \
--deny-settings-mode 'none'
Per altre informazioni su action-on-unmanage
e deny-setting-mode
, vedere Stack di distribuzione.
Verificare la distribuzione
Per elencare gli stack di distribuzione distribuiti a livello di gruppo di risorse:
az stack group show \
--resource-group 'demoRg' \
--name 'demoStack'
L'output mostra due risorse gestite: un account di archiviazione e una rete virtuale:
{
"actionOnUnmanage": {
"managementGroups": "detach",
"resourceGroups": "detach",
"resources": "detach"
},
"debugSetting": null,
"deletedResources": [],
"denySettings": {
"applyToChildScopes": false,
"excludedActions": null,
"excludedPrincipals": null,
"mode": "none"
},
"deploymentId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/demoRg/providers/Microsoft.Resources/deployments/demoStack-24051714epybc",
"deploymentScope": null,
"description": null,
"detachedResources": [],
"duration": "PT32.5330364S",
"error": null,
"failedResources": [],
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/demoRg/providers/Microsoft.Resources/deploymentStacks/demoStack",
"location": null,
"name": "demoStack",
"outputs": null,
"parameters": {},
"parametersLink": null,
"provisioningState": "succeeded",
"resourceGroup": "demoRg",
"resources": [
{
"denyStatus": "none",
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/demoRg/providers/Microsoft.Network/virtualNetworks/vnetthmimleef5fwk",
"resourceGroup": "demoRg",
"status": "managed"
},
{
"denyStatus": "none",
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/demoRg/providers/Microsoft.Storage/storageAccounts/storethmimleef5fwk",
"resourceGroup": "demoRg",
"status": "managed"
}
],
"systemData": {
"createdAt": "2024-05-17T14:50:18.382948+00:00",
"createdBy": "johndoe@contoso.com",
"createdByType": "User",
"lastModifiedAt": "2024-05-17T14:50:18.382948+00:00",
"lastModifiedBy": "johndoe@contoso.com",
"lastModifiedByType": "User"
},
"tags": {},
"template": null,
"templateLink": null,
"type": "Microsoft.Resources/deploymentStacks"
}
È anche possibile verificare la distribuzione elencando le risorse gestite nello stack di distribuzione:
az stack group show \
--name 'demoStack' \
--resource-group 'demoRg' \
--output 'json'
L'output è simile a:
{
"actionOnUnmanage": {
"managementGroups": "detach",
"resourceGroups": "detach",
"resources": "detach"
},
"debugSetting": null,
"deletedResources": [],
"denySettings": {
"applyToChildScopes": false,
"excludedActions": null,
"excludedPrincipals": null,
"mode": "none"
},
"deploymentId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/demoRg/providers/Microsoft.Resources/deployments/demoStack-24051714epybc",
"deploymentScope": null,
"description": null,
"detachedResources": [],
"duration": "PT32.5330364S",
"error": null,
"failedResources": [],
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/demoRg/providers/Microsoft.Resources/deploymentStacks/demoStack",
"location": null,
"name": "demoStack",
"outputs": null,
"parameters": {},
"parametersLink": null,
"provisioningState": "succeeded",
"resourceGroup": "demoRg",
"resources": [
{
"denyStatus": "none",
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/demoRg/providers/Microsoft.Network/virtualNetworks/vnetthmimleef5fwk",
"resourceGroup": "demoRg",
"status": "managed"
},
{
"denyStatus": "none",
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/demoRg/providers/Microsoft.Storage/storageAccounts/storethmimleef5fwk",
"resourceGroup": "demoRg",
"status": "managed"
}
],
"systemData": {
"createdAt": "2024-05-17T14:50:18.382948+00:00",
"createdBy": "johndoe@contoso.com",
"createdByType": "User",
"lastModifiedAt": "2024-05-17T14:50:18.382948+00:00",
"lastModifiedBy": "johndoe@contoso.com",
"lastModifiedByType": "User"
},
"tags": {},
"template": null,
"templateLink": null,
"type": "Microsoft.Resources/deploymentStacks"
}
Dopo aver creato uno stack, è possibile accedere e visualizzare sia lo stack stesso che le risorse gestite associate tramite il portale di Azure. Passare al gruppo di risorse in cui è stato distribuito lo stack ed è possibile accedere a tutte le informazioni e le impostazioni pertinenti.
Aggiornare lo stack di distribuzione
Per aggiornare uno stack di distribuzione, è possibile modificare il file Bicep sottostante e rieseguire il comando crea stack di distribuzione.
Modificare main.bicep per modificare il nome dello SKU in Standard_GRS
da Standard_LRS
:
Esegui questo comando:
az stack group create \
--name 'demoStack' \
--resource-group 'demoRg' \
--template-file './main.bicep' \
--action-on-unmanage 'detachAll' \
--deny-settings-mode 'none'
Nel portale di Azure controllare le proprietà dell'account di archiviazione per confermare la modifica.
Usando lo stesso metodo, è possibile aggiungere una risorsa allo stack di distribuzione o rimuovere una risorsa gestita dallo stack di distribuzione. Per altre informazioni, vedere Aggiungere risorse a uno stack di distribuzione ed Eliminare risorse gestite da uno stack di distribuzione.
Eliminare lo stack di distribuzione
Per eliminare lo stack di distribuzione e le risorse gestite:
az stack group delete \
--name 'demoStack' \
--resource-group 'demoRg' \
--action-on-unmanage 'deleteAll'
Per eliminare lo stack di distribuzione, ma mantenere le risorse gestite:
az stack group delete \
--name 'demoStack' \
--resource-group 'demoRg' \
--action-on-unmanage 'detachAll'
Per ulteriori informazioni, vedere Eliminare stack di distribuzione.
Il comando rimuovi rimuove esclusivamente le risorse gestite e i gruppi di risorse gestiti. L'utente è comunque responsabile dell'eliminazione dei gruppi di risorse non gestiti dallo stack di distribuzione.
Pulire le risorse
Eliminare il gruppo di risorse non gestito.
az group delete \
--name 'demoRg'