Guia de início rápido: criar e implantar uma pilha de implantação com o Bicep
Este guia de início rápido descreve como criar uma pilha de implantação.
Pré-requisitos
- Uma conta do Azure com uma subscrição ativa. Crie uma conta gratuitamente.
- Azure PowerShell versão 10.1.0 ou posterior ou CLI do Azure versão 2.50.0 ou posterior.
- Visual Studio Code com a extensão Bicep.
Criar um arquivo Bicep
Crie um arquivo Bicep para criar uma conta de armazenamento e uma rede virtual.
param resourceGroupLocation string = resourceGroup().location
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
param vnetName string = 'vnet${uniqueString(resourceGroup().id)}'
resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' = {
name: storageAccountName
location: resourceGroupLocation
kind: 'StorageV2'
sku: {
name: 'Standard_LRS'
}
}
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-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'
}
}
]
}
}
Salve o arquivo Bicep como main.bicep.
Criar uma pilha de implantação
Neste início rápido, você cria a pilha de implantação no escopo do grupo de recursos. Você também pode criar a pilha de implantação no escopo da assinatura ou no escopo do grupo de gerenciamento. Para obter mais informações, consulte Criar pilhas de implantação.
az group create \
--name 'demoRg' \
--location 'centralus'
az stack group create \
--name demoStack \
--resource-group 'demoRg' \
--template-file './main.bicep' \
--deny-settings-mode 'none'
Verificar a implementação
Para listar as pilhas de implantação implantadas no nível do grupo de recursos:
az stack group show \
--resource-group 'demoRg' \
--name 'demoStack'
A saída mostra dois recursos gerenciados - uma conta de armazenamento e uma rede virtual:
{
"actionOnUnmanage": {
"managementGroups": "detach",
"resourceGroups": "detach",
"resources": "detach"
},
"debugSetting": null,
"deletedResources": [],
"denySettings": {
"applyToChildScopes": false,
"excludedActions": null,
"excludedPrincipals": null,
"mode": "none"
},
"deploymentId": "/subscriptions/00000000-0000-0000-0000-000000000000/demoRg/providers/Microsoft.Resources/deployments/demoStack-2023-06-08-14-58-28-fd6bb",
"deploymentScope": null,
"description": null,
"detachedResources": [],
"duration": "PT30.1685405S",
"error": null,
"failedResources": [],
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/demoRg/providers/Microsoft.Resources/deploymentStacks/demoStack",
"location": null,
"name": "demoStack",
"outputs": null,
"parameters": {},
"parametersLink": null,
"provisioningState": "succeeded",
"resourceGroup": "demoRg",
"resources": [
{
"denyStatus": "none",
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/demoRg/providers/Microsoft.Network/virtualNetworks/vnetthmimleef5fwk",
"resourceGroup": "demoRg",
"status": "managed"
},
{
"denyStatus": "none",
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/demoRg/providers/Microsoft.Storage/storageAccounts/storethmimleef5fwk",
"resourceGroup": "demoRg",
"status": "managed"
}
],
"systemData": {
"createdAt": "2023-06-08T14:58:28.377564+00:00",
"createdBy": "johndole@contoso.com",
"createdByType": "User",
"lastModifiedAt": "2023-06-08T14:58:28.377564+00:00",
"lastModifiedBy": "johndole@contoso.com",
"lastModifiedByType": "User"
},
"tags": null,
"template": null,
"templateLink": null,
"type": "Microsoft.Resources/deploymentStacks"
}
Você também pode verificar a implantação listando os recursos gerenciados na pilha de implantação:
az stack group show \
--name 'demoStack' \
--resource-group 'demoRg' \
--output 'json'
O resultado é semelhante a:
{
"actionOnUnmanage": {
"managementGroups": "detach",
"resourceGroups": "detach",
"resources": "detach"
},
"debugSetting": null,
"deletedResources": [],
"denySettings": {
"applyToChildScopes": false,
"excludedActions": null,
"excludedPrincipals": null,
"mode": "none"
},
"deploymentId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demoRg/providers/Microsoft.Resources/deployments/demoStack-2023-06-05-20-55-48-38d09",
"deploymentScope": null,
"description": null,
"detachedResources": [],
"duration": "PT29.006353S",
"error": null,
"failedResources": [],
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/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/00000000-0000-0000-0000-000000000000/resourceGroups/demoRg/providers/Microsoft.Network/virtualNetworks/vnetzu6pnx54hqubm",
"resourceGroup": "demoRg",
"status": "managed"
},
{
"denyStatus": "none",
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demoRg/providers/Microsoft.Storage/storageAccounts/storezu6pnx54hqubm",
"resourceGroup": "demoRg",
"status": "managed"
}
],
"systemData": {
"createdAt": "2023-06-05T20:55:48.006789+00:00",
"createdBy": "johndole@contoso.com",
"createdByType": "User",
"lastModifiedAt": "2023-06-05T20:55:48.006789+00:00",
"lastModifiedBy": "johndole@contoso.com",
"lastModifiedByType": "User"
},
"tags": null,
"template": null,
"templateLink": null,
"type": "Microsoft.Resources/deploymentStacks"
}
Depois que uma pilha é criada, você pode acessar e exibir a própria pilha e os recursos gerenciados associados a ela por meio do portal do Azure. Navegue até o grupo de recursos onde a pilha foi implantada e você pode acessar todas as informações e configurações relevantes.
Atualizar a pilha de implantação
Para atualizar uma pilha de implantação, você pode modificar o arquivo Bicep subjacente e executar novamente o comando create deployment stack.
Edite main.bicep para alterar o nome da sku para Standard_GRS
de Standard_LRS
:
Execute o seguinte comando:
az stack group create \
--name 'demoStack' \
--resource-group 'demoRg' \
--template-file './main.bicep' \
--deny-settings-mode 'none'
No portal do Azure, verifique as propriedades da conta de armazenamento para confirmar a alteração.
Usando o mesmo método, você pode adicionar um recurso à pilha de implantação ou remover um recurso gerenciado da pilha de implantação. Para obter mais informações, consulte Adicionar recursos a uma pilha de implantação e Excluir recursos gerenciados de uma pilha de implantação.
Excluir a pilha de implantação
Para excluir a pilha de implantação e os recursos gerenciados:
az stack group delete \
--name 'demoStack' \
--resource-group 'demoRg' \
--delete-all
Se você executar os comandos delete sem excluir todos os parâmetros, os recursos gerenciados serão desanexados, mas não excluídos. Por exemplo:
az stack group delete \
--name 'demoStack' \
--resource-group 'demoRg'
Os parâmetros a seguir podem ser usados para controlar entre desanexar e excluir.
--delete-all
: Exclua os recursos e os grupos de recursos.--delete-resources
: Exclua apenas os recursos.--delete-resource-groups
: exclua somente os grupos de recursos. É inválido usardelete-resource-groups
por si só.delete-resource-groups
deve ser utilizado em conjunto comdelete-resources
.
Para obter mais informações, consulte Excluir pilhas de implantação.
O comando remove exclusivamente recursos gerenciados e grupos de recursos gerenciados. Você ainda é responsável por excluir os grupos de recursos que não são gerenciados pela pilha de implantação.
Clean up resources (Limpar recursos)
Exclua o grupo de recursos não gerenciados.
az group delete --name 'demoRg'