Az 1.0.0의 호환성이 손상되는 변경
이 문서에서는 AzureRM 6.x와 새 Az 모듈 버전 1.x 이상 간의 변경 내용에 대한 자세한 정보를 제공합니다. 목차는 스크립트에 영향을 줄 수 있는 모듈별 변경을 포함하여 전체 마이그레이션 경로를 안내합니다.
AzureRM에서 Az로 마이그레이션을 시작하는 일반적인 조언은 AzureRM에서 Az로 마이그레이션 시작을 참조하세요.
Important
Az 1.0.0과 Az 2.0.0 간에도 호환성이 손상되는 변경이 있었습니다. AzureRM에서 Az로 업데이트하기 위한 이 가이드에 따라 추가 변경이 필요한지 알아보려면 Az 2.0.0 호환성이 손상되는 변경 내용을 참조하세요.
목차
- 일반적인 주요 변경 내용
- 모듈의 호환성이 손상되는 변경
- Az.ApiManagement(이전에는 AzureRM.ApiManagement)
- Az.Billing(이전에는 AzureRM.Billing, AzureRM.Consumption 및 AzureRM.UsageAggregates)
- Az.CognitiveServices(이전에는 AzureRM.CognitiveServices)
- Az.Compute(이전에는 AzureRM.Compute)
- Az.DataFactory(이전에는 AzureRM.DataFactories 및 AzureRM.DataFactoryV2)
- Az.DataLakeAnalytics(이전에는 AzureRM.DataLakeAnalytics)
- Az.DataLakeStore(이전에는 AzureRM.DataLakeStore)
- Az.KeyVault(이전에는 AzureRM.KeyVault)
- Az.Media(이전에는 AzureRM.Media)
- Az.Monitor(이전에는 AzureRM.Insights)
- Az.Network(이전에는 AzureRM.Network)
- Az.OperationalInsights(이전에는 AzureRM.OperationalInsights)
- Az.RecoveryServices(이전에는 AzureRM.RecoveryServices, AzureRM.RecoveryServices.Backup 및 AzureRM.RecoveryServices.SiteRecovery)
- Az.Resources(이전에는 AzureRM.Resources)
- Az.ServiceFabric(이전에는 AzureRM.ServiceFabric)
- Az.Sql(이전에는 AzureRM.Sql)
- Az.Storage(이전에는 Azure.Storage 및 AzureRM.Storage)
- Az.Websites(이전에는 AzureRM.Websites)
일반적인 주요 변경 내용
이 섹션에서는 Az 모듈 재설계의 일부인 일반적인 주요 변경 내용을 자세히 설명합니다.
Cmdlet 명사 접두사 변경 내용
AzureRM 모듈에서 cmdlet은 명사 접두사로 사용됩니다 AzureRM
Azure
. Az는 cmdlet 이름을 간소화하고 정규화하므로 모든 cmdlet은 'Az'를 cmdlet 명사 접두사로 사용합니다. 예시:
Get-AzureRMVM
Get-AzureKeyVaultSecret
다음으로 변경되었습니다.
Get-AzVM
Get-AzKeyVaultSecret
이러한 새 cmdlet 이름으로의 전환을 더 간단하게 하기 위해 Az는 Enable-AzureRmAlias 및 Disable-AzureRmAlias라는 두 개의 새로운 cmdlet을 도입했습니다. Enable-AzureRmAlias
는 AzureRM에서 최신 Az cmdlet 이름에 매핑되는 이전 cmdlet 이름에 대한 별칭을 만듭니다. 인수 Enable-AzureRmAlias
를 -Scope
사용하여 별칭을 사용할 위치를 선택할 수 있습니다.
예를 들어 AzureRM의 다음 스크립트는 다음과 같습니다.
#Requires -Modules AzureRM.Storage
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob
다음을 사용하여 최소한의 변경으로 실행할 수 있습니다 Enable-AzureRmAlias
.
#Requires -Modules Az.Storage
Enable-AzureRmAlias -Scope Process
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob
실행 Enable-AzureRmAlias -Scope CurrentUser
하면 여는 모든 PowerShell 세션에 별칭이 활성화되므로 이 cmdlet을 실행한 후에는 이와 같은 스크립트를 전혀 변경할 필요가 없습니다.
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob
별칭 cmdlet 사용에 대한 자세한 내용은 Enable-AzureRmAlias 참조를 참조하세요.
별칭 Disable-AzureRmAlias
을 사용하지 않도록 설정할 준비가 되면 생성된 별칭을 제거합니다. 자세한 내용은 Disable-AzureRmAlias 참조를 참조하세요.
Important
별칭을 사용하지 않도록 설정할 때 별칭이 설정된 모든 범위에 대해 별칭이 비활성화되어 있는지 확인합니다.
모듈 이름 변경
다음 모듈을 AzureRM.*
Az.*
제외하고 모듈 이름이 변경되었습니다.
AzureRM 모듈 | Az 모듈 |
---|---|
Azure.Storage | Az.Storage |
Azure.AnalysisServices | Az.AnalysisServices |
AzureRM.Profile | Az.Accounts |
AzureRM.Insights | Az.Monitor |
AzureRM.DataFactories | Az.DataFactory |
AzureRM.DataFactoryV2 | Az.DataFactory |
AzureRM.RecoveryServices.Backup | Az.RecoveryServices |
AzureRM.RecoveryServices.SiteRecovery | Az.RecoveryServices |
AzureRM.Tags | Az.Resources |
AzureRM.MachineLearningCompute | Az.MachineLearning |
AzureRM.UsageAggregates | Az.Billing |
AzureRM.Consumption | Az.Billing |
모듈 이름이 변경되면 특정 모듈을 사용 #Requires
하거나 Import-Module
로드하는 스크립트를 대신 새 모듈을 사용하도록 변경해야 합니다. cmdlet 접미사가 변경되지 않은 모듈의 경우 이는 모듈 이름이 변경되었지만 작업 공간을 나타내는 접미사가 변경되지 않았음 을 의미합니다.
#Requires 및 Import-Module 문 마이그레이션
AzureRM 모듈에 대한 종속성을 사용 #Requires
하거나 Import-Module
선언하는 스크립트는 새 모듈 이름을 사용하도록 업데이트해야 합니다. 예시:
#Requires -Module AzureRM.Compute
다음으로 변경해야 합니다.
#Requires -Module Az.Compute
Import-Module
의 경우:
Import-Module -Name AzureRM.Compute
다음으로 변경해야 합니다.
Import-Module -Name Az.Compute
Cmdlet 정규화 호출 마이그레이션
다음과 같이 모듈에서 정규화된 cmdlet 호출을 사용하는 스크립트는
AzureRM.Compute\Get-AzureRmVM
새 모듈 및 cmdlet 이름을 사용하도록 변경해야 합니다.
Az.Compute\Get-AzVM
모듈 매니페스트 종속성 마이그레이션
모듈 매니페스트(.psd1) 파일을 통해 AzureRM 모듈에 대한 종속성을 표현하는 모듈은 해당 섹션의 모듈 이름을 RequiredModules
업데이트해야 합니다.
RequiredModules = @(@{ModuleName="AzureRM.Profile"; ModuleVersion="5.8.2"})
다음으로 변경해야 합니다.
RequiredModules = @(@{ModuleName="Az.Profile"; ModuleVersion="1.0.0"})
제거된 모듈
다음 모듈이 제거되었습니다.
AzureRM.Backup
AzureRM.Compute.ManagedService
AzureRM.Scheduler
이러한 서비스에 대한 도구는 더 이상 적극적으로 지원되지 않습니다. 고객은 편리한 즉시 대체 서비스로 이동하는 것이 좋습니다.
Windows PowerShell 5.1 및 .NET 4.7.2
Windows용 PowerShell 5.1에서 Az를 사용하려면 .NET Framework 4.7.2를 설치해야 합니다. PowerShell Core 6.x 이상을 사용하는 경우 .NET Framework가 필요하지 않습니다.
PSCredential을 사용하여 사용자 로그인 임시 제거
.NET Standard의 인증 흐름이 변경되어 PSCredential을 통해 사용자 로그인이 일시적으로 제거됩니다. 이 기능은 Windows용 PowerShell 5.1에 대한 2019년 1월 15일 릴리스에서 다시 도입됩니다. 이 문제는 이 GitHub 문제에서 자세히 설명합니다.
웹 브라우저 프롬프트 대신 기본 디바이스 코드 로그인
.NET Standard의 인증 흐름이 변경되어 대화형 로그인 중에 디바이스 로그인을 기본 로그인 흐름으로 사용하고 있습니다. 웹 브라우저 기반 로그인은 2019년 1월 15일 릴리스의 기본값으로 Windows용 PowerShell 5.1에 대해 다시 도입됩니다. 이때 사용자는 스위치 매개 변수를 사용하여 디바이스 로그인을 선택할 수 있습니다.
모듈의 호환성이 손상되는 변경
이 섹션에서는 개별 모듈 및 cmdlet에 대한 특정 주요 변경 내용을 자세히 설명합니다.
Az.ApiManagement(이전에는 AzureRM.ApiManagement)
- 다음 cmdlet을 제거했습니다.
- New-AzureRmApiManagementHostnameConfiguration
- Set-AzureRmApiManagementHostnames
- Update-AzureRmApiManagementDeployment
- Import-AzureRmApiManagementHostnameCertificate
- Set-AzApiManagement cmdlet을 사용하여 이러한 속성을 대신 설정합니다.
- 다음 속성을 제거했습니다.
- 속성 및
ScmHostnameConfiguration
ProxyHostnameConfiguration
ManagementHostnameConfiguration
형식PsApiManagementContext
PsApiManagementHostnameConfiguration
이 제거되었습니다.PortalHostnameConfiguration
대신 ,ProxyCustomHostnameConfiguration
ManagementCustomHostnameConfiguration
및ScmCustomHostnameConfiguration
형식PsApiManagementCustomHostNameConfiguration
을 사용합니다PortalCustomHostnameConfiguration
. - PsApiManagementContext에서
StaticIPs
속성을 제거했습니다. 속성이 분할PublicIPAddresses
되었습니다.PrivateIPAddresses
- New-AzureApiManagementVirtualNetwork cmdlet에서 필수 속성
Location
이 제거되었습니다.
- 속성 및
Az.Billing(이전에는 AzureRM.Billing, AzureRM.Consumption 및 AzureRM.UsageAggregates)
InvoiceName
매개 변수가 cmdlet에서Get-AzConsumptionUsageDetail
제거되었습니다. 스크립트는 청구서에 대한 다른 ID 매개 변수를 사용해야 합니다.
Az.CognitiveServices(이전에는 AzureRM.CognitiveServices)
- cmdlet에서 매개 변수 집합이
Get-AzCognitiveServicesAccountSkus
제거되었습니다GetSkusWithAccountParamSetName
. ResourceGroupName 및 계정 이름을 사용하는 대신 계정 유형 및 위치별로 SKU를 가져와야 합니다.
Az.Compute(이전에는 AzureRM.Compute)
IdentityIds
는 속성에서Identity
PSVirtualMachine
제거되고PSVirtualMachineScaleSet
개체 스크립트는 더 이상 이 필드의 값을 사용하여 처리를 결정하지 않아야 합니다.- 개체의
InstanceView
PSVirtualMachineScaleSetVM
속성 형식이 다음으로VirtualMachineInstanceView
변경됩니다.VirtualMachineScaleSetVMInstanceView
AutoOSUpgradePolicy
속성에서AutomaticOSUpgrade
속성이 제거됩니다UpgradePolicy
.PSSnapshotUpdate
개체의Sku
속성의 형식이DiskSku
에서SnapshotSku
로 변경되었습니다.VmScaleSetVMParameterSet
이Add-AzVMDataDisk
cmdlet에서 제거되어, 더 이상 ScaleSet VM에 개별적으로 데이터 디스크를 추가할 수 없습니다.
Az.DataFactory(이전에는 AzureRM.DataFactories 및 AzureRM.DataFactoryV2)
GatewayName
매개 변수가New-AzDataFactoryEncryptValue
cmdlet에서 필수 항목이 되었습니다.- 제거된
New-AzDataFactoryGatewayKey
cmdlet - cmdlet 스크립트에서
Get-AzDataFactoryV2ActivityRun
제거된LinkedServiceName
매개 변수는 더 이상 이 필드의 값을 사용하여 처리를 결정하지 않아야 합니다.
Az.DataLakeAnalytics(이전에는 AzureRM.DataLakeAnalytics)
- 사용되지 않는 cmdlet 제거:
New-AzDataLakeAnalyticsCatalogSecret
,Remove-AzDataLakeAnalyticsCatalogSecret
,Set-AzDataLakeAnalyticsCatalogSecret
Az.DataLakeStore(이전에는 AzureRM.DataLakeStore)
다음 cmdlet의
Encoding
매개 변수는FileSystemCmdletProviderEncoding
형식에서System.Text.Encoding
형식으로 변경되었습니다. 이 변경은 인코딩 값String
및Oem
을 제거합니다. 다른 모든 이전 인코딩 값은 다시 기본.- New-AzureRmDataLakeStoreItem
- Add-AzureRmDataLakeStoreItemContent
- Get-AzureRmDataLakeStoreItemContent
더 이상 사용되지 않는 속성 별칭 및
Set-AzDataLakeStoreAccount
cmdlet에서New-AzDataLakeStoreAccount
제거됨Tags
다음을 사용하는 스크립트
New-AzureRMDataLakeStoreAccount -Tags @{TagName="TagValue"}
다음과 같이 변경되어야 합니다.
New-AzDataLakeStoreAccount -Tag @{TagName="TagValue"}
개체에서
PSDataLakeStoreAccountBasic
더 이상 사용되지 않는 속성Identity
,EncryptionState
,EncryptionProvisioningState
,EncryptionConfig
FirewallState
,FirewallRules
VirtualNetworkRules
,TrustedIdProviderState
,TrustedIdProviders
,DefaultGroup
,NewTier
,CurrentTier
FirewallAllowAzureIps
를 제거했습니다.Get-AzDataLakeStoreAccount
에서 반환된PSDatalakeStoreAccount
를 사용하는 모든 스크립트는 이러한 속성을 참조하지 않아야 합니다.
Az.KeyVault(이전에는 AzureRM.KeyVault)
- 속성이
PurgeDisabled
제거되었으며PSKeyVaultSecretAttributes
PSKeyVaultKeyAttributes
PSKeyVaultKeyIdentityItem
개체 스크립트는 더 이상 속성을 참조PurgeDisabled
하여 처리를 결정하지 않아야 합니다.
Az.Media(이전에는 AzureRM.Media)
를 사용하여 cmdlet 스크립트에서
New-AzMediaService
사용되지 않는Tags
속성 별칭 제거New-AzureRMMediaService -Tags @{TagName="TagValue"}
다음과 같이 변경되어야 합니다.
New-AzMediaService -Tag @{TagName="TagValue"}
Az.Monitor(이전에는 AzureRM.Insights)
를 사용하여 cmdlet 스크립트에서
Set-AzDiagnosticSetting
단수 매개 변수 이름을 위해 복수 이름Categories
및Timegrains
매개 변수를 제거했습니다.Set-AzureRmDiagnosticSetting -Timegrains PT1M -Categories Category1, Category2
다음과 같이 변경되어야 합니다.
Set-AzDiagnosticSetting -Timegrain PT1M -Category Category1, Category2
Az.Network(이전에는 AzureRM.Network)
- 사용되지 않는 매개 변수
ResourceId
를Get-AzServiceEndpointPolicyDefinition
cmdlet에서 제거 - 개체에서 사용되지 않는 속성이
PSVirtualNetwork
제거됨EnableVmProtection
- 사용되지 않는 cmdlet 제거됨
Set-AzVirtualNetworkGatewayVpnClientConfig
스크립트는 더 이상 이러한 필드의 값에 따라 처리를 결정하지 않아야 합니다.
Az.OperationalInsights(이전에는 AzureRM.OperationalInsights)
기본 매개 변수 집합
Get-AzOperationalInsightsDataSource
이 제거되고ByWorkspaceNameByKind
기본 매개 변수 집합이 되었습니다.를 사용하여 데이터 원본을 나열하는 스크립트
Get-AzureRmOperationalInsightsDataSource
종류를 지정하도록 변경되어야 합니다.
Get-AzOperationalInsightsDataSource -Kind AzureActivityLog
Az.RecoveryServices(이전에는 AzureRM.RecoveryServices, AzureRM.RecoveryServices.Backup 및 AzureRM.RecoveryServices.SiteRecovery)
New/Set-AzRecoveryServicesAsrPolicy
cmdlet에서Encryption
매개 변수를 제거했습니다.TargetStorageAccountName
이제 cmdlet의 관리 디스크 복원에Restore-AzRecoveryServicesBackupItem
매개 변수가 필수입니다.- cmdlet에서
Restore-AzRecoveryServicesBackupItem
제거 및StorageAccountName
StorageAccountResourceGroupName
매개 변수 - cmdlet에서
Get-AzRecoveryServicesBackupContainer
제거된Name
매개 변수
Az.Resources(이전에는 AzureRM.Resources)
New/Set-AzPolicyAssignment
cmdlet에서Sku
매개 변수를 제거했습니다.제거된
Password
매개 변수 및New-AzADSpCredential
New-AzADServicePrincipal
cmdlet 암호는 자동으로 생성되며 암호를 제공한 스크립트는 다음과 같습니다.New-AzAdSpCredential -ObjectId 1f99cf81-0146-4f4e-beae-2007d0668476 -Password $secPassword
출력에서 암호를 검색하도록 변경해야 합니다.
$credential = New-AzAdSpCredential -ObjectId 1f99cf81-0146-4f4e-beae-2007d0668476 $secPassword = $credential.Secret
Az.ServiceFabric(이전에는 AzureRM.ServiceFabric)
- 다음 cmdlet 반환 형식이 변경되었습니다.
- 형식
ApplicationHealthPolicy
의 속성ServiceTypeHealthPolicies
이 제거되었습니다. - 형식
ClusterUpgradeDeltaHealthPolicy
의 속성ApplicationHealthPolicies
이 제거되었습니다. - 형식
ClusterUpgradePolicy
의 속성OverrideUserUpgradePolicy
이 제거되었습니다. - 이러한 변경 내용은 다음 cmdlet에 영향을 줍니다.
- Add-AzServiceFabricClientCertificate
- Add-AzServiceFabricClusterCertificate
- Add-AzServiceFabricNode
- Add-AzServiceFabricNodeType
- Get-AzServiceFabricCluster
- Remove-AzServiceFabricClientCertificate
- Remove-AzServiceFabricClusterCertificate
- Remove-AzServiceFabricNode
- Remove-AzServiceFabricNodeType
- Remove-AzServiceFabricSetting
- Set-AzServiceFabricSetting
- Set-AzServiceFabricUpgradeType
- Update-AzServiceFabricDurability
- Update-AzServiceFabricReliability
- 형식
Az.Sql(이전에는 AzureRM.Sql)
- cmdlet에서
Set-AzSqlDatabaseBackupLongTermRetentionPolicy
제거 및State
ResourceId
매개 변수 - 사용되지 않는 cmdlet 제거:
Get/Set-AzSqlServerBackupLongTermRetentionVault
, , ,Get/Set-AzSqlServerAuditingPolicy
Remove-AzSqlDatabaseAuditing
Get/Start/Stop-AzSqlServerUpgrade
Get/Set-AzSqlDatabaseAuditingPolicy
Remove-AzSqlServerAuditing
- cmdlet에서 사용되지 않는 매개 변수
Current
제거Get-AzSqlDatabaseBackupLongTermRetentionPolicy
됨 - cmdlet에서 사용되지 않는 매개 변수
DatabaseName
제거Get-AzSqlServerServiceObjective
됨 - cmdlet에서 사용되지 않는 매개 변수
PrivilegedLogin
제거Set-AzSqlDatabaseDataMaskingPolicy
됨
Az.Storage(이전에는 Azure.Storage 및 AzureRM.Storage)
- 스토리지 계정 이름만 사용하여 Oauth 스토리지 컨텍스트를 만들 수 있도록 기본 매개 변수 집합이 로 변경되었습니다.
OAuthParameterSet
- 예:
$ctx = New-AzureStorageContext -StorageAccountName $accountName
- 예:
Location
매개 변수가Get-AzStorageUsage
cmdlet에서 필수 항목이 되었습니다.- 이제 Storage API 메서드는 동기 API 호출 대신 TAP(작업 기반 비동기 패턴)을 사용합니다. 다음 예제에서는 새로운 비동기 명령을 보여 줍니다.
Blob 스냅샷
AzureRM:
$b = Get-AzureStorageBlob -Container $containerName -Blob $blobName -Context $ctx
$b.ICloudBlob.Snapshot()
Az:
$b = Get-AzStorageBlob -Container $containerName -Blob $blobName -Context $ctx
$task = $b.ICloudBlob.SnapshotAsync()
$task.Wait()
$snapshot = $task.Result
스냅샷 공유
AzureRM:
$Share = Get-AzureStorageShare -Name $containerName -Context $ctx
$snapshot = $Share.Snapshot()
Az:
$Share = Get-AzStorageShare -Name $containerName -Context $ctx
$task = $Share.SnapshotAsync()
$task.Wait()
$snapshot = $task.Result
일시 삭제된 Blob 삭제 취소
AzureRM:
$b = Get-AzureStorageBlob -Container $containerName -Blob $blobName -IncludeDeleted -Context $ctx
$b.ICloudBlob.Undelete()
Az:
$b = Get-AzStorageBlob -Container $containerName -Blob $blobName -IncludeDeleted -Context $ctx
$task = $b.ICloudBlob.UndeleteAsync()
$task.Wait()
Blob 계층 설정
AzureRM:
$blockBlob = Get-AzureStorageBlob -Container $containerName -Blob $blockBlobName -Context $ctx
$blockBlob.ICloudBlob.SetStandardBlobTier("hot")
$pageBlob = Get-AzureStorageBlob -Container $containerName -Blob $pageBlobName -Context $ctx
$pageBlob.ICloudBlob.SetPremiumBlobTier("P4")
Az:
$blockBlob = Get-AzStorageBlob -Container $containerName -Blob $blockBlobName -Context $ctx
$task = $blockBlob.ICloudBlob.SetStandardBlobTierAsync("hot")
$task.Wait()
$pageBlob = Get-AzStorageBlob -Container $containerName -Blob $pageBlobName -Context $ctx
$task = $pageBlob.ICloudBlob.SetPremiumBlobTierAsync("P4")
$task.Wait()
Az.Websites(이전에는 AzureRM.Websites)
- ,
PSCertificate
PSCloningInfo
및PSSite
개체에서PSAppServicePlan
사용되지 않는 속성이 제거됨