Migrálás az AzureRM-ből Azure PowerShell Az-be az Azure Stack Hubban
Az Az modul a funkciók tekintetében paritásban van az AzureRM modullal, de rövidebb és egységesebb parancsmagneveket használ. Az AzureRM-parancsmagokhoz írt szkriptek nem működnek automatikusan az új modullal. Az áttérés megkönnyítése érdekében az Az olyan eszközöket nyújt, amelyekkel futtathatja az AzureRM-et használó meglévő szkripteket. Az új parancskészletekre való áttérés soha nem egyszerű, ebben a cikkben azonban segítünk megismerkedni az új modulra való átállás alapjaival.
Az AzureRM és az Az közötti kompatibilitástörő változások teljes listáját az Az 1.0.0 migrálási útmutatójában találja.
Az AzureRM telepített verzióinak megtekintése
A migrálási lépések előtt ellenőrizze, hogy az AzureRM mely verziói vannak telepítve a rendszeren. Ha így tesz, biztosíthatja, hogy a szkriptek már a legújabb kiadáson fussanak, és megtudhatja, hogy engedélyezheti-e a parancsaliasokat az AzureRM eltávolítása nélkül.
Az AzureRM telepített verziója/verziói megtekintéséhez futtassa a következő parancsot:
Get-InstalledModule -Name AzureRM -AllVersions
Ellenőrizze, hogy az aktuális szkriptek működnek-e az AzureRM-ben
Ez az a legfontosabb lépés! Futtassa a meglévő szkripteket, és győződjön meg arról, hogy az AzureRM legújabb kiadásával (2.5.0) működnek. Ha a szkriptek nem működnek, tekintse át az AzureRM áttelepítési útmutatóját.
Az Azure PowerShell Az modul telepítése
Az első lépés az Az modul telepítése a platformra. Az Az telepítésekor ajánlott eltávolítani az AzureRM-et. A következő lépésekben bemutatjuk, hogyan futtathatja továbbra is meglévő szkriptjeit, és hogyan biztosíthatja a régi parancsmagnevek kompatibilitását.
Az Azure PowerShell Az modul telepítéséhez hajtsa végre az alábbi lépéseket:
- Ajánlott: Távolítsa el az AzureRM modult. Győződjön meg róla, hogy az AzureRM összes telepített verzióját eltávolítja, és nem csak a legutóbbi verziót.
- Az Az modul telepítése
Az AzureRM kompatibilitási aliasok engedélyezése
Fontos
Csak akkor engedélyezze a kompatibilitási módot, ha az AzureRM összes verzióját eltávolította. A kompatibilitási mód a továbbra is elérhető AzureRM parancsmagokkal való engedélyezése váratlan működést okozhat. Hagyja ki ezt a lépést, ha úgy dönt, nem távolítja el az AzureRM-et, de vegye figyelembe, hogy az AzureRM-parancsmagok a régebbi modulokat használják, és nem hívnak meg Az-parancsmagokat.
Miután az AzureRM-et eltávolította, és megbizonyosodott róla, hogy a szkriptek működnek az AzureRM legfrissebb verziójával, a következő lépés az Az modul kompatibilitási módjának engedélyezése. A kompatibilitás a következő paranccsal engedélyezhető:
Enable-AzureRmAlias -Scope CurrentUser
Az aliasok segítségével továbbra is használhatja a régi parancsmagneveket, ha az Az modul telepítve van. Az aliasokat a kiválasztott hatókör felhasználói profiljába lesznek írva. Ha nincs felhasználói profil, a rendszer létrehoz egyet.
Figyelmeztetés
Használhat más hatókört (-Scope
) is a parancsban, ez azonban nem ajánlott. Ezek az aliasok a kiválasztott hatókör felhasználói profiljába lesznek írva, ezért érdemes őket minél korlátozottabb hatókörhöz engedélyezni. Az aliasok rendszerszintű engedélyezése emellett a többi felhasználónak is problémát okozhat, akiknél az AzureRM van telepítve a helyi hatókörükben.
Az alias mód engedélyezése után futtassa újra a szkripteket, és győződjön meg róla, hogy továbbra is a vártnak megfelelően működnek.
Modul- és parancsmagnevek módosítása
Általánosságban véve a modulnevek módosultak, így az AzureRM
és az Azure
is Az
lett, és ugyanez igaz a parancsmagokra is.
Az AzureRM.Compute
modul új neve például Az.Compute
. A New-AzureRMVM
New-AzVM
lett, a Get-AzureStorageBlob
pedig Get-AzStorageBlob
.
Van néhány kivétel is ez alól a szabály alól, amelyeket érdemes figyelembe venni. Egyes modulok a parancsmagok utótagjainak módosítása nélkül lettek átnevezve vagy meglévő modulokba egyesítve, csak az AzureRM
vagy az Azure
helyett szerepel Az
. Egyéb esetben a parancsmag teljes utótagja módosult az új modulnévnek megfelelően.
AzureRM modul | Az modul | Módosult a parancsmag utótagja? |
---|---|---|
AzureRM.Profile | Az.Accounts | Yes |
AzureRM.Insights | Az.Monitor | Yes |
AzureRM.Tags | Az.Resources | No |
AzureRM.UsageAggregates | Az.Billing | No |
AzureRM.Consumption | Az.Billing | No |
Összefoglalás
Ezeknek a lépéseknek a végrehajtásával frissítheti az összes meglévő szkriptet az új modul használatára. Amennyiben az áttelepítést során valamelyik lépéssel kapcsolatban kérdés vagy probléma merült fel, amely megnehezítette a dolgát, várjuk a megjegyzéseit a cikk alatt, hogy fejleszthessük az útmutatót.
Az Az 1.0.0 kompatibilitástörő változásai
Ez a dokumentum részletes információkat tartalmaz az AzureRM 6.x és az új Az modul 1.x és újabb verziója közötti változásokról. A tartalomjegyzék végigvezeti a teljes migrálási folyamaton, és bemutatja a modulspecifikus módosításokat is, amelyek befolyásolhatják a szkripteket.
Általános kompatibilitástörő változások
Ez a szakasz részletesen bemutatja az Az modul újratervezésének részét képező általános kompatibilitástörő változásokat.
A parancsmag főnévi előtagjainak változásai
Az AzureRM modulban a parancsmagok az AzureRM
vagy az Azure
főnévi előtagot használták. Az Az egyszerűsíti és normalizálja a parancsmagok nevét, így minden parancsmag főnévi előtagja „Az” lesz. Például:
Get-AzureRMVM
Get-AzureKeyVaultSecret
A következőre módosult:
Get-AzVM
Get-AzKeyVaultSecret
Az új parancsmagokra való áttérés megkönnyítése érdekében az Az két új parancsmagot vezet be: Enable-AzureRmAlias és Disable-AzureRmAlias. Az Enable-AzureRmAlias
a régebbi parancsmagok nevéhez hoz létre aliasokat az AzureRM-ben, amelyek az újabb Az-parancsmagok nevének felelnek meg. A -Scope
argumentum és az Enable-AzureRmAlias
együttes használatával kiválaszthatja, hol legyenek engedélyezve az aliasok.
A következő AzureRM-szkript például:
#Requires -Modules AzureRM.Storage
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob
Az Enable-AzureRmAlias
használatával minimális változtatásokkal futtatható:
#Requires -Modules Az.Storage
Enable-AzureRmAlias -Scope Process
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob
Az Enable-AzureRmAlias -Scope CurrentUser
futtatása engedélyezi az aliasokat az összes megnyitott PowerShell-munkamenetben, így a parancsmag végrehajtása után az ehhez hasonló szkripteket egyáltalán nem kell módosítani:
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob
A parancsmagok aliasaival kapcsolatos részletes információért tekintse meg az Enable-AzureRmAlias referenciáját.
Amikor készen áll az aliasok letiltására, a Disable-AzureRmAlias
eltávolítja a létrehozott aliasokat. Részletes információért tekintse meg a Disable-AzureRmAlias referenciáját.
Fontos
Az aliasok letiltásakor győződjön meg arról, hogy minden olyan hatókörnél le lettek tiltva, amelyekhez engedélyezve voltak az aliasok.
A modul nevének változásai
A modul neve a korábbi AzureRM.*
helyett Az.*
lett, kivéve a következő modulokban:
AzureRM modul | Az modul |
---|---|
Azure.Storage | Az.Storage |
Azure.AnalysisServices | Az.AnalysisServices |
AzureRM.Profile | Az.Accounts |
AzureRM.Insights | Az.Monitor |
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 |
A modul nevének változása azt jelenti, hogy ha egy szkript a #Requires
vagy az Import-Module
használatával tölt be bizonyos modulokat, módosításokat kell végezni az új modul használatához. Azoknál a moduloknál, ahol a parancsmag utótagja nem változott, ez azt jelenti, hogy a modul neve megváltozott, a művelet helyét jelző utótag viszont nem.
Az áttelepítéshez modul-utasítások szükségesek és importálhatók
Ha egy szkript #Requires
vagy Import-Module
használatával deklarálja egy AzureRM-modultól való függőségét, akkor frissíteni kell az új modulnevek használatára. Például:
#Requires -Module AzureRM.Compute
A következőre kell módosítani:
#Requires -Module Az.Compute
Import-Module
esetében:
Import-Module -Name AzureRM.Compute
A következőre kell módosítani:
Import-Module -Name Az.Compute
Teljes körűen minősített parancsmaghívások migrálása
Modulhoz minősített parancsmaghívásokat használó szkriptek, például:
AzureRM.Compute\Get-AzureRmVM
Úgy kell módosítani, hogy az új modul- és parancsmagneveket használja:
Az.Compute\Get-AzVM
Moduljegyzék-függőségek migrálása
Amennyiben egy modul AzureRM-modultól való függését egy moduljegyzék (.psd1) fájl fejezi ki, a modul RequiredModules
szakaszában frissíteni kell a modulok nevét:
RequiredModules = @(@{ModuleName="AzureRM.Profile"; ModuleVersion="5.8.2"})
A következőre kell módosítani:
RequiredModules = @(@{ModuleName="Az.Accounts"; ModuleVersion="1.0.0"})
Eltávolított modulok
Az alábbi modulok lettek eltávolítva:
AzureRM.Backup
AzureRM.Compute.ManagedService
AzureRM.Scheduler
E szolgáltatások eszközeit már nem támogatja aktívan a rendszer. Azt javasoljuk ügyfeleinknek, hogy amint lehetséges, térjenek át más szolgáltatások használatára.
Windows PowerShell 5.1 és .NET 4.7.2
Az Az Windows PowerShell 5.1-gyel történő használatához szükséges a .NET-keretrendszer 4.7.2 telepítése. A PowerShell Core 6.x vagy újabb verziójának használatához nincs szükség a .NET-keretrendszerre.
A felhasználói bejelentkezés ideiglenes eltávolítása PSCredential használatával
A .NET Standard hitelesítési folyamatának változásai miatt ideiglenesen eltávolítjuk a PSCredential használatával történő felhasználói bejelentkezés lehetőségét. A funkció a Windows PowerShell 5.1 2019. január 15-én megjelenő verziójában válik ismét elérhetővé. Erről részletesen ebben a GitHub-cikkben olvashat.
Bejelentkezés alapértelmezett eszközkóddal a webböngészőben megjelenő kérdés helyett
A .NET Standard hitelesítési folyamatának változásai miatt az interaktív bejelentkezések során az eszközről történő bejelentkezés lesz az alapértelmezett bejelentkezési folyamat. A webböngésző-alapú bejelentkezés a Windows PowerShell 5.1 2019. január 15-én megjelenő verziójában válik ismét elérhetővé. Ezt követően a felhasználók a Switch paramétert használva választhatják az eszközről történő bejelentkezést.
A modul kompatibilitástörő változásai
Ez a szakasz részletesen bemutatja az egyes modulok és parancsmagok kompatibilitástörő változásait.
Az.ApiManagement (korábban AzureRM.ApiManagement)
- A következő parancsmagok lettek eltávolítva:
- New-AzureRmApiManagementHostnameConfiguration
- Set-AzureRmApiManagementHostnames
- Update-AzureRmApiManagementDeployment
- Import-AzureRmApiManagementHostnameCertificate
- Ezeket a tulajdonságokat mostantól a Set-AzApiManagement parancsmaggal kell beállítani
- A következő tulajdonságok lettek eltávolítva:
- A
PsApiManagementHostnameConfiguration
típusPortalHostnameConfiguration
,ProxyHostnameConfiguration
,ManagementHostnameConfiguration
ésScmHostnameConfiguration
tulajdonsága el lett távolítva aPsApiManagementContext
ből. Ezek helyett aPsApiManagementCustomHostNameConfiguration
típusPortalCustomHostnameConfiguration
,ProxyCustomHostnameConfiguration
,ManagementCustomHostnameConfiguration
ésScmCustomHostnameConfiguration
tulajdonságát használja. - A
StaticIPs
tulajdonság el lett távolítva a PsApiManagementContextből. Két új tulajdonságra lett osztva: ez aPublicIPAddresses
és aPrivateIPAddresses
. - A kötelező
Location
tulajdonság el lett távolítva a New-AzureApiManagementVirtualNetwork parancsmagból.
- A
Az.Billing (korábban AzureRM.Billing, AzureRM.Consumption és AzureRM.UsageAggregates)
- A
Get-AzConsumptionUsageDetail
parancsmagInvoiceName
paramétere el lett távolítva. A szkripteknek a számlák készítéséhez más identitásparamétereket kell használniuk.
Az.Compute (korábban AzureRM.Compute)
- A
PSVirtualMachine
ésPSVirtualMachineScaleSet
objektumIdentity
tulajdonsága mostantól nem tartalmazza azIdentityIds
azonosítókat. A szkriptek a jövőben nem veszik figyelembe a mező értékét a feldolgozási döntések során. - A
PSVirtualMachineScaleSetVM
objektumInstanceView
tulajdonságának típusaVirtualMachineInstanceView
helyettVirtualMachineScaleSetVMInstanceView
lett. - Az
UpgradePolicy
tulajdonságAutoOSUpgradePolicy
ésAutomaticOSUpgrade
tulajdonsága el lett távolítva. - A
PSSnapshotUpdate
objektumSku
tulajdonságának típusaDiskSku
helyettSnapshotSku
lett. - A
VmScaleSetVMParameterSet
el lett távolítva azAdd-AzVMDataDisk
parancsmagból, mostantól nem lehet önálló adatlemezt hozzáadni egy ScaleSet-virtuálisgéphez.
Az.KeyVault (korábban AzureRM.KeyVault)
- A
PSKeyVaultKeyAttributes
,PSKeyVaultKeyIdentityItem
ésPSKeyVaultSecretAttributes
objektumPurgeDisabled
tulajdonsága el lett távolítva. A szkriptek a jövőben nem hivatkozhatnak aPurgeDisabled
tulajdonságra a feldolgozási döntések során.
Az.Monitor (korábban AzureRM.Insights)
A
Categories
és aTimegrains
többes számú paraméternév el lett távolítva. Ezek helyett aSet-AzDiagnosticSetting
parancsmag egyes számú paraméterneveit kell használni. A következőt használó szkripteket:Set-AzureRmDiagnosticSetting -Timegrains PT1M -Categories Category1, Category2
A következőre kell módosítani:
Set-AzDiagnosticSetting -Timegrain PT1M -Category Category1, Category2
Az.Network (korábban AzureRM.Network)
- A
Get-AzServiceEndpointPolicyDefinition
parancsmag elavultResourceId
paramétere el lett távolítva. - A
PSVirtualNetwork
objektum elavultEnableVmProtection
tulajdonsága el lett távolítva. - Az elavult
Set-AzVirtualNetworkGatewayVpnClientConfig
parancsmag el lett távolítva.
A szkriptek a jövőben nem hozhatnak feldolgozási döntéseket e mezők értéke alapján.
Az.Resources (korábban AzureRM.Resources)
A
New/Set-AzPolicyAssignment
parancsmagSku
paramétere el lett távolítva.A
New-AzADServicePrincipal
ésNew-AzADSpCredential
parancsmagPassword
paramétere el lett távolítva. A jelszavak létrehozása automatikusan történik, a korábban jelszót biztosító szkripteket:New-AzAdSpCredential -ObjectId aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb -Password $secPassword
Úgy kell módosítani, hogy a kimenetből kérjék le a jelszót:
$credential = New-AzAdSpCredential -ObjectId aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb $secPassword = $credential.Secret
Az.Storage (korábban Azure.Storage és AzureRM.Storage)
- Annak érdekében, hogy létre lehessen hozni egy Oauth Storage-környezetet pusztán a tárfiók nevét használva, az új alapértelmezett paraméterkészlet a következő:
OAuthParameterSet
- Például:
$ctx = New-AzureStorageContext -StorageAccountName $accountName
- Például:
- A
Get-AzStorageUsage
parancsmagban kötelezővé vált aLocation
paraméter használata. - A Storage API-metódusok mostantól feladatalapú aszinkron mintát (TAP) használnak az egyidejű API-hívások helyett. Az alábbi példák az új, aszinkron parancsokat mutatják be:
Blob-pillanatkép
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
Pillanatkép megosztása
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 helyreállítható törlésének visszavonása
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()
Blobszint beállítása
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 (korábban AzureRM.Websites)
- A
PSAppServicePlan
,PSCertificate
,PSCloningInfo
ésPSSite
objektum elavult tulajdonságai el lettek távolítva.
Következő lépések
- További információ az Azure Stack Hubon futó PowerShellről: A PowerShell használatának első lépései az Azure Stack Hubban
- A PowerShell Az modul telepítése: A PowerShell Az modul telepítése az Azure Stack Hubhoz