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.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 and 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 リファレンスを参照してください。
重要
エイリアスを無効にする場合は、必ず、エイリアスが有効になっているすべてのスコープに対して無効にしてください。
モジュール名の変更
次のモジュールを除き、モジュール名が 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
完全修飾コマンドレットの呼び出しの移行
次のように、モジュール修飾コマンドレットの呼び出しを使用するスクリプトは、
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
Windows 用の PowerShell 5.1 で Az を使用するには、.NET Framework 4.7.2 をインストールする必要があります。 PowerShell Core 6.x 以降を使用する場合、.NET Fremework は不要です。
PSCredential を使用したユーザー ログインの一時的な削除
.NET Standard の認証フローの変更により、PSCredential を使用したユーザー ログインが一時的に削除されます。 この機能は、Windows 用の PowerShell 5.1 の 2019/1/15 リリースで再導入されます。 詳細については、こちらの GitHub の問題をご覧ください。
Web ブラウザー プロンプトの代わりにデバイス コード ログインを既定で使用
.NET Standard の認証フローの変更により、対話型ログイン時の既定のログイン フローとしてデバイス ログインが使用されます。 Web ブラウザー ベースのログインは、Windows 用の PowerShell 5.1 の 2019/1/15 リリースで既定のログインとして再導入されます。 その時点で、ユーザーは 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
に分割されました。 - New-AzureApiManagementVirtualNetwork コマンドレットから、必須の
Location
プロパティが削除されました。
Az.Billing (以前の AzureRM.Billing、AzureRM.Consumption、および AzureRM.UsageAggregates)
Get-AzConsumptionUsageDetail
コマンドレットから、InvoiceName
パラメーターが削除されました。 スクリプトでは、請求書に他の ID パラメーターを使用する必要があります。
Az.CognitiveServices (以前の AzureRM.CognitiveServices)
Get-AzCognitiveServicesAccountSkus
コマンドレットから、GetSkusWithAccountParamSetName
パラメーター セットが削除されました。 ResourceGroupName とアカウント名を使用するのではなく、アカウントの種類と場所で SKU を取得する必要があります。
Az.Compute (以前の AzureRM.Compute)
PSVirtualMachine
およびPSVirtualMachineScaleSet
オブジェクトのIdentity
プロパティからIdentityIds
が削除されました。スクリプトでは、このフィールドの値を使用して処理を決定することはできなくなりました。PSVirtualMachineScaleSetVM
オブジェクトのInstanceView
プロパティの型が、VirtualMachineInstanceView
からVirtualMachineScaleSetVMInstanceView
に変更されました。UpgradePolicy
プロパティから、AutoOSUpgradePolicy
およびAutomaticOSUpgrade
プロパティが削除されました。PSSnapshotUpdate
オブジェクトのSku
プロパティの型が、DiskSku
からSnapshotSku
に変更されました。Add-AzVMDataDisk
コマンドレットから、VmScaleSetVMParameterSet
が削除されました。スケールセット 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"}
PSDataLakeStoreAccountBasic
オブジェクトから、非推奨のIdentity
、EncryptionState
、EncryptionProvisioningState
、EncryptionConfig
、FirewallState
、FirewallRules
、VirtualNetworkRules
、TrustedIdProviderState
、TrustedIdProviders
、DefaultGroup
、NewTier
、CurrentTier
、FirewallAllowAzureIps
の各プロパティが削除されました。Get-AzDataLakeStoreAccount
から返されたPSDatalakeStoreAccount
を使用するスクリプトでは、これらのプロパティを参照しないでください。
Az.KeyVault (以前の AzureRM.KeyVault)
PSKeyVaultKeyAttributes
、PSKeyVaultKeyIdentityItem
、PSKeyVaultSecretAttributes
の各オブジェクトから、PurgeDisabled
プロパティが削除されました。スクリプトでは、PurgeDisabled
プロパティを参照して処理を決定することはできなくなりました。
Az.Media (以前の AzureRM.Media)
New-AzMediaService
コマンドレットから、非推奨のTags
プロパティのエイリアスが削除されました。次のコマンドレットを使用するスクリプトはNew-AzureRMMediaService -Tags @{TagName="TagValue"}
次のように変更する必要があります。
New-AzMediaService -Tag @{TagName="TagValue"}
Az.Monitor (以前の AzureRM.Insights)
単数形のパラメーター名を優先して、
Set-AzDiagnosticSetting
コマンドレットから複数形のパラメーター名Categories
とTimegrains
が削除されました。次のコマンドレットを使用するスクリプトは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
種類 (Kind) を指定するように変更する必要があります。
Get-AzOperationalInsightsDataSource -Kind AzureActivityLog
Az.RecoveryServices (以前の AzureRM.RecoveryServices、AzureRM.RecoveryServices.Backup、および AzureRM.RecoveryServices.SiteRecovery)
New/Set-AzRecoveryServicesAsrPolicy
コマンドレットから、Encryption
パラメーターが削除されました。Restore-AzRecoveryServicesBackupItem
コマンドレットでのマネージド ディスクの復元にTargetStorageAccountName
パラメーターが必須になりました。Restore-AzRecoveryServicesBackupItem
コマンドレットのStorageAccountName
およびStorageAccountResourceGroupName
パラメーターが削除されました。Get-AzRecoveryServicesBackupContainer
コマンドレットのName
パラメーターが削除されました。
Az.Resources (以前の AzureRM.Resources)
New/Set-AzPolicyAssignment
コマンドレットから、Sku
パラメーターが削除されました。New-AzADServicePrincipal
およびNew-AzADSpCredential
コマンドレットから、Password
パラメーターが削除されました。パスワードは自動的に生成されます。次のようにパスワードを指定しているスクリプトは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)
- コマンドレットの次の戻り値の型が変更されました。
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)
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 and 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()
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
論理的に削除された BLOB の削除の取り消し
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()
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")
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
の各オブジェクトから非推奨のプロパティが削除されました。
Azure PowerShell