Поделиться через


Критические изменения для 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.

Изменения префикса существительного командлета

В модуле AzureRM командлеты использовали AzureRMAzure либо в качестве префикса существительного. 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 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

Перенос вызовов командлетов 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 в качестве значения по умолчанию в выпуске 1.15.2019. В то время пользователи смогут выбрать имя входа устройства с помощью параметра Switch.

Критические изменения модуля

В этом разделе подробно описаны критические изменения для отдельных модулей и командлетов.

Az.ApiManagement (ранее AzureRM.ApiManagement)

  • Удалены следующие командлеты:
    • New-AzureRmApiManagementHostnameConfiguration
    • Set-AzureRmApiManagementHostnames
    • Update-AzureRmApiManagementDeployment
    • Import-AzureRmApiManagementHostnameCertificate
    • Используйте командлет Set-AzApiManagement , чтобы задать эти свойства вместо этого
  • Удалены следующие свойства:
    • Удалено свойство PortalHostnameConfiguration, ProxyHostnameConfigurationManagementHostnameConfiguration а также ScmHostnameConfiguration тип PsApiManagementHostnameConfiguration из PsApiManagementContext. Вместо этого используйте PortalCustomHostnameConfiguration, ProxyCustomHostnameConfigurationManagementCustomHostnameConfigurationа также 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 свойства в PSVirtualMachinePSVirtualMachineScaleSet и скриптах объектов больше не следует использовать значение этого поля для принятия решений по обработке.
  • Тип InstanceView свойства PSVirtualMachineScaleSetVM объекта изменяется с VirtualMachineInstanceViewVirtualMachineScaleSetVMInstanceView
  • AutoOSUpgradePolicy и AutomaticOSUpgrade свойства удаляются из UpgradePolicy свойства
  • Тип Sku свойства в PSSnapshotUpdate объекте изменяется с DiskSkuSnapshotSku
  • 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 параметр с типа FileSystemCmdletProviderEncodingSystem.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, EncryptionStateEncryptionProvisioningStateEncryptionConfigFirewallStateFirewallRulesVirtualNetworkRulesTrustedIdProviderStateTrustedIdProvidersDefaultGroupNewTierCurrentTierFirewallAllowAzureIps из 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-AzSqlDatabaseAuditingRemove-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и PSCloningInfoPSSite объектов