Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом документе содержатся подробные сведения об изменениях между 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 and 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.
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 загружающий определенные модули, необходимо изменить, чтобы использовать новый модуль. Для модулей, где суффикс командлета не изменился, это означает, что хотя имя модуля изменилось, суффикс, указывающий на операционное пространство, остался неизменным.
Перенос инструкций #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
Перенос полностью квалифицированных вызовов командлетов
Скрипты, использующие вызовы командлета с поддержкой модуля, например:
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.BackupAzureRM.Compute.ManagedServiceAzureRM.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. Это подробно рассматривается в this GitHub issue.
По умолчанию, авторизация с помощью кода устройства вместо запроса веб-браузера.
Из-за изменений в потоке аутентификации для .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командлета. Вам необходимо получить skus по типу учетной записи и местоположению, а не использовать ResourceGroupName и имя учетной записи.
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Скрипты, использующие
New-AzureRMDataLakeStoreAccount -Tags @{TagName="TagValue"}Должно быть изменено на
New-AzDataLakeStoreAccount -Tag @{TagName="TagValue"}Удалены устаревшие свойства
Identity,EncryptionStateEncryptionProvisioningStateEncryptionConfigFirewallStateFirewallRulesVirtualNetworkRulesTrustedIdProviderStateTrustedIdProvidersDefaultGroupNewTierCurrentTierFirewallAllowAzureIpsизPSDataLakeStoreAccountBasicобъекта. Любой скрипт, использующийPSDatalakeStoreAccountвозвращаемый изGet-AzDataLakeStoreAccount, не должен ссылаться на эти свойства.
Az.KeyVault (ранее AzureRM.KeyVault)
- Свойство
PurgeDisabledбыло удалено из объектовPSKeyVaultKeyAttributes,PSKeyVaultKeyIdentityItem, иPSKeyVaultSecretAttributes. Скрипты больше не должны ссылаться на свойствоPurgeDisabledдля принятия решений об обработке.
Az.Media (ранее AzureRM.Media)
Удаление устаревших псевдонимов свойств из скриптов командлетов
TagsNew-AzMediaServiceNew-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 - удаление сертификата кластера в Azure Service Fabric
- 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.