Критические изменения для Az 1.0.0
В этом документе содержатся подробные сведения об изменениях между AzureRM 6.x и новым модулем Az версии 1.x и более поздними версиями. Оглавление поможет вам пройти полный путь миграции, включая изменения, относящиеся к модулю, которые могут повлиять на сценарии.
Общие советы по началу работы с миграцией из AzureRM в Az см. в статье Начало миграции из AzureRM в Az.
Важный
Были серьезные изменения между 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.
Изменения префикса существительного командлета
В модуле AzureRM командлеты использовали AzureRM
или Azure
в качестве префикса существительного. Az упрощает и нормализует имена командлетов, чтобы все командлеты использовали "Az" в качестве префикса существительного командлета. Например:
Get-AzureRMVM
Get-AzureKeyVaultSecret
Изменено:
Get-AzVM
Get-AzKeyVaultSecret
Чтобы упростить переход к этим новым именам командлетов, Az представляет два новых командлета, Enable-AzureRmAlias и Disable-AzureRmAlias.
Enable-AzureRmAlias
создает псевдонимы для старых имен командлетов в AzureRM, сопоставляя их с новыми именами командлетов Az. Использование аргумента -Scope
с Enable-AzureRmAlias
позволяет выбрать, где активированы псевдонимы.
Например, следующий сценарий в 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, так что после выполнения этого командлета сценарий, подобный этому, не нужно будет изменять вообще, например:
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob
Полные сведения об использовании псевдонимов командлетов см. в справочнике Enable-AzureRmAlias.
Когда вы будете готовы отключить псевдонимы, Disable-AzureRmAlias
удаляет созданные псевдонимы. Полные сведения см. в справочнике по Disable-AzureRmAlias.
Важный
При отключении псевдонимов убедитесь, что они отключены для всех областей, для которых ранее были включены псевдонимы.
Изменения имени модуля
Имена модулей изменились с AzureRM.*
на Az.*
, за исключением следующих модулей:
Модуль AzureRM | Модуль Az |
---|---|
Azure.Storage | Az.Storage |
Azure.AnalysisServices | Az.AnalysisServices |
AzureRM.Profile | Аз.Аккаунты |
AzureRM.Insights | Аз.Монитор |
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.Потребление | Az.Billing |
Изменения в именах модулей означают, что любой скрипт, использующий #Requires
или Import-Module
для загрузки определенных модулей, потребуется изменить, чтобы использовать новый модуль. Для модулей, где суффикс командлета не изменился, это означает, что хотя имя модуля изменилось, суффикс, указывающий на пространство операций, остается , а не.
Перенос инструкций #Requires и Import-Module
Скрипты, использующие #Requires
или Import-Module
для объявления зависимости от модулей AzureRM, необходимо обновить, чтобы использовать новые имена модулей. Например:
#Requires -Module AzureRM.Compute
Необходимо изменить следующее:
#Requires -Module Az.Compute
Для Import-Module
:
Import-Module -Name AzureRM.Compute
Необходимо изменить следующее:
Import-Module -Name Az.Compute
Перенос вызовов командлетов Fully-Qualified
Скрипты, использующие вызовы командлет с указанием модуля, например:
AzureRM.Compute\Get-AzureRmVM
Необходимо изменить для использования новых имен модулей и командлетов:
Az.Compute\Get-AzVM
Перенос зависимостей манифеста модуля
Модули, которые выражают зависимости от модулей AzureRM с помощью файла манифеста модуля (PSD1), должны обновить имена модулей в разделе 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
Для Использования Az с PowerShell 5.1 для Windows требуется установка .NET Framework 4.7.2. Использование PowerShell Core 6.x или более поздней версии не требует .NET Framework.
Временное удаление имени входа пользователя с помощью PSCredential
Из-за изменений в потоке проверки подлинности для .NET Standard мы временно удаляем имя входа пользователя через PSCredential. Эта возможность будет повторно представлена в выпуске 1.15.2019 для PowerShell 5.1 для Windows. Это подробно рассматривается в этой задаче на GitHub.
Вход с использованием кода устройства по умолчанию вместо запроса в веб-браузере
В связи с изменениями в процессе аутентификации для .NET Standard, мы используем вход через устройство в качестве основного метода входа при интерактивной авторизации. Вход через веб-браузер снова станет доступен в PowerShell 5.1 для Windows в качестве значения по умолчанию в выпуске от 15.01.2019. На тот момент пользователи смогут выбрать вход на устройство с помощью параметра Switch.
Изменения, нарушающие совместимость модуля
В этом разделе подробно описаны конкретные нарушающие изменения для отдельных модулей и командлетов.
Az.ApiManagement (ранее AzureRM.ApiManagement)
- Удалены следующие командлеты:
- New-AzureRmApiManagementHostnameConfiguration
- Set-AzureRmApiManagementHostnames
- Update-AzureRmApiManagementDeployment
- Import-AzureRmApiManagementHostnameCertificate
- Используйте командлет Set-AzApiManagement, чтобы задать эти свойства.
- Удалены следующие свойства:
- Удалено свойство
PortalHostnameConfiguration
,ProxyHostnameConfiguration
,ManagementHostnameConfiguration
иScmHostnameConfiguration
типаPsApiManagementHostnameConfiguration
изPsApiManagementContext
. Вместо этого используйтеPortalCustomHostnameConfiguration
,ProxyCustomHostnameConfiguration
,ManagementCustomHostnameConfiguration
иScmCustomHostnameConfiguration
типаPsApiManagementCustomHostNameConfiguration
. - Удалено свойство
StaticIPs
из PsApiManagementContext. Имущество разделено наPublicIPAddresses
иPrivateIPAddresses
. - Удалено необходимое свойство
Location
из командлета New-AzureApiManagementVirtualNetwork.
- Удалено свойство
Az.Billing (ранее AzureRM.Billing, AzureRM.Consumption и AzureRM.UsageAggregates)
- Параметр
InvoiceName
был удален из командлетаGet-AzConsumptionUsageDetail
. Скрипты должны использовать другие параметры идентификации для счета-фактуры.
Az.CognitiveServices (ранее AzureRM.CognitiveServices)
- Удален набор параметров
GetSkusWithAccountParamSetName
из командлетаGet-AzCognitiveServicesAccountSkus
. Вместо использования ResourceGroupName и имени учетной записи необходимо получить skus по типу и расположению учетной записи.
Az.Compute (ранее AzureRM.Compute)
-
IdentityIds
удаляются изIdentity
свойства вPSVirtualMachine
иPSVirtualMachineScaleSet
объектов. Скрипты больше не должны использовать значение этого поля для принятия решений об обработке. - Тип свойства
InstanceView
объектаPSVirtualMachineScaleSetVM
изменяется сVirtualMachineInstanceView
наVirtualMachineScaleSetVMInstanceView
- свойства
AutoOSUpgradePolicy
иAutomaticOSUpgrade
удаляются из свойстваUpgradePolicy
- Тип свойства
Sku
в объектеPSSnapshotUpdate
изменяется сDiskSku
наSnapshotSku
-
VmScaleSetVMParameterSet
удаляется из командлетаAdd-AzVMDataDisk
, вы больше не можете добавить диск данных отдельно в виртуальную машину ScaleSet.
Az.DataFactory (ранее AzureRM.DataFactories и AzureRM.DataFactoryV2)
- Параметр
GatewayName
стал обязательным в командлетеNew-AzDataFactoryEncryptValue
- Удален командлет
New-AzDataFactoryGatewayKey
- Параметр
LinkedServiceName
был удалён из командлетаGet-AzDataFactoryV2ActivityRun
. Скриптам больше запрещается использовать значение этого параметра для принятия решений по обработке.
Az.DataLakeAnalytics (ранее AzureRM.DataLakeAnalytics)
- Удалены устаревшие командлеты:
New-AzDataLakeAnalyticsCatalogSecret
,Remove-AzDataLakeAnalyticsCatalogSecret
иSet-AzDataLakeAnalyticsCatalogSecret
Az.DataLakeStore (ранее AzureRM.DataLakeStore)
Следующие командлеты изменили параметр
Encoding
с типаFileSystemCmdletProviderEncoding
наSystem.Text.Encoding
. Это изменение удаляет значения кодировкиString
иOem
. Все остальные предыдущие значения кодирования остаются.- New-AzureRmDataLakeStoreItem
- Add-AzureRmDataLakeStoreItemContent
- Get-AzureRmDataLakeStoreItemContent
Удален устаревший псевдоним свойства
Tags
из командлетовNew-AzDataLakeStoreAccount
иSet-AzDataLakeStoreAccount
Использование скриптов
New-AzureRMDataLakeStoreAccount -Tags @{TagName="TagValue"}
Должно быть изменено на
New-AzDataLakeStoreAccount -Tag @{TagName="TagValue"}
Удалены устаревшие свойства
Identity
,EncryptionState
,EncryptionProvisioningState
,EncryptionConfig
,FirewallState
,FirewallRules
,VirtualNetworkRules
,TrustedIdProviderState
,TrustedIdProviders
,DefaultGroup
,NewTier
,CurrentTier
,FirewallAllowAzureIps
из объектаPSDataLakeStoreAccountBasic
. Любой скрипт, использующийPSDatalakeStoreAccount
, возвращенный изGet-AzDataLakeStoreAccount
, не должен ссылаться на эти свойства.
Az.KeyVault (ранее AzureRM.KeyVault)
- Свойство
PurgeDisabled
было удалено изPSKeyVaultKeyAttributes
,PSKeyVaultKeyIdentityItem
иPSKeyVaultSecretAttributes
объектов Scripts больше не должно ссылаться на свойствоPurgeDisabled
для принятия решений по обработке.
Az.Media (ранее AzureRM.Media)
Удалите устаревший псевдоним свойства
Tags
из командлетовNew-AzMediaService
в скриптах.New-AzureRMMediaService -Tags @{TagName="TagValue"}
Должно быть изменено на
New-AzMediaService -Tag @{TagName="TagValue"}
Az.Monitor (ранее AzureRM.Insights)
Удалены имена множественного числа
Categories
и параметрTimegrains
в пользу имен сингулярных параметров из скриптов командлетовSet-AzDiagnosticSetting
Set-AzureRmDiagnosticSetting -Timegrains PT1M -Categories Category1, Category2
Должно быть изменено на
Set-AzDiagnosticSetting -Timegrain PT1M -Category Category1, Category2
Az.Network (ранее AzureRM.Network)
- Удален устаревший параметр
ResourceId
из командлетаGet-AzServiceEndpointPolicyDefinition
- Удалено нерекомендуемое свойство
EnableVmProtection
из объектаPSVirtualNetwork
- Удален устаревший командлет
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)
- Удален параметр
Encryption
из командлетаNew/Set-AzRecoveryServicesAsrPolicy
- параметр
TargetStorageAccountName
теперь является обязательным для восстановления управляемого диска в командлетеRestore-AzRecoveryServicesBackupItem
- Удалены параметры
StorageAccountName
иStorageAccountResourceGroupName
в командлетеRestore-AzRecoveryServicesBackupItem
- Удален параметр
Name
в командлетеGet-AzRecoveryServicesBackupContainer
Az.Resources (ранее AzureRM.Resources)
Удален параметр
Sku
из командлетаNew/Set-AzPolicyAssignment
Удален параметр
Password
из командлетовNew-AzADServicePrincipal
иNew-AzADSpCredential
, пароли генерируются автоматически. Скрипты, которые предоставляли пароль:New-AzAdSpCredential -ObjectId 00001111-aaaa-2222-bbbb-3333cccc4444 -Password $secPassword
Необходимо изменить, чтобы получить пароль из выходных данных:
$credential = New-AzAdSpCredential -ObjectId 00001111-aaaa-2222-bbbb-3333cccc4444 $secPassword = $credential.Secret
Az.ServiceFabric (ранее AzureRM.ServiceFabric)
- Изменены следующие типы возвращаемых значений командлетов:
- Свойство
ServiceTypeHealthPolicies
типаApplicationHealthPolicy
было удалено. - Свойство
ApplicationHealthPolicies
типаClusterUpgradeDeltaHealthPolicy
было удалено. - Свойство
OverrideUserUpgradePolicy
типаClusterUpgradePolicy
было удалено. - Эти изменения влияют на следующие командлеты:
- 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)
- Удалены параметры
State
иResourceId
из командлетаSet-AzSqlDatabaseBackupLongTermRetentionPolicy
- Удалены устаревшие командлеты:
Get/Set-AzSqlServerBackupLongTermRetentionVault
,Get/Start/Stop-AzSqlServerUpgrade
,Get/Set-AzSqlDatabaseAuditingPolicy
,Get/Set-AzSqlServerAuditingPolicy
,Remove-AzSqlDatabaseAuditing
,Remove-AzSqlServerAuditing
- Удален устаревший параметр
Current
из командлетаGet-AzSqlDatabaseBackupLongTermRetentionPolicy
- Был удален устаревший параметр
DatabaseName
из командлетаGet-AzSqlServerServiceObjective
- Удален устаревший параметр
PrivilegedLogin
из командлетаSet-AzSqlDatabaseDataMaskingPolicy
Az.Storage (ранее Azure.Storage и AzureRM.Storage)
- Чтобы поддерживать создание контекста хранилища Oauth только с именем учетной записи хранения, набор параметров по умолчанию был изменен на
OAuthParameterSet
- Пример:
$ctx = New-AzureStorageContext -StorageAccountName $accountName
- Пример:
- Параметр
Location
стал обязательным в командлетеGet-AzStorageUsage
- Методы API хранилища теперь используют асинхронный шаблон на основе задач (TAP), а не синхронные вызовы API. В следующих примерах показаны новые асинхронные команды:
Моментальный снимок BLOB-объектов
AzureRM:
$b = Get-AzureStorageBlob -Container $containerName -Blob $blobName -Context $ctx
$b.ICloudBlob.Snapshot()
Аз:
$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()
Аз:
$Share = Get-AzStorageShare -Name $containerName -Context $ctx
$task = $Share.SnapshotAsync()
$task.Wait()
$snapshot = $task.Result
Восстановление мягко удалённого блоба
AzureRM:
$b = Get-AzureStorageBlob -Container $containerName -Blob $blobName -IncludeDeleted -Context $ctx
$b.ICloudBlob.Undelete()
Аз:
$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")
Аз:
$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)
- Удалены устаревшие свойства из объектов
PSAppServicePlan
,PSCertificate
,PSCloningInfo
иPSSite
Azure PowerShell