次の方法で共有


Az 1.0.0 の破壊的変更

このドキュメントでは、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 モジュールの再設計の一部である一般的な破壊的変更について詳しく説明します。

コマンドレット名詞プレフィックスの変更

AzureRM モジュールでは、コマンドレットは AzureRM または Azure を名詞プレフィックスとして使用しました。 Az ではコマンドレット名が簡略化され、正規化されるため、すべてのコマンドレットでコマンドレット名詞プレフィックスとして 'Az' が使用されます。 例えば次が挙げられます。

Get-AzureRMVM
Get-AzureKeyVaultSecret

次の内容に変更されました。

Get-AzVM
Get-AzKeyVaultSecret

これらの新しいコマンドレット名への移行を簡単にするために、Az には Enable-AzureRmAlias と Disable-AzureRmAlias という 2 つの新しいコマンドレットが導入 されていますEnable-AzureRmAlias は、新しい Az コマンドレット名にマップされる AzureRM 内の古いコマンドレット名のエイリアスを作成します。 Enable-AzureRmAlias-Scope引数を使用すると、エイリアスを有効にする場所を選択できます。

たとえば、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 module
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

モジュール マニフェストの依存関係の移行

モジュール マニフェスト (.psd1) ファイルを介して AzureRM モジュールへの依存関係を表すモジュールは、 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

PowerShell 5.1 for Windows で Az を使用するには、.NET Framework 4.7.2 をインストールする必要があります。 PowerShell Core 6.x 以降を使用する場合、.NET Framework は必要ありません。

PSCredential を使用したユーザー ログインの一時的な削除

.NET Standard の認証フローが変更されたため、PSCredential を使用してユーザー ログインを一時的に削除しています。 この機能は、Windows 用 PowerShell 5.1 の 2019 年 1 月 15 日リリースで再導入される予定です。 これについては、この GitHub の問題で詳しく説明します。

Web ブラウザー プロンプトではなく、既定のデバイス コード ログイン

.NET Standard の認証フローが変更されたため、対話型ログイン時に既定のログイン フローとしてデバイス ログインを使用しています。 2019 年 1 月 15 日リリースでは、Windows 用 PowerShell 5.1 の Web ブラウザー ベースのログインが既定として再導入されます。 その時点で、ユーザーは Switch パラメーターを使用してデバイス ログインを選択できます。

モジュールの破壊的変更

このセクションでは、個々のモジュールとコマンドレットの具体的な破壊的変更について詳しく説明します。

Az.ApiManagement (以前の AzureRM.ApiManagement)

  • 次のコマンドレットを削除しました。
    • New-AzureRmApiManagementHostnameConfiguration
    • Set-AzureRmApiManagementHostnames
    • Update-AzureRmApiManagementDeployment
    • Import-AzureRmApiManagementHostnameCertificate
    • 代わりに Set-AzApiManagement コマンドレットを使用してこれらのプロパティを設定する
  • 次のプロパティを削除しました。
    • PsApiManagementContextからPsApiManagementHostnameConfiguration型のプロパティ PortalHostnameConfigurationProxyHostnameConfigurationManagementHostnameConfiguration、およびScmHostnameConfigurationを削除しました。 代わりに、PsApiManagementCustomHostNameConfiguration型のPortalCustomHostnameConfigurationProxyCustomHostnameConfigurationManagementCustomHostnameConfiguration、およびScmCustomHostnameConfigurationを使用します。
    • PsApiManagementContext からプロパティ StaticIPs を削除しました。 プロパティは、 PublicIPAddressesPrivateIPAddressesに分割されています。
    • コマンドレットから必要なプロパティ Location New-AzureApiManagementVirtualNetwork 削除しました。

Az.Billing (以前の AzureRM.Billing、AzureRM.Consumption、AzureRM.UsageAggregates)

  • InvoiceName パラメーターは、Get-AzConsumptionUsageDetail コマンドレットから削除されました。 スクリプトでは、請求書に他の ID パラメーターを使用する必要があります。

Az.CognitiveServices (以前の AzureRM.CognitiveServices)

  • コマンドレットからパラメーター セット GetSkusWithAccountParamSetName 削除 Get-AzCognitiveServicesAccountSkus 。 ResourceGroupName とアカウント名を使用する代わりに、アカウントの種類と場所ごとに SKU を取得する必要があります。

Az.Compute (以前の AzureRM.Compute)

  • IdentityIdsPSVirtualMachineIdentityプロパティから削除され、PSVirtualMachineScaleSetオブジェクトスクリプトはこのフィールドの値を使用して処理を決定する必要がなくなります。
  • オブジェクトのInstanceViewプロパティの型PSVirtualMachineScaleSetVMVirtualMachineInstanceViewからVirtualMachineScaleSetVMInstanceView
  • AutoOSUpgradePolicyプロパティとAutomaticOSUpgradeプロパティがプロパティから削除UpgradePolicy
  • オブジェクト内のSkuプロパティの型PSSnapshotUpdateDiskSkuからSnapshotSku
  • VmScaleSetVMParameterSet がコマンドレットから削除 Add-AzVMDataDisk 、ScaleSet VM にデータ ディスクを個別に追加することはできなくなります。

Az.DataFactory (以前の AzureRM.DataFactories と AzureRM.DataFactoryV2)

  • New-AzDataFactoryEncryptValue コマンドレットでは、GatewayName パラメーターが必須になりました
  • コマンドレット New-AzDataFactoryGatewayKey 削除されました
  • Get-AzDataFactoryV2ActivityRunコマンドレットスクリプトからLinkedServiceNameパラメーターを削除しました。このフィールドの値を使用して処理を決定する必要はありません。

Az.DataLakeAnalytics (以前の AzureRM.DataLakeAnalytics)

  • 非推奨のコマンドレット ( New-AzDataLakeAnalyticsCatalogSecretRemove-AzDataLakeAnalyticsCatalogSecret、および Set-AzDataLakeAnalyticsCatalogSecret

Az.DataLakeStore (以前の AzureRM.DataLakeStore)

  • 次のコマンドレットでは、 Encoding パラメーターが型 FileSystemCmdletProviderEncoding から System.Text.Encoding に変更されています。 この変更により、エンコード値 String および Oemが削除されます。 その他の以前のエンコード値はすべて残ります。

    • New-AzureRmDataLakeStoreItem
    • Add-AzureRmDataLakeStoreItemContent
    • Get-AzureRmDataLakeStoreItemContent
  • New-AzDataLakeStoreAccountコマンドレットとSet-AzDataLakeStoreAccount コマンドレットから非推奨のTagsプロパティ エイリアスを削除しました

    を使用するスクリプト

    New-AzureRMDataLakeStoreAccount -Tags @{TagName="TagValue"}
    

    に変更する必要があります。

    New-AzDataLakeStoreAccount -Tag @{TagName="TagValue"}
    
  • 非推奨のプロパティ IdentityEncryptionStateEncryptionProvisioningStateEncryptionConfigFirewallStateFirewallRulesVirtualNetworkRulesTrustedIdProviderStateTrustedIdProvidersDefaultGroupNewTierCurrentTierFirewallAllowAzureIps をオブジェクト PSDataLakeStoreAccountBasic から削除しました。 Get-AzDataLakeStoreAccountから返されたPSDatalakeStoreAccountを使用するスクリプトでは、これらのプロパティを参照しないでください。

Az.KeyVault (以前の AzureRM.KeyVault)

  • PurgeDisabled プロパティは、PSKeyVaultKeyAttributesPSKeyVaultKeyIdentityItem、および PSKeyVaultSecretAttributes オブジェクトから削除されました。スクリプトは、処理の決定を行うために、PurgeDisabled プロパティを参照しなくなりました。

Az.Media (以前の AzureRM.Media)

  • 使用して、コマンドレットスクリプトから非推奨の Tags プロパティエイリアス New-AzMediaService 削除する

    New-AzureRMMediaService -Tags @{TagName="TagValue"}
    

    に変更する必要があります。

    New-AzMediaService -Tag @{TagName="TagValue"}
    

Az.Monitor (以前の AzureRM.Insights)

  • 複数形の名前CategoriesTimegrainsパラメーターを削除し、使用するコマンドレット スクリプトから単一のパラメーター名を優先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)

  • コマンドレットからパラメーターEncryptionNew/Set-AzRecoveryServicesAsrPolicy削除しました
  • TargetStorageAccountName パラメーターは、 Restore-AzRecoveryServicesBackupItem コマンドレットでのマネージド ディスクの復元に必須になりました
  • Restore-AzRecoveryServicesBackupItem コマンドレットのStorageAccountNameパラメーターとStorageAccountResourceGroupName パラメーターを削除しました
  • コマンドレット Nameパラメーター Get-AzRecoveryServicesBackupContainer 削除しました

Az.Resources (以前の AzureRM.Resources)

  • コマンドレットからパラメーターSkuNew/Set-AzPolicyAssignment削除しました

  • New-AzADServicePrincipalからパラメーターPassword削除され、パスワードが自動的に生成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)

  • 次のコマンドレットの戻り値の型が変更されました。
    • ApplicationHealthPolicy型のプロパティ ServiceTypeHealthPoliciesが削除されました。
    • ClusterUpgradeDeltaHealthPolicy型のプロパティ ApplicationHealthPoliciesが削除されました。
    • ClusterUpgradePolicy型のプロパティ OverrideUserUpgradePolicyが削除されました。
    • これらの変更は、次のコマンドレットに影響します。
      • 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-AzSqlServerBackupLongTermRetentionVaultGet/Start/Stop-AzSqlServerUpgradeGet/Set-AzSqlDatabaseAuditingPolicyGet/Set-AzSqlServerAuditingPolicyRemove-AzSqlDatabaseAuditingRemove-AzSqlServerAuditing
  • 非推奨のパラメーター CurrentGet-AzSqlDatabaseBackupLongTermRetentionPolicyコマンドレットから削除されました
  • 非推奨のパラメーター DatabaseNameGet-AzSqlServerServiceObjectiveコマンドレットから削除されました
  • 非推奨のパラメーター PrivilegedLoginSet-AzSqlDatabaseDataMaskingPolicyコマンドレットから削除されました

Az.Storage (以前の Azure.Storage と AzureRM.Storage)

  • ストレージ アカウント名のみを使用した Oauth ストレージ コンテキストの作成をサポートするために、既定のパラメーター セットが OAuthParameterSet
    • 例: $ctx = New-AzureStorageContext -StorageAccountName $accountName
  • Get-AzStorageUsage コマンドレットでは、Location パラメーターが必須になりました
  • Storage API メソッドでは、同期 API 呼び出しではなく、タスクベースの非同期パターン (TAP) が使用されるようになりました。 次の例では、新しい非同期コマンドを示します。

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

論理的に削除された BLOB の削除を取り消す

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)

  • PSAppServicePlanPSCertificatePSCloningInfo、およびPSSite オブジェクトから非推奨のプロパティを削除しました