연습 - 배포 스택 업데이트 및 삭제
사용자는 새로운 예금 애플리케이션을 위한 스프린트 2에 있습니다. Bicep 파일에서 Azure SQL 데이터베이스를 정의하여 배포 스택 업데이트를 테스트하려고 합니다. 스택이 새로 정의된 리소스를 관리하고 있는지 확인하려고 합니다.
이 연습에서는 새 리소스를 포함하도록 이전에 만든 Bicep 파일을 업데이트합니다. 또한 리소스를 관리하는 배포 스택을 업데이트하고 삭제합니다.
- Azure SQL 데이터베이스를 포함하도록 Bicep 파일을 업데이트합니다.
- 새 데이터베이스를 배포하도록 배포 스택을 업데이트합니다.
- 배포 스택의 관리되는 리소스의 유효성을 검사합니다.
- 배포 스택 및 관리되는 리소스를 삭제합니다.
- 배포 스택 및 관리되는 리소스의 삭제 유효성을 검사합니다.
Azure SQL 데이터베이스를 포함하도록 Bicep 파일 업데이트
Visual Studio Code에서 main.bicep 파일을 엽니다.
강조 표시된 코드를 파일의 매개 변수 섹션에 추가합니다.
// 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 - 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' } }
변경 내용을 파일에 저장합니다.
배포 스택 업데이트
Bicep 파일이 업데이트되면 새 Azure SQL 데이터베이스가 관리되는 리소스로 환경에 배포되도록 배포 스택을 업데이트하려고 합니다.
배포 스택을 업데이트하려면 Visual Studio Code의 터미널에서 다음 명령을 실행합니다.
az stack group create \ --name stack-deposits \ --resource-group rg-depositsApplication \ --template-file ./main.bicep \ --action-on-unmanage deleteAll \ --deny-settings-mode none
현재 구독에 스택이 이미 존재한다는 메시지가 표시됩니다. 관리되지 않는 작업 매개 변수의 값이 변경되면 경고가 새 값을 알려 줍니다.
y
을(를) 누른 다음 'Enter'를 누릅니다.sqlServerAdminUserName
값을 입력하라는 메시지가 표시됩니다. SQL Server 관리자의 이름을 만든 다음 'Enter'를 누르세요.sqlServerAdminPassword
값을 입력하라는 메시지가 표시됩니다. SQL Server 관리자를 위한 복잡한 비밀번호를 만든 다음 'Enter'를 누르세요.
다음 작업으로 이동하기 전에 업데이트 작업이 완료되기를 기다립니다.
Bicep 파일이 업데이트되면 새 Azure SQL 데이터베이스가 관리되는 리소스로 환경에 배포되도록 배포 스택을 업데이트하려고 합니다.
배포 스택을 업데이트하려면 Visual Studio Code의 터미널에서 다음 명령을 실행합니다.
Set-AzResourceGroupDeploymentStack ` -Name stack-deposits ` -ResourceGroupName rg-depositsApplication ` -TemplateFile ./main.bicep ` -ActionOnUnmanage DeleteAll ` -DenySettingsMode none
sqlServerAdminUserName
값을 입력하라는 메시지가 표시됩니다. SQL Server 관리자의 이름을 만든 다음 'Enter'를 누르세요.sqlServerAdminPassword
값을 입력하라는 메시지가 표시됩니다. SQL Server 관리자를 위한 복잡한 비밀번호를 만든 다음 'Enter'를 누르세요.다음 작업으로 이동하기 전에 업데이트 작업이 완료되기를 기다리세요.
배포 스택 및 관리되는 리소스에 대한 업데이트 확인
업데이트가 완료되면 배포 스택이 Azure SQL 데이터베이스를 관리하고 있는지 확인하려고 합니다. 배포 스택의 구성을 보려면 Visual Studio Code의 터미널에서 다음 명령을 실행합니다.
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"
}
출력의 리소스 섹션을 확인합니다. 이제 관리되는 리소스로 나열된 SQL Server 및 SQL 데이터베이스가 표시됩니다.
업데이트가 완료되면 배포 스택이 Azure SQL 데이터베이스를 관리하고 있는지 확인하려고 합니다. 배포 스택의 구성을 보려면 Visual Studio Code의 터미널에서 다음 명령을 실행합니다.
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 ""
출력의 리소스 섹션을 확인합니다. 이제 관리되는 리소스로 나열된 SQL Server 및 SQL 데이터베이스가 표시됩니다.
배포 스택 삭제
배포 스택 및 관리되는 리소스를 삭제하려면 Visual Studio Code의 터미널에서 다음 명령을 실행합니다.
az stack group delete \ --name stack-deposits \ --resource-group rg-depositsApplication \ --action-on-unmanage deleteAll
스택 및 지정된 리소스를 삭제할지 확인하라는 메시지가 표시됩니다.
삭제 작업이 완료되면 Azure Portal을 열고 배포 스택 및 해당 리소스가 제거되었는지 확인합니다.
이러한 연습에 사용되는 리소스 그룹을 삭제하려면 Visual Studio Code의 터미널에서 다음 명령을 실행합니다.
az group delete \ -name rg-depositsApplication
리소스 그룹을 제거할지 확인하라는 메시지가 표시됩니다. 'Y'를 누른 다음 'Enter'를 누릅니다.
배포 스택 및 관리되는 리소스를 삭제하려면 Visual Studio Code의 터미널에서 다음 명령을 실행합니다.
Remove-AzResourceGroupDeploymentStack ` -Name stack-deposits ` -ResourceGroupName rg-depositsApplication ` -ActionOnUnmanage DeleteAll
스택 및 지정된 리소스를 삭제할지 확인하라는 메시지가 표시됩니다.
삭제 작업이 완료되면 Azure Portal을 열고 배포 스택 및 해당 리소스가 제거되었는지 확인합니다.
이러한 연습에 사용되는 리소스 그룹을 삭제하려면 Visual Studio Code의 터미널에서 다음 명령을 실행합니다.
Remove-AzResourceGroup ` -Name rg-depositsApplication
리소스 그룹을 제거할지 확인하라는 메시지가 표시됩니다. 'Y'를 누른 다음 'Enter'를 누릅니다.