Memperbarui dan menghapus tumpukan penyebaran
Tumpukan penyebaran memungkinkan Anda mengelola sumber daya Azure menggunakan proses dan templat standar. Saat aplikasi Anda berubah, begitu juga sumber daya yang membentuk aplikasi. Menambahkan dan menghapus sumber daya terkelola adalah bagian penting dari manajemen siklus hidup.
Anda menyelesaikan sprint 1 dan penyebaran awal aplikasi deposit menggunakan tumpukan penyebaran. Sekarang, Anda perlu mempersiapkan sprint 2 memperkenalkan layanan baru ke aplikasi. Anda ingin mempelajari selengkapnya tentang cara memperbarui dan menghapus tumpukan penyebaran dan sumber daya terkelola.
Di unit ini, Anda mempelajari cara memperbarui tumpukan penyebaran dengan menambahkan sumber daya ke file Bicep Anda. Selain itu, Anda mempelajari cara menghapus tumpukan penyebaran dan sumber daya terkelolanya.
Catatan
Perintah dalam unit ini ditampilkan untuk mengilustrasikan konsep. Jangan jalankan perintah terlebih dahulu. Anda akan segera mempraktikkan apa yang Anda pelajari di sini.
Memperbarui tumpukan penyebaran
Seiring berkembangnya aplikasi, sumber dayanya juga demikian. Bagaimana cara memperbarui tumpukan penyebaran dan sumber daya terkelolanya saat layanan dan fitur baru ditambahkan? Situasi apa yang mengharuskan kita memperbarui tumpukan penyebaran? Menambahkan sumber daya baru atau mengubah properti sumber daya terkelola yang ada akan mengharuskan kami memperbarui tumpukan penyebaran.
Memperbarui tumpukan berarti memperbarui sumber daya yang ditentukan dalam templat ARM JSON, file Bicep, atau spesifikasi templat kami. Setelah perubahan dilakukan pada file templat, kami memperbarui tumpukan penyebaran menggunakan perintah yang sesuai.
Katakanlah aplikasi deposit kami perlu menambahkan database Azure SQL baru, dan kami ingin tumpukan penyebaran mengelola database. Untuk menambahkan database baru, kami memperbarui file Bicep kami untuk menentukan server dan database Azure SQL baru.
// Parameters
@description('The location for all resources.')
param location string = 'eastus'
@description('The name of the SQL database.')
param sqlDatabaseName string = 'sqldb-${uniqueString(resourceGroup().id)}'
@description('The password of the admin user.')
param sqlServerAdminUserName string
@description('The name of the admin user.')
@secure()
param sqlServerAdminPassword string
@description('The name of the SQL server.')
param sqlServerName string = 'sql-${uniqueString(resourceGroup().id)}'
@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
}
}
// Resource - SQL Server
resource sqlServer 'Microsoft.Sql/servers@2021-11-01' ={
name: sqlServerName
location: location
properties: {
administratorLogin: sqlServerAdminUserName
administratorLoginPassword: sqlServerAdminPassword
}
}
// Resource - SQL Database
resource sqlServerDatabase 'Microsoft.Sql/servers/databases@2021-11-01' = {
parent: sqlServer
name: sqlDatabaseName
location: location
sku: {
name: 'Standard'
tier: 'Standard'
}
}
Kode yang disorot mendefinisikan database Azure SQL baru kami untuk aplikasi setoran kami. Dengan sumber daya baru yang ditentukan, kita perlu memperbarui tumpukan penyebaran.
Untuk memperbarui tumpukan penyebaran menggunakan Azure CLI, gunakan az stack group create perintah .
az stack group create \
--name stack-deposits \
--resource-group rg-depositsApplication \
--template-file ./main.bicep \
--action-on-unmanage detachAll \
--deny-settings-mode none
Catatan
Azure CLI tidak memiliki perintah khusus untuk memperbarui tumpukan penyebaran. Gunakan perintah buat untuk memperbarui tumpukan.
Saat melakukan pembaruan pada tumpukan, Anda menerima pesan yang menyatakan bahwa tumpukan sudah ada di langganan saat ini. Jika nilai tindakan pada parameter unmanage berubah, peringatan akan memberi tahu Anda tentang nilai baru.
Untuk memverifikasi bahwa tumpukan mengelola sumber daya baru, gunakan az stack group show perintah .
az stack group show \
--resource-group rg-depositsApplication
--name stack-deposits
{
"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,
"parameters": {
"sqlServerAdminPassword": {
"reference": null,
"type": "securestring",
"value": ""
},
"sqlServerAdminUserName": {
"reference": null,
"type": "string",
"value": "sqladmin"
}
},
"parametersLink": null,
"provisioningState": "succeeded",
"resourceGroup": "rg-depositsApplication",
"resources": [
{
"denyStatus": "none",
"id": "/subscriptions/././rg-depositsApplication/././servers/sql-eque2jlrboltq",
"resourceGroup": "rg-depositsApplication",
"status": "managed"
},
{
"denyStatus": "none",
"id": "/subscriptions/././rg-depositsApplication/././servers/sql-eque2jlrboltq/databases/sqldb-eque2jlrboltq",
"resourceGroup": "rg-depositsApplication",
"status": "managed"
},
{
"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"
}
Kode yang disorot menunjukkan server Azure SQL baru dan database Azure SQL seperti yang dikelola oleh tumpukan penyebaran.
Untuk memperbarui tumpukan penyebaran menggunakan Azure PowerShell, gunakan Set-AzResourceGroupDeploymentStack perintah .
Set-AzResourceGroupDeploymentStack `
-Name stack-deposits `
-ResourceGroupName rg-depositsApplication `
-TemplateFile ./main.bicep `
-ActionOnUnmanage DetachAll `
-DenySettingsMode None
Untuk memverifikasi bahwa tumpukan mengelola sumber daya baru, gunakan Get-AzResourceGroupDeploymentStack perintah .
Get-AzResourceGroupDeploymentStack `
-ResourceGroupName rg-depositsApplication `
-Name stack-deposits
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
/subscriptions/././rg-depositsApplication/././servers/sql-eque2jlrboltq
/subscriptions/././rg-depositsApplication/././servers/sql-eque2jlrboltq/databases/sqldb-eque2jlrboltq
Parameters :
Name Type Value
======================== ========================= ==========
sqlServerAdminUserName string "sqladmin"
sqlServerAdminPassword securestring ""
Kode yang disorot menunjukkan server Azure SQL baru dan database Azure SQL seperti yang dikelola oleh tumpukan penyebaran.
Dalam modul berikutnya, Anda bekerja mengelola siklus hidup sumber daya, termasuk menambahkan, memperbarui, mencopot, dan menghapus sumber daya terkelola.
Menghapus tumpukan penyebaran
Pembersihan sumber daya yang andal adalah fitur utama tumpukan penyebaran. Saat menghapus tumpukan penyebaran, Anda juga dapat menghapus sumber daya terkelola, grup sumber daya, dan grup manajemen. Menggunakan satu panggilan API menghilangkan kebutuhan untuk memahami dependensi. Seperti halnya membuat dan memperbarui tumpukan penyebaran, tindakan pada parameter unmanage menentukan cara Azure menangani sumber daya yang dilepas.
Catatan
Dalam modul ini, kami bekerja dengan tumpukan penyebaran tercakup grup resrouce. Dalam situasi ini, grup sumber daya tidak dikelola oleh tumpukan. Nilai 'hapus semua' untuk tindakan pada parameter unmanage tidak menghapus grup sumber daya tempat tumpukan berada. Anda perlu menghapus grup sumber daya setelah tumpukan dan sumber dayanya dihapus.
Untuk menghapus tumpukan penyebaran menggunakan Azure CLI, gunakan az stack group delete perintah . Argumen --action-on-unmanaged menentukan cara Azure menangani sumber daya, grup sumber daya, dan grup manajemen yang terlepas.
az stack group delete \
--name stack-deposits \
--resource-group rg-depositsApplication \
--action-on-unmanage deleteAll
Untuk menghapus tumpukan penyebaran menggunakan Azure PowerShell, gunakan Remove-AzResourceGroupDeploymentStack perintah . Argumen -ActionOnUnmanage menentukan cara Azure menangani sumber daya, grup sumber daya, dan grup manajemen yang terlepas.
Remove-AzResourceGroupDeploymentStack `
-Name stack-deposits `
-ResourceGroupName rg-depositsApplication `
-ActionOnUnmanage -DeleteAll