Przewodnik migracji dla modułu Az 2.0.0
W tym dokumencie opisano zmiany między wersjami az 1.0.0 i 2.0.0
Spis treści
- zmiany w module powodujące niekompatybilność
- Az.Compute
- Az.HDInsight
- Az.Storage
Zmiany naruszające zgodność modułów
Az.Compute
Usunięto parametr
Managed
z poleceń cmdletNew-AzAvailabilitySet
iUpdate-AzAvailabilitySet
na rzecz używaniaSku = Aligned
Przed
Update-AzAvailabilitySet -Managed
Po
Update-AzAvailabilitySet -Sku Aligned
W celu zapewnienia spójności usunięto parametr
Image
z zestawów parametrów "ByName" i "ByResourceId" wUpdate-AzImage
Przed
Zwróć uwagę, że poniższy kod działa, ale przekazany parametr ImageName nie jest używany, więc usunięcie tego parametru nie ma wpływu na funkcjonalność.
Update-AzImage -ResourceGroupName $Rg -ImageName $Name -Image $Image -Tag $tags Update-AzImage -ResourceId $Id -Image $Image -Tag $tags
Po
Update-AzImage -ResourceGroupName $Rg -ImageName $Name -Tag $tags Update-AzImage -ResourceId $Id -Tag $tags
W celu zapewnienia spójności usunięto parametr
Name
z zestawów parametrów "ByObject" i "ByResourceId" wRestart-AzVM
Przed
Zwróć uwagę, że poniższy kod działa, ale przekazana nazwa nie jest używana, więc usunięcie tego parametru nie ma wpływu na funkcjonalność.
Restart-AzVM -InputObject $VM -Name $Name Restart-AzVM -ResourceId $Id -Name $Name
Po
Restart-AzVM -InputObject $VM Restart-AzVM -ResourceId $Id
W celu zapewnienia spójności usunięto parametr
Name
z zestawów parametrów "ByObject" i "ByResourceId" wStart-AzVM
Przed
Zwróć uwagę, że poniższy kod działa, ale przekazana nazwa nie jest używana, więc usunięcie tego parametru nie ma wpływu na funkcjonalność.
Start-AzVM -InputObject $VM -Name $Name Start-AzVM -ResourceId $Id -Name $Name
Po
Start-AzVM -InputObject $VM Start-AzVM -ResourceId $Id
W celu zapewnienia spójności usunięto parametr
Name
z zestawów parametrów "ByObject" i "ByResourceId" wStop-AzVM
Przed
Zwróć uwagę, że poniższy kod działa, ale przekazana nazwa nie jest używana, więc usunięcie tego parametru nie ma wpływu na funkcjonalność.
Stop-AzVM -InputObject $VM -Name $Name Stop-AzVM -ResourceId $Id -Name $Name
Po
Stop-AzVM -InputObject $VM Stop-AzVM -ResourceId $Id
W celu zapewnienia spójności usunięto parametr
Name
z zestawów parametrów "ByObject" i "ByResourceId" wRemove-AzVM
Przed
Zwróć uwagę, że poniższy kod działa, ale przekazana nazwa nie jest używana, więc usunięcie tego parametru nie ma wpływu na funkcjonalność.
Remove-AzVM -InputObject $VM -Name $Name Remove-AzVM -ResourceId $Id -Name $Name
Po
Remove-AzVM -InputObject $VM Remove-AzVM -ResourceId $Id
W celu zapewnienia spójności usunięto parametr
Name
z zestawów parametrów "ByObject" i "ByResourceId" wSet-AzVM
Przed
Zwróć uwagę, że poniższy kod działa, ale przekazana nazwa nie jest używana, więc usunięcie tego parametru nie ma wpływu na funkcjonalność.
Set-AzVM -InputObject $VM -Name $Name ... Set-AzVM -ResourceId $Id -Name $Name ...
Po
Set-AzVM -InputObject $VM ... Set-AzVM -ResourceId $Id ...
W celu zapewnienia spójności usunięto parametr
Name
z zestawów parametrów "ByObject" i "ByResourceId" wSave-AzVMImage
Przed
Zwróć uwagę, że poniższy kod działa, ale przekazana nazwa nie jest używana, więc usunięcie tego parametru nie ma wpływu na funkcjonalność.
Save-AzVMImage -InputObject $VM -Name $Name ... Save-AzVMImage -ResourceId $Id -Name $Name ...
Po
Save-AzVMImage -InputObject $VM ... Save-AzVMImage -ResourceId $Id ...
Dodano właściwość ProtectionPolicy w celu hermetyzacji właściwości
ProtectFromScaleIn
wPSVirtualMachineScaleSetVM
Przed
$vmss = Get-AzVMssVM ... $vmss.ProtectFromScaleIn = $true $vmss = Update-AzVMssVM ... $vmss.ProtectFromScaleIn = $true $vmss = Remove-AzVMssVMDataDisk ... $vmss.ProtectFromScaleIn = $true
Po
$vmss = Get-AzVMssVM ... $vmss.ProtectionPolicy.ProtectFromScaleIn = $true $vmss = Update-AzVMssVM ... $vmss.ProtectionPolicy.ProtectFromScaleIn = $true $vmss = Remove-AzVMssVMDataDisk ... $vmss.ProtectionPolicy.ProtectFromScaleIn = $true
Dodano właściwość
EncryptionSettingsCollection
w celu ujęć właściwościEncryptionSettings
wPSDisk
Przed
$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
Po
$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
Dodano właściwość
EncryptionSettingsCollection
w celu ujęć właściwościEncryptionSettings
wPSSnapshot
Przed
$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
Po
$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
Usunięto właściwość
VirtualMachineProfile
zPSVirtualMachineScaleSet
Przed
$vmss = New-AzVMSSConfig ... $vmss.VirtualMachineProfile.AdditionalCapabilities.UltraSSDEnabled = $true
Po
$vmss = New-AzVMSSConfig ... $vmss.AdditionalCapabilities.UltraSSDEnabled = $true
Cmdlet
Set-AzVMBootDiagnostic
usunął alias doSet-AzVMBootDiagnostics
Przed
Używanie przestarzałego aliasu
Set-AzVMBootDiagnostics
Po
Set-AzVMBootDIagnostic
Polecenie cmdlet
Export-AzLogAnalyticThrottledRequest
usunęło alias dlaExport-AzLogAnalyticThrottledRequests
Przed
Używanie przestarzałego aliasu
Export-AzLogAnalyticThrottledRequests
Po
Export-AzLogAnalyticThrottledRequest
Az.HDInsight
- Usunięto polecenia cmdlet
Grant-AzHDInsightHttpServicesAccess
iRevoke-AzHDInsightHttpServicesAccess
. Nie są one już konieczne, ponieważ dostęp HTTP jest zawsze włączony we wszystkich klastrach usługi HDInsight. - Dodano nowe polecenie cmdlet
Set-AzHDInsightGatewayCredential
. Użyj tego polecenia cmdlet, aby zmienić nazwę użytkownika i hasło dostępu HTTP dla bramy (zastępujeGrant-AzHDInsightHttpServicesAccess
). - Zaktualizowano polecenie cmdlet
Get-AzHDInsightJobOutput
w celu obsługi szczegółowego dostępu opartego na rolach do klucza magazynu.- Użytkownicy z rolami operatora klastra usługi HDInsight, współautora lub właściciela nie będą mieć wpływu.
- Użytkownicy z rolą Czytelnika muszą jawnie określić parametr
DefaultStorageAccountKey
.
Aby uzyskać więcej informacji na temat tych zmian dostępu opartych na rolach, zobacz aka.ms/hdi-config-update
Przed
Grant-AzHDInsightHttpServicesAccess -ClusterName $cluster -HttpCredential $credential
Po
Set-AzHDInsightGatewayCredential -ClusterName $cluster -HttpCredential $credential
Użytkownicy tylko z rolą czytelnika dla polecenia cmdlet Get-AzHDInsightJobOutput
Przed
Get-AzHDInsightJobOutput -ClusterName $clusterName -JobId $jobId
Po
Get-AzHDInsightJobOutput -ClusterName $clusterName -JobId $jobId -DefaultStorageAccountKey $storageAccountKey
Az.Storage
Przestrzenie nazw dla typów zwracanych z poleceń cmdlet obiektów blob, kolejek i plików zostały zmienione z
Microsoft.WindowsAzure.Storage
naMicrosoft.Azure.Storage
. Chociaż nie jest to technicznie zmiana powodująca niezgodność zgodnie z zasadami zmiany powodującej niezgodność, może to wymagać pewnych zmian w kodzie, który używa metod z zestawu SDK .Net dla usługi Storage do interakcji z obiektami zwracanymi z tych cmdletów.Przykład 1: Dodawanie komunikatu do kolejki (zmiana przestrzeni nazw obiektu CloudQueueMessage)
Przed:
$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)
Po:
$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)
Przykład 2: Pobieranie atrybutów obiektu blob/pliku za pomocą właściwości AccessCondition (zmiana przestrzeni nazw obiektu AccessCondition)
Przed:
$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)
Po:
$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)
Chociaż technicznie nie jest to zmiana krytyczna, zauważysz różnice w danych wyjściowych dla właściwości Sku.Name kont magazynu zwróconych z
New/Get/Set-AzStorageAccount
. Oto jak wyglądają zmiany. (Po zmianie dane wyjściowe i dane wejściowe SkuName są wyrównane).- "StandardLRS" —> "Standard_LRS";
- "StandardGRS" —> "Standard_GRS";
- "StandardRAGRS" —> "Standard_RAGRS";
- StandardZRS —> "Standard_ZRS";
- "PremiumLRS" —> "Premium_LRS";
Domyślne zachowanie usługi podczas tworzenia konta magazynu bez określenia rodzaju uległo zmianie. W poprzednich wersjach, gdy konto magazynu zostało utworzone bez określenia
Kind
, używano Rodzaju konta magazynuStorage
. W nowej wersjiStorageV2
jest domyślną wartościąKind
. Jeśli musisz utworzyć konto magazynu w wersji 1 z typem "Storage", dodaj parametr "-Kind Storage"Przykład: tworzenie konta magazynu (zmiana typu domyślnego)
Przed:
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
Po:
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