빠른 시작: 서비스 카탈로그 관리되는 애플리케이션 배포

이 빠른 시작에서는 빠른 시작 문서 중 하나를 사용하여 만든 관리되는 애플리케이션 정의를 사용합니다. 배포는 두 개의 리소스 그룹을 만듭니다. 하나의 리소스 그룹에는 관리되는 애플리케이션이 포함되고 다른 하나는 배포된 리소스에 대한 관리되는 리소스 그룹입니다. 관리되는 애플리케이션 정의는 App Service 요금제, App Service 및 스토리지 계정을 배포합니다.

필수 조건

서비스 카탈로그 관리되는 애플리케이션 만들기

예에서는 애플리케이션 정의를 게시하기 위한 빠른 시작에서 만든 리소스 그룹 이름을 사용합니다. 빠른 시작을 사용하여 Bring Your Own Storage로 정의 게시한 경우 해당 리소스 그룹 이름을 사용합니다.

  • 애플리케이션 정의 게시: packageStorageGroupappDefinitionGroup.
  • Bring Your Own Storage로 정의 게시: packageStorageGroup, byosDefinitionStorageGroupbyosAppDefinitionGroup.

관리되는 애플리케이션 정의 가져오기

Azure PowerShell을 사용하여 관리되는 애플리케이션의 정의를 가져오려면 다음 명령을 실행합니다.

Visual Studio Code에서 새 PowerShell 터미널을 열고 Azure 구독에 로그인합니다.

Connect-AzAccount

이 명령은 기본 브라우저를 열고 Azure에 로그인하라는 메시지를 표시합니다. 자세한 내용은 Azure PowerShell로 로그인을 참조하세요.

Azure PowerShell에서 관리되는 애플리케이션의 정의를 가져옵니다. 이 예에서는 관리되는 애플리케이션 정의를 배포할 때 만들어진 리소스 그룹 이름 appDefinitionGroup을 사용합니다.

Get-AzManagedApplicationDefinition -ResourceGroupName appDefinitionGroup

Get-AzManagedApplicationDefinitionsampleManagedApplication과 같이 지정된 리소스 그룹에서 사용 가능한 모든 정의를 나열합니다.

관리되는 애플리케이션 정의의 리소스 ID에 대한 변수를 만듭니다.

$definitionid = (Get-AzManagedApplicationDefinition -ResourceGroupName appDefinitionGroup -Name sampleManagedApplication).ManagedApplicationDefinitionId

관리되는 애플리케이션을 배포할 때 $definitionid 변수의 값을 사용합니다.

리소스 그룹 및 매개 변수 만들기

배포 중에 사용되는 관리되는 애플리케이션에 대한 리소스 그룹을 만듭니다.

New-AzResourceGroup -Name applicationGroup -Location westus3

또한 관리되는 애플리케이션 리소스 그룹의 이름을 작성해야 합니다. 리소스 그룹은 관리되는 애플리케이션을 배포할 때 만들어집니다.

다음 명령을 실행하여 관리되는 리소스 그룹의 이름을 작성합니다.

$mrgprefix = 'mrg-sampleManagedApplication-'
$mrgtimestamp = Get-Date -UFormat "%Y%m%d%H%M%S"
$mrgname = $mrgprefix + $mrgtimestamp
$mrgname

$mrgprefix$mrgtimestamp 변수는 연결되고 $mrgname 변수에 저장됩니다. 변수의 값은 mrg-sampleManagedApplication-20230512103059 형식입니다. 관리되는 애플리케이션을 배포할 때 $mrgname 변수의 값을 사용합니다.

관리되는 애플리케이션의 배포 명령에 여러 매개 변수를 제공해야 합니다. JSON 형식 문자열을 사용하거나 JSON 파일을 만들 수 있습니다. 이 예에서는 JSON 형식의 문자열을 사용합니다. 인용 부호에 대한 PowerShell 이스케이프 문자는 백틱(`) 문자입니다. 명령이 여러 줄을 사용할 수 있도록 백틱은 줄 연속에도 사용됩니다.

JSON 형식 문자열의 구문은 다음과 같습니다.

"{ `"parameterName`": {`"value`":`"parameterValue`"}, `"parameterName`": {`"value`":`"parameterValue`"} }"

가독성을 위해 완료된 JSON 문자열은 줄 연속을 위해 백틱을 사용합니다. 값은 배포 명령에 사용되는 $params 변수에 저장됩니다. 관리되는 리소스를 배포하려면 JSON 문자열의 매개 변수가 필요합니다.

$params="{ `"appServicePlanName`": {`"value`":`"demoAppServicePlan`"}, `
`"appServiceNamePrefix`": {`"value`":`"demoApp`"}, `
`"storageAccountNamePrefix`": {`"value`":`"demostg1234`"}, `
`"storageAccountType`": {`"value`":`"Standard_LRS`"} }"

관리되는 리소스를 작성하기 위한 매개 변수:

  • appServicePlanName: 플랜 이름을 만듭니다. 최대 40자의 영숫자와 하이픈입니다. 예: demoAppServicePlan. App Service 요금제 이름은 구독의 리소스 그룹 내에서 고유해야 합니다.
  • appServiceNamePrefix: 플랜 이름의 접두사를 만듭니다. 최대 47자의 영숫자 문자 또는 하이픈입니다. 예: demoApp. 배포하는 동안 접두사는 고유한 문자열과 연결되어 Azure 전체에서 전역적으로 고유한 이름을 만듭니다.
  • storageAccountNamePrefix: 소문자와 숫자만 사용하고 최대 11자까지 사용할 수 있습니다. 예: demostg1234. 배포하는 동안 접두사는 고유한 문자열과 연결되어 Azure 전체에서 전역적으로 고유한 이름을 만듭니다. 접두사를 만들고 있지만 컨트롤은 Azure에서 기존 이름의 유효성을 검사하고 해당 이름이 이미 존재한다는 유효성 검사 메시지를 게시할 수 있습니다. 그렇다면 다른 접두사를 선택합니다.
  • storageAccountType: 옵션은 Premium_LRS, Standard_LRS 및 Standard_GRS입니다.

관리되는 애플리케이션 배포

다음 명령을 실행하여 관리되는 애플리케이션을 배포합니다.

New-AzManagedApplication `
  -Name "demoManagedApplication" `
  -ResourceGroupName applicationGroup `
  -Location westus3 `
  -ManagedResourceGroupName $mrgname `
  -ManagedApplicationDefinitionId $definitionid `
  -Kind ServiceCatalog `
  -Parameter $params

배포 명령에 사용되는 매개 변수:

  • Name: 관리되는 애플리케이션의 이름을 지정합니다. 이 예에서는 demoManagedApplication을 사용합니다.
  • ResourceGroupName: 관리되는 애플리케이션에 대해 만든 리소스 그룹의 이름입니다.
  • Location: 리소스를 배포할 지역을 지정합니다. 이 예에서는 westus3을 사용합니다.
  • ManagedResourceGroupName: $mrgname 변수의 값을 사용합니다. 관리되는 리소스 그룹은 관리되는 애플리케이션이 배포될 때 만들어집니다.
  • ManagedApplicationDefinitionId: 관리되는 애플리케이션 정의의 리소스 ID에 대해 $definitionid 변수의 값을 사용합니다.
  • Kind: 관리되는 애플리케이션 형식을 지정합니다. 이 예에서는 ServiceCatalog를 사용합니다.
  • Parameter: JSON 형식 문자열에서 $params 변수의 값을 사용합니다.

결과 보기

서비스 카탈로그 관리되는 애플리케이션이 배포되면 두 개의 새 리소스 그룹이 생깁니다. 하나의 리소스 그룹에는 관리되는 애플리케이션이 포함됩니다. 다른 리소스 그룹에는 배포된 관리되는 리소스가 포함되어 있습니다. 이 예에서는 App Service, App Service 요금제 및 스토리지 계정입니다.

관리되는 애플리케이션

배포가 완료되면 관리되는 애플리케이션의 상태를 확인할 수 있습니다.

다음 명령을 실행하여 관리되는 애플리케이션의 상태를 확인합니다.

Get-AzManagedApplication -Name demoManagedApplication -ResourceGroupName applicationGroup

Properties 정보를 더 쉽게 읽을 수 있도록 속성을 확장합니다.

Get-AzManagedApplication -Name demoManagedApplication -ResourceGroupName applicationGroup | Select-Object -ExpandProperty Properties

관리형 리소스

관리되는 리소스 그룹에 배포된 리소스를 볼 수 있습니다.

관리되는 리소스 그룹의 리소스를 표시하려면 다음 명령을 실행합니다. 매개 변수를 만들 때 $mrgname 변수를 만들었습니다.

Get-AzResource -ResourceGroupName $mrgname

관리되는 리소스 그룹에 대한 모든 역할 할당을 표시합니다.

Get-AzRoleAssignment -ResourceGroupName $mrgname

빠른 시작 문서에서 만든 관리되는 애플리케이션 정의는 소유자 역할 할당이 있는 그룹을 사용했습니다. 다음 명령으로 그룹을 볼 수 있습니다.

Get-AzRoleAssignment -ResourceGroupName $mrgname -RoleDefinitionName Owner

관리되는 리소스 그룹에 대한 거부 할당을 나열할 수도 있습니다.

Get-AzDenyAssignment -ResourceGroupName $mrgname

리소스 정리

관리되는 애플리케이션을 완료하면 리소스 그룹을 삭제할 수 있으며 그러면 만든 모든 리소스가 제거됩니다. 예를 들어, 이 빠른 시작에서는 applicationGroup 리소스 그룹과 mrg-sampleManagedApplication 접두사가 있는 관리되는 리소스 그룹을 만들었습니다.

이 명령은 리소스 그룹을 제거할 것인지 확인하라는 메시지를 표시합니다.

Remove-AzResourceGroup -Name applicationGroup

관리되는 애플리케이션 정의를 삭제하려면 빠른 시작 문서에서 만든 리소스 그룹을 삭제합니다.

  • 애플리케이션 정의 게시: packageStorageGroupappDefinitionGroup.
  • Bring Your Own Storage로 정의 게시: packageStorageGroup, byosDefinitionStorageGroupbyosAppDefinitionGroup.

다음 단계