Migrationsleitfaden für Az 2.0.0
In diesem Dokument werden die Änderungen zwischen den Versionen 1.0.0 und 2.0.0.0 von Az beschrieben.
Inhaltsverzeichnis
Grundlegende Änderungen am Modul
Az.Compute
Der Parameter
Managed
wurde aus den CmdletsNew-AzAvailabilitySet
undUpdate-AzAvailabilitySet
entfernt, um die Verwendung vonSku = Aligned
zu unterstützen.Vorher
Update-AzAvailabilitySet -Managed
Nachher
Update-AzAvailabilitySet -Sku Aligned
Aus Gründen der Konsistenz wurde der Parameter
Image
aus den Parametersätzen „ByName“ und „ByResourceId“ inUpdate-AzImage
entfernt.Vorher
Beachten Sie, dass der folgende Code funktionsfähig ist, aber der übergebene ImageName nicht verwendet wird, sodass das Entfernen dieses Parameters keine funktionale Auswirkung hat.
Update-AzImage -ResourceGroupName $Rg -ImageName $Name -Image $Image -Tag $tags Update-AzImage -ResourceId $Id -Image $Image -Tag $tags
Nachher
Update-AzImage -ResourceGroupName $Rg -ImageName $Name -Tag $tags Update-AzImage -ResourceId $Id -Tag $tags
Aus Konsistenzgründen wurde der Parameter
Name
aus den Parametersätzen „ByObject“ und „ByResourceId“ inRestart-AzVM
entfernt.Vorher
Beachten Sie, dass der folgende Code funktionsfähig ist, aber der übergebene Name nicht verwendet wird, sodass das Entfernen dieses Parameters keine funktionale Auswirkung hat.
Restart-AzVM -InputObject $VM -Name $Name Restart-AzVM -ResourceId $Id -Name $Name
Nachher
Restart-AzVM -InputObject $VM Restart-AzVM -ResourceId $Id
Aus Konsistenzgründen wurde der Parameter
Name
aus den Parametersätzen „ByObject“ und „ByResourceId“ inStart-AzVM
entfernt.Vorher
Beachten Sie, dass der folgende Code funktionsfähig ist, aber der übergebene Name nicht verwendet wird, sodass das Entfernen dieses Parameters keine funktionale Auswirkung hat.
Start-AzVM -InputObject $VM -Name $Name Start-AzVM -ResourceId $Id -Name $Name
Nachher
Start-AzVM -InputObject $VM Start-AzVM -ResourceId $Id
Aus Konsistenzgründen wurde der Parameter
Name
aus den Parametersätzen „ByObject“ und „ByResourceId“ inStop-AzVM
entfernt.Vorher
Beachten Sie, dass der folgende Code funktionsfähig ist, aber der übergebene Name nicht verwendet wird, sodass das Entfernen dieses Parameters keine funktionale Auswirkung hat.
Stop-AzVM -InputObject $VM -Name $Name Stop-AzVM -ResourceId $Id -Name $Name
Nachher
Stop-AzVM -InputObject $VM Stop-AzVM -ResourceId $Id
Zur Einhaltung der Konsistenz wurde der
Name
Parameter aus den Parametersätzen 'ByObject' und 'ByResourceId' inRemove-AzVM
entfernt.Vorher
Beachten Sie, dass der folgende Code funktionsfähig ist, aber der übergebene Name nicht verwendet wird, sodass das Entfernen dieses Parameters keine funktionale Auswirkung hat.
Remove-AzVM -InputObject $VM -Name $Name Remove-AzVM -ResourceId $Id -Name $Name
Nachher
Remove-AzVM -InputObject $VM Remove-AzVM -ResourceId $Id
Der Parameter
Name
wurde aus den Parametersätzen 'ByObject' und 'ByResourceId' inSet-AzVM
aus Konsistenzgründen entfernt.Vorher
Beachten Sie, dass der folgende Code funktionsfähig ist, aber der übergebene Name nicht verwendet wird, sodass das Entfernen dieses Parameters keine funktionale Auswirkung hat.
Set-AzVM -InputObject $VM -Name $Name ... Set-AzVM -ResourceId $Id -Name $Name ...
Nachher
Set-AzVM -InputObject $VM ... Set-AzVM -ResourceId $Id ...
Für die Konsistenz wurde der Parameter
Name
aus den Parametersätzen "ByObject" und "ByResourceId" inSave-AzVMImage
entfernt.Vorher
Beachten Sie, dass der folgende Code funktionsfähig ist, aber der übergebene Name nicht verwendet wird, sodass das Entfernen dieses Parameters keine funktionale Auswirkung hat.
Save-AzVMImage -InputObject $VM -Name $Name ... Save-AzVMImage -ResourceId $Id -Name $Name ...
Nachher
Save-AzVMImage -InputObject $VM ... Save-AzVMImage -ResourceId $Id ...
Die ProtectionPolicy-Eigenschaft wurde hinzugefügt, um die Eigenschaft
ProtectFromScaleIn
inPSVirtualMachineScaleSetVM
zu kapseln.Vorher
$vmss = Get-AzVMssVM ... $vmss.ProtectFromScaleIn = $true $vmss = Update-AzVMssVM ... $vmss.ProtectFromScaleIn = $true $vmss = Remove-AzVMssVMDataDisk ... $vmss.ProtectFromScaleIn = $true
Nachher
$vmss = Get-AzVMssVM ... $vmss.ProtectionPolicy.ProtectFromScaleIn = $true $vmss = Update-AzVMssVM ... $vmss.ProtectionPolicy.ProtectFromScaleIn = $true $vmss = Remove-AzVMssVMDataDisk ... $vmss.ProtectionPolicy.ProtectFromScaleIn = $true
Die
EncryptionSettingsCollection
-Eigenschaft wurde hinzugefügt, um dieEncryptionSettings
Eigenschaft inPSDisk
einzuschließen.Vorher
$disk = New-AzDisk ... | Set-AzDiskDiskEncrytionKey ... $disk.EncryptionSettings $disk = New-AzDisk ... | Set-AzDiskKeyEncrytionKey ... $disk.EncryptionSettings $update = New-AzDiskUpdateConfig | Set-AzDiskUpdateDiskEncryptionKey ... $update.EncryptionSettings $update = New-AzDiskUpdateConfig | Set-AzDiskUpdateKeyEncryptionKey ... $update.EncryptionSettings
Nachher
$disk = New-AzDisk ... | Set-AzDiskDiskEncrytionKey ... $disk.EncryptionSettingsCollection.EncryptionSettings $disk = New-AzDisk ... | Set-AzDiskKeyEncrytionKey ... $disk.EncryptionSettingsCollection.EncryptionSettings $update = New-AzDiskUpdateConfig | Set-AzDiskUpdateDiskEncryptionKey ... $update.EncryptionSettingsCollection.EncryptionSettings $update = New-AzDiskUpdateConfig | Set-AzDiskUpdateKeyEncryptionKey ... $update.EncryptionSettingsCollection.EncryptionSettings
Die
EncryptionSettingsCollection
-Eigenschaft wurde hinzugefügt, um dieEncryptionSettings
Eigenschaft inPSSnapshot
einzuschließen.Vorher
$snap = New-AzSnapshotConfig ... | Set-AzSnapshotDiskEncryptionKey ... $snap.EncryptionSettings $snap = New-AzSnapshotConfig ... | Set-AzSnapshotKeyEncryptionKey ... $snap.EncryptionSettings $update = New-AzSnapshotUpdateConfig ... | Set-AzSnapshotUpdateDiskEncryptionKey ... $update.EncryptionSettings $update = New-AzSnapshotUpdateConfig ... | Set-AzSnapshotUpdateKeyEncryptionKey ... $update.EncryptionSettings
Nachher
$snap = New-AzSnapshotConfig ... | Set-AzSnapshotDiskEncryptionKey ... $snap.EncryptionSettingsCollection.EncryptionSettings $snap = New-AzSnapshotConfig ... | Set-AzSnapshotKeyEncryptionKey ... $snap.EncryptionSettingsCollection.EncryptionSettings $update = New-AzSnapshotUpdateConfig ... | Set-AzSnapshotUpdateDiskEncryptionKey ... $update.EncryptionSettingsCollection.EncryptionSettings $update = New-AzSnapshotUpdateConfig ... | Set-AzSnapshotUpdateKeyEncryptionKey ... $update.EncryptionSettingsCollection.EncryptionSettings
Die
VirtualMachineProfile
-Eigenschaft wurde ausPSVirtualMachineScaleSet
entfernt.Vorher
$vmss = New-AzVMSSConfig ... $vmss.VirtualMachineProfile.AdditionalCapabilities.UltraSSDEnabled = $true
Nachher
$vmss = New-AzVMSSConfig ... $vmss.AdditionalCapabilities.UltraSSDEnabled = $true
Cmdlet
Set-AzVMBootDiagnostic
entfernt Alias fürSet-AzVMBootDiagnostics
.Vorher
Verwendung veralteter Aliase
Set-AzVMBootDiagnostics
Nachher
Set-AzVMBootDIagnostic
Cmdlet
Export-AzLogAnalyticThrottledRequest
entfernt Alias fürExport-AzLogAnalyticThrottledRequests
.Vorher
Es werden veraltete Aliasnamen verwendet.
Export-AzLogAnalyticThrottledRequests
Nachher
Export-AzLogAnalyticThrottledRequest
Az.HDInsight
- Die Cmdlets
Grant-AzHDInsightHttpServicesAccess
undRevoke-AzHDInsightHttpServicesAccess
wurden entfernt. Diese sind nicht mehr erforderlich, da der HTTP-Zugriff immer in allen HDInsight-Clustern aktiviert ist. - Ein neues
Set-AzHDInsightGatewayCredential
-Cmdlet wurde hinzugefügt. Verwenden Sie dieses Cmdlet, um den HTTP-Benutzernamen und das Kennwort des Gateways zu ändern (ersetztGrant-AzHDInsightHttpServicesAccess
). - Das Cmdlet
Get-AzHDInsightJobOutput
wurde aktualisiert, um einen differenzierten rollenbasierten Zugriff auf den Speicherschlüssel zu unterstützen.- Benutzer mit HDInsight-Clusteroperator-, Mitwirkenden- oder Besitzerrollen sind nicht betroffen.
- Benutzer, die nur die Rolle "Leser" haben, müssen den Parameter
DefaultStorageAccountKey
explizit angeben.
Weitere Informationen zu diesen rollenbasierten Zugriffsänderungen finden Sie unter aka.ms/hdi-config-update.
Vorher
Grant-AzHDInsightHttpServicesAccess -ClusterName $cluster -HttpCredential $credential
Nachher
Set-AzHDInsightGatewayCredential -ClusterName $cluster -HttpCredential $credential
Benutzer, die nur über die Rolle „Leser“ für das Cmdlet „Get-AzHDInsightJobOutput“ verfügen.
Vorher
Get-AzHDInsightJobOutput -ClusterName $clusterName -JobId $jobId
Nachher
Get-AzHDInsightJobOutput -ClusterName $clusterName -JobId $jobId -DefaultStorageAccountKey $storageAccountKey
Az.Storage
Namespaces für Typen, die von den Cmdlets „Blob“, „Warteschlange“ und „Datei“ zurückgegeben werden, haben ihren Namespace von
Microsoft.WindowsAzure.Storage
zuMicrosoft.Azure.Storage
geändert. Obwohl es sich hierbei technisch gesehen nicht um eine Breaking Change-Änderung gemäß der Breaking Change-Richtlinie handelt, kann es erforderlich sein, einige Änderungen im Code vorzunehmen, die die Methoden des Storage .NET SDKs verwenden, um mit den von diesen Cmdlets zurückgegebenen Objekten zu interagieren.Beispiel 1: Hinzufügen einer Nachricht zu einer Warteschlange (Ändern des CloudQueueMessage-Objektnamespaces)
Vorher:
$queue = Get-AzStorageQueue –Name $queueName –Context $ctx $queueMessage = New-Object -TypeName "Microsoft.WindowsAzure.Storage.Queue.CloudQueueMessage,$($queue.CloudQueue.GetType().Assembly.FullName)" -ArgumentList "This is message 1" $queue.CloudQueue.AddMessageAsync($QueueMessage)
Nachher:
$queue = Get-AzStorageQueue –Name $queueName –Context $ctx $queueMessage = New-Object -TypeName "Microsoft.Azure.Storage.Queue.CloudQueueMessage,$($queue.CloudQueue.GetType().Assembly.FullName)" -ArgumentList "This is message 1" $queue.CloudQueue.AddMessageAsync($QueueMessage)
Beispiel 2: Abrufen von Blob-/Dateiattributen mit AccessCondition (Ändern des AccessCondition-Objektnamespaces)
Vorher:
$accessCondition= New-Object Microsoft.WindowsAzure.Storage.AccessCondition $blob = Get-AzureStorageBlob -Container $containerName -Blob $blobName $blob.ICloudBlob.FetchAttributes($accessCondition) $file = Get-AzureStorageFile -ShareName $shareName -Path $filepath $file.FetchAttributes($accessCondition)
Nachher:
$accessCondition= New-Object Microsoft.Azure.Storage.AccessCondition $blob = Get-AzureStorageBlob -Container $containerName -Blob $blobName $blob.ICloudBlob.FetchAttributes($accessCondition) $file = Get-AzureStorageFile -ShareName $shareName -Path $filepath $file.FetchAttributes($accessCondition)
Obwohl es sich hierbei technisch gesehen nicht um einen Breaking Change handelt, werden Sie feststellen, dass sich die Ausgabeunterschiede in der Sku.Name-Eigenschaft von Speicherkonten, die von
New/Get/Set-AzStorageAccount
-Änderungen zurückgegeben wurden, wie folgt darstellen. (Nach der Änderung sind aus- und eingegebenes „SkuName“ ausgerichtet.)- „StandardLRS“ -> „Standard_LRS“;
- „StandardGRS“ -> „Standard_GRS“;
- „StandardRAGRS“ -> „Standard_RAGRS“;
- „StandardZRS“ -> „Standard_ZRS“;
- „PremiumLRS“ -> „Premium_LRS“;
Das standardmäßige Dienstverhalten beim Erstellen eines Speicherkontos ohne Angabe einer Art hat sich geändert. Wenn in früheren Versionen ein Speicherkonto ohne
Kind
erstellt wurde, wurde die Speicherkontoart vonStorage
verwendet. In der neuen Version istStorageV2
der Standardwert fürKind
. Wenn Sie ein V1-Speicherkonto der Art „Storage“ erstellen müssen, fügen Sie den Parameter „-Kind Storage“ hinzu.Beispiel: Erstellen eines Speicherkontos (Änderung der Standardart)
Vorher:
PS c:\> New-AzStorageAccount -ResourceGroupName groupname -Name accountname -SkuName Standard_LRS -Location "westus" StorageAccountName ResourceGroupName Location SkuName Kind AccessTier CreationTime ProvisioningState EnableHttpsTrafficOnly ------------------ ----------------- -------- ------- ---- ---------- ------------ ----------------- ---------------------- accountname groupname westus StandardLRS Storage Hot 4/17/2018 10:34:32 AM Succeeded False
Nachher:
PS c:\> New-AzStorageAccount -ResourceGroupName groupname -Name accountname -SkuName Standard_LRS -Location "westus" StorageAccountName ResourceGroupName Location SkuName Kind AccessTier CreationTime ProvisioningState EnableHttpsTrafficOnly ------------------ ----------------- -------- ------- ---- ---------- ------------ ----------------- ---------------------- accountname groupname westus Standard_LRS StorageV2 Hot 4/17/2018 10:34:32 AM Succeeded False
Azure PowerShell