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


Кардинальные изменения для 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.

Изменения префикса названия cmdlet

В модуле 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.Учетные записи
AzureRM.Insights Аз.Монитор
AzureRM.DataFactories Az.DataFactory
AzureRM.DataFactoryV2 Az.DataFactory
AzureRM.RecoveryServices.Backup Az.RecoveryServices (службы восстановления Azure)
AzureRM.RecoveryServices.SiteRecovery Az.RecoveryServices (службы восстановления Azure)
AzureRM.Tags Аз.Ресурсы
AzureRM.MachineLearningCompute Az.MachineLearning
AzureRM.UsageAggregates Аз.Биллинг
AzureRM.Потребление Аз.Биллинг

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

  • Удалены следующие cmdlets:
    • New-AzureRmApiManagementHostnameConfiguration
    • Set-AzureRmApiManagementHostnames
    • Update-AzureRmApiManagementDeployment (обновление развертывания управления API Azure)
    • 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. Все остальные предыдущие значения кодирования остаются.

    • Новый элемент AzureRmDataLakeStore
    • Add-AzureRmDataLakeStoreItemContent
    • Get-AzureRmDataLakeStoreItemContent (получить содержимое элемента из хранилища данных Azure Data Lake)
  • Удален устаревший псевдоним свойства 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. Скрипты больше не должны ссылаться на свойство 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 cmdlet
  • Из объекта 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 (удалить сертификат кластера Service Fabric)
      • Remove-AzServiceFabricNode;
      • Удалить-AzServiceFabricNodeType
      • Remove-AzServiceFabricSetting
      • Set-AzServiceFabricSetting
      • Set-AzServiceFabricUpgradeType
      • Update-AzServiceFabricDurability
      • Обновление надежности AzServiceFabric

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