このドキュメントでは、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 と 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 という 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
型のプロパティPortalHostnameConfiguration
、ProxyHostnameConfiguration
、ManagementHostnameConfiguration
、およびScmHostnameConfiguration
を削除しました。 代わりに、PsApiManagementCustomHostNameConfiguration
型のPortalCustomHostnameConfiguration
、ProxyCustomHostnameConfiguration
、ManagementCustomHostnameConfiguration
、およびScmCustomHostnameConfiguration
を使用します。 - PsApiManagementContext からプロパティ
StaticIPs
を削除しました。 プロパティは、PublicIPAddresses
とPrivateIPAddresses
に分割されています。 - コマンドレットから必要なプロパティ
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)
-
IdentityIds
はPSVirtualMachine
Identity
プロパティから削除され、PSVirtualMachineScaleSet
オブジェクトスクリプトはこのフィールドの値を使用して処理を決定する必要がなくなります。 - オブジェクトの
InstanceView
プロパティの型PSVirtualMachineScaleSetVM
VirtualMachineInstanceView
からVirtualMachineScaleSetVMInstanceView
-
AutoOSUpgradePolicy
プロパティとAutomaticOSUpgrade
プロパティがプロパティから削除UpgradePolicy
- オブジェクト内の
Sku
プロパティの型PSSnapshotUpdate
DiskSku
から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-AzDataLakeAnalyticsCatalogSecret
、Remove-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"}
非推奨のプロパティ
Identity
、EncryptionState
、EncryptionProvisioningState
、EncryptionConfig
、FirewallState
、FirewallRules
、VirtualNetworkRules
、TrustedIdProviderState
、TrustedIdProviders
、DefaultGroup
、NewTier
、CurrentTier
、FirewallAllowAzureIps
をオブジェクトPSDataLakeStoreAccountBasic
から削除しました。Get-AzDataLakeStoreAccount
から返されたPSDatalakeStoreAccount
を使用するスクリプトでは、これらのプロパティを参照しないでください。
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
コマンドレットから削除されました - 非推奨の
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
コマンドレットでのマネージド ディスクの復元に必須になりました -
Restore-AzRecoveryServicesBackupItem
コマンドレットのStorageAccountName
パラメーターとStorageAccountResourceGroupName
パラメーターを削除しました - コマンドレット
Name
パラメーターGet-AzRecoveryServicesBackupContainer
削除しました
Az.Resources (以前の AzureRM.Resources)
コマンドレットからパラメーター
Sku
New/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-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
- 例:
-
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)
-
PSAppServicePlan
、PSCertificate
、PSCloningInfo
、およびPSSite
オブジェクトから非推奨のプロパティを削除しました
Azure PowerShell