Критические изменения для Az 1.0.0

В этом документе содержатся подробные сведения об отличиях между AzureRM 6.x и новым модулем Az версии 1.x и более поздних. Пункты в оглавлении помогут вам разобраться со всеми этапами переноса, включая изменения модуля, которые могут повлиять на скрипты.

Общие советы по началу перехода с Az на AzureRM см. в этой статье.

Внимание

Кроме того, после выхода версии Az 1.0.0 также были внесены критические изменения, которые представлены в Az 2.0.0. Выполнив действия по переходу с AzureRM на Az, представленные в этом руководстве, перейдите к статье о критических изменениях в Az 2.0.0, чтобы узнать, необходимо ли вам внести дополнительные изменения.

Оглавление

Общие критически важные изменения

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

Скрипты, объявляющие зависимости от модулей AzureRM с помощью #Requires или Import-Module, должны быть обновлены для использования новых имен модулей. Например:

#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. Эта возможность будет доступна в выпуске от 15 января 2019 г. для Windows PowerShell 5.1. Это подробно описано в этом сообщении на сайте GitHub.

Вход с кодом устройства по умолчанию вместо запроса веб-браузера

Из-за изменений в процессе проверки подлинности для .NET Standard мы используем вход устройства в качестве потока входа по умолчанию во время интерактивного входа. Вход через веб-браузер будет повторно представлен для Windows PowerShell 5.1 в качестве версии по умолчанию в выпуске от 15 января 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.Consitation и 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. Больше нельзя отдельно добавлять диск данных в виртуальную машину из масштабируемого набора.

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"}
    
  • Из объекта PSDataLakeStoreAccountBasic удалены нерекомендуемые свойства: Identity, EncryptionState, EncryptionProvisioningState, EncryptionConfig, FirewallState, FirewallRules, VirtualNetworkRules, TrustedIdProviderState, TrustedIdProviders, DefaultGroup, NewTier, CurrentTier, FirewallAllowAzureIps. Любой сценарий, который использует PSDatalakeStoreAccount, возвращенный из Get-AzDataLakeStoreAccount, не должен ссылаться на эти свойства.

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

  • Свойство PurgeDisabled удалено из объектов PSKeyVaultKeyAttributes, PSKeyVaultKeyIdentityItem и PSKeyVaultSecretAttributes. Скрипты больше не должны ссылаться на свойство 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)

  • Из командлета Get-AzServiceEndpointPolicyDefinition удален нерекомендуемый параметр ResourceId
  • Из объекта PSVirtualNetwork удалено нерекомендуемое свойство EnableVmProtection
  • Нерекомендуемый командлет 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 удален параметр Encryption.
  • Параметр TargetStorageAccountName теперь является обязательным для восстановления управляемого диска в командлете Restore-AzRecoveryServicesBackupItem.
  • В командлете Restore-AzRecoveryServicesBackupItem удалены параметры StorageAccountName и StorageAccountResourceGroupName.
  • В командлете Get-AzRecoveryServicesBackupContainer удален параметр Name.

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

  • Из командлета New/Set-AzPolicyAssignment удален параметр Sku.

  • Параметр Password удален из командлетов New-AzADServicePrincipal и New-AzADSpCredential. Пароли генерируются автоматически. Сценарии, которые предоставили пароль:

    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)

  • Изменены следующие типы возвращаемых командлетов:
    • Свойство 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)

  • Из командлета Set-AzSqlDatabaseBackupLongTermRetentionPolicy удалены параметры State и ResourceId.
  • Удалены следующие нерекомендуемые командлеты: Get/Set-AzSqlServerBackupLongTermRetentionVault, Get/Start/Stop-AzSqlServerUpgrade, Get/Set-AzSqlDatabaseAuditingPolicy, Get/Set-AzSqlServerAuditingPolicy, Remove-AzSqlDatabaseAuditing, Remove-AzSqlServerAuditing.
  • Из командлета Get-AzSqlDatabaseBackupLongTermRetentionPolicy удален нерекомендуемый параметр Current
  • Из командлета Get-AzSqlServerServiceObjective удален нерекомендуемый параметр DatabaseName
  • Из командлета Set-AzSqlDatabaseDataMaskingPolicy удален нерекомендуемый параметр PrivilegedLogin

Az.Storage (ранее Azure.Storage и AzureRM.Storage)

  • Для поддержки создания контекста хранения Oauth только с именем учетной записи хранения набор параметров по умолчанию был изменен на OAuthParameterSet.
    • Пример: $ctx = New-AzureStorageContext -StorageAccountName $accountName
  • Параметр Location стал обязательным в командлете Get-AzStorageUsage
  • Методы API службы хранилища теперь используют асинхронную модель на основе задач (TAP) вместо синхронных вызовов API. В приведенных ниже примерах показаны новые асинхронные команды.

Моментальный снимок большого двоичного объекта

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

Отмена удаления обратимо удаленных больших двоичных объектов

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()

Установка уровня большого двоичного объекта

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)

  • Из объектов PSAppServicePlan, PSCertificate, PSCloningInfo и PSSite удалены нерекомендуемые свойства.