다음을 통해 공유


Azure PowerShell을 사용하여 템플릿 내보내기

Azure Resource Manager 템플릿을 만드는 데 도움이 되도록 기존 리소스에서 템플릿을 내보낼 수 있습니다. 내보낸 템플릿을 사용하면 리소스를 배포하는 JSON 구문 및 속성을 이해할 수 있습니다. 향후 배포를 자동화하려면 내보낸 템플릿부터 시작하여 시나리오에 맞게 수정합니다. 내보내기 템플릿 프로세스는 사용 가능한 템플릿을 만들려고 시도합니다. 그러나 내보낸 대부분의 템플릿은 Azure 리소스를 배포하는 데 사용되기 전에 약간의 수정이 필요합니다.

Resource Manager를 사용하면 템플릿으로 내보내기 위해 하나 이상의 리소스를 선택할 수 있습니다. 템플릿에 필요한 리소스에 정확히 집중할 수 있습니다.

이 문서에서는 Azure PowerShell을 통해 템플릿을 내보내는 방법을 보여 줍니다. 다른 옵션은 다음을 참조하세요.

적절한 내보내기 옵션 선택

두 가지 방법으로 템플릿을 내보낼 수 있습니다.

  • 리소스 그룹 또는 리소스에서 내보냅니다. 이 옵션은 기존 리소스에서 새 템플릿을 생성합니다. 내보낸 템플릿은 리소스 그룹의 현재 상태에 대한 "스냅샷"입니다. 전체 리소스 그룹 또는 해당 리소스 그룹 내의 특정 리소스를 내보낼 수 있습니다.

  • 기록에서 저장 이 옵션은 배포에 사용되는 템플릿의 정확한 복사본을 검색합니다. 배포 기록에서 배포를 지정합니다.

선택하는 옵션에 따라 내보낸 템플릿의 품질이 달라집니다.

리소스 그룹 또는 리소스에서 기록에서
템플릿이 자동 생성됩니다. 배포하기 전에 코드를 개선하고 싶을 것입니다. 템플릿은 템플릿 제작자가 만든 것과 똑같은 복사본입니다. 변경 없이 재배포할 준비가 되었습니다.
템플릿은 리소스의 현재 상태를 보여 주는 스냅샷입니다. 여기에는 배포 후에 수행된 모든 수동 변경 내용이 포함됩니다. 템플릿은 배포 시 리소스의 상태만 표시합니다. 배포 후에 수행된 수동 변경 내용은 포함되지 않습니다.
리소스 그룹에서 내보낼 리소스를 선택할 수 있습니다. 특정 배포의 모든 리소스가 포함됩니다. 이 리소스의 하위 세트를 선택하거나 다른 시간에 추가된 리소스를 추가할 수 없습니다.
템플릿에는 배포 중에 일반적으로 설정하지 않는 속성을 포함하여 리소스에 관한 모든 속성이 포함됩니다. 템플릿을 다시 사용하기 전에 해당 속성을 제거하거나 정리하는 것이 좋습니다. 템플릿에는 배포에 필요한 속성만 포함됩니다. 템플릿이 더 희박하고 읽기 쉽습니다.
템플릿에 다시 사용해야 하는 모든 매개 변수가 포함되지 않을 수 있습니다. 대부분의 속성 값은 템플릿에 하드 코딩되어 있습니다. 다른 환경에서 템플릿을 다시 배포하려면 리소스를 구성하는 기능을 개선하는 매개 변수를 추가해야 합니다. 고유 매개 변수를 작성할 수 있도록 매개 변수 포함을 선택 취소할 수 있습니다. 템플릿에는 다양한 환경에서 쉽게 다시 배포할 수 있는 매개 변수가 포함되어 있습니다.

다음의 경우 리소스 그룹 또는 리소스에서 템플릿을 내보냅니다.

  • 원래 배포 후에 적용된 리소스의 변경 내용을 캡처해야 합니다.
  • 내보낼 리소스를 선택합니다.
  • 리소스가 템플릿으로 만들어지지 않았습니다.

다음과 같은 경우 기록에서 템플릿을 내보냅니다.

  • 다시 사용하기 쉬운 템플릿이 필요합니다.
  • 원래 배포 후에 변경한 내용을 포함할 필요가 없습니다.

제한 사항

내보내기는 성공이 보장되지 않습니다. 내보내기는 기존 리소스를 프로덕션에서 사용할 수 있는 템플릿으로 전환하는 신뢰할 수 있는 방법이 아닙니다. 손으로 작성한 Bicep 파일, ARM 템플릿 또는 terraform을 사용하여 처음부터 리소스를 만드는 것이 좋습니다.

리소스 그룹 또는 리소스에서 내보낼 때 내보낸 템플릿은 각 리소스 종류의 게시된 스키마에서 생성됩니다. 스키마에 리소스 종류의 최신 버전이 없는 경우도 있습니다. 내보낸 템플릿을 확인하여 필요한 속성이 포함되어 있는지 확인합니다. 필요한 경우, 필요한 API 버전을 사용하도록 내보낸 템플릿을 편집합니다.

내보낸 템플릿에서 일부 암호 매개 변수가 누락되었을 수 있습니다. 템플릿을 사용하여 리소스를 배포하려면 먼저 템플릿 참조를 확인하고 이러한 매개 변수를 수동으로 추가해야 합니다.

템플릿 내보내기 기능은 Azure Data Factory 리소스 내보내기를 지원하지 않습니다. Data Factory 리소스를 내보내는 방법에 관한 자세한 내용은 Azure Data Factory에서 데이터 팩터리 복사 또는 복제를 참조하세요.

클래식 배포 모델을 통해 만든 리소스를 내보내려면 Resource Manager 배포 모델로 마이그레이션해야 합니다.

리소스 종류를 내보내지 못했음을 나타내는 템플릿을 내보낼 때 경고가 표시되면 해당 리소스의 속성을 계속 검색할 수 있습니다. 리소스 속성은 템플릿 참조를 참조하세요. 리소스 종류의 Azure REST API도 살펴볼 수 있습니다.

내보낸 템플릿을 만들 리소스 그룹의 리소스는 200개로 제한됩니다. 200개가 넘는 리소스가 있는 리소스 그룹을 내보내려는 경우 Export template is not supported for resource groups more than 200 resources 오류 메시지가 표시됩니다.

리소스 그룹에서 템플릿 내보내기

리소스 그룹을 설정한 후 리소스 그룹에 대한 Azure Resource Manager 템플릿을 내보낼 수 있습니다.

리소스 그룹의 모든 리소스를 내보내려면 Export-AzResourceGroup cmdlet을 사용하고 리소스 그룹 이름을 제공합니다.

Export-AzResourceGroup -ResourceGroupName demoGroup

템플릿을 로컬 파일로 저장합니다.

리소스 그룹의 모든 리소스를 내보내는 대신, 내보낼 리소스를 선택할 수 있습니다.

한 리소스를 내보내려면 해당 리소스 ID를 제공합니다.

$resource = Get-AzResource `
  -ResourceGroupName <resource-group-name> `
  -ResourceName <resource-name> `
  -ResourceType <resource-type>
Export-AzResourceGroup `
  -ResourceGroupName <resource-group-name> `
  -Resource $resource.ResourceId

둘 이상의 리소스를 내보내려면 리소스 ID를 일렬로 제공합니다.

Export-AzResourceGroup `
  -ResourceGroupName <resource-group-name> `
  -Resource @($resource1.ResourceId, $resource2.ResourceId)

템플릿을 내보낼 때 템플릿에서 매개 변수를 사용할지 여부를 지정할 수 있습니다. 기본적으로 리소스 이름에 대한 매개 변수는 포함되지만 기본값은 없습니다.

"parameters": {
  "serverfarms_demoHostPlan_name": {
    "type": "String"
  },
  "sites_webSite3bwt23ktvdo36_name": {
    "type": "String"
  }
}

템플릿을 내보낼 때 -SkipResourceNameParameterization 매개 변수를 사용하는 경우 리소스 이름에 대한 매개 변수가 템플릿에 포함되지 않습니다. 대신, 리소스 이름이 현재 값으로 리소스에 직접 설정됩니다. 배포하는 동안 이름을 사용자 지정할 수 없습니다.

"resources": [
  {
    "type": "Microsoft.Web/serverfarms",
    "apiVersion": "2022-09-01",
    "name": "demoHostPlan",
    ...
  }
]

템플릿을 내보낼 때 -IncludeParameterDefaultValue 매개 변수를 사용하는 경우 템플릿 매개 변수는 현재 값으로 설정된 기본값을 포함합니다. 기본값을 사용하거나 다른 값을 제공하여 기본값을 덮어쓸 수 있습니다.

"parameters": {
  "serverfarms_demoHostPlan_name": {
    "defaultValue": "demoHostPlan",
    "type": "String"
  },
  "sites_webSite3bwt23ktvdo36_name": {
    "defaultValue": "webSite3bwt23ktvdo36",
    "type": "String"
  }
}

배포 기록에서 템플릿 저장

배포 기록의 배포에서 템플릿을 저장할 수 있습니다. 배포에 사용된 것과 똑같은 템플릿을 얻을 수 있습니다.

리소스 그룹 배포에서 템플릿을 가져오려면 Save-AzResourceGroupDeploymentTemplate cmdlet을 사용합니다. 검색할 배포 이름을 지정합니다. 배포 이름 가져오기에 대한 도움말은 Azure Resource Manager로 배포 기록 보기를 참조하세요.

Save-AzResourceGroupDeploymentTemplate -ResourceGroupName demoGroup -DeploymentName demoDeployment

템플릿은 배포 이름과 함께 로컬 파일로 저장됩니다.

다른 수준에서 템플릿을 배포하려면 다음을 사용합니다.

다음 단계