Ukázkové skripty PowerShellu
Azure Remote Rendering poskytuje následující dvě rozhraní REST API:
Úložiště ukázek ARR obsahuje ve složce Scripts ukázkové skripty pro interakci s rozhraními REST API služby. Tento článek popisuje jejich použití.
Tip
K dispozici je také nástroj založený na uživatelském rozhraní s názvem ARRT pro interakci se službou, což je vhodná alternativa k používání skriptů.
Upozornění
Příliš časté volání funkcí rozhraní REST API způsobí, že se server omezí a nakonec vrátí chybu. ID kódu selhání HTTP je v tomto případě 429 (příliš mnoho požadavků). Obecně platí, že mezi dalšími voláními by mělo být zpoždění 5 až 10 sekund.
Požadavky
Ke spuštění ukázkových skriptů potřebujete funkční nastavení Azure PowerShell.
Nainstalujte Azure PowerShell:
- Otevřete okno PowerShellu s právy správce.
- Spusťte
Install-Module -Name Az -AllowClobber
.
Pokud se při spouštění skriptů zobrazí chyby, ujistěte se, že jsou zásady spouštění správně nastavené:
- Otevřete okno PowerShellu s právy správce.
- Spusťte
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
.
Přihlaste se ke svému předplatnému, které obsahuje váš účet Azure Remote Rendering:
- Otevřete okno PowerShellu.
- Spusťte:
Connect-AzAccount
a postupujte podle pokynů na obrazovce.
Poznámka
V případě, že má vaše organizace více než jedno předplatné, možná budete muset zadat argumenty Id předplatného a tenanta. Podrobnosti najdete v dokumentaci k Connect-AzAccount.
Stáhněte si složku Scripts z úložiště Azure Remote Rendering GitHubu.
Konfigurační soubor
Vedle .ps1
souborů je tady položka arrconfig.json
, kterou musíte vyplnit:
{
"accountSettings": {
"arrAccountId": "<fill in the account ID from the Azure Portal>",
"arrAccountKey": "<fill in the account key from the Azure Portal>",
"arrAccountDomain": "<select from available regions: australiaeast, eastus, eastus2, japaneast, northeurope, southcentralus, southeastasia, uksouth, westeurope, westus2 or specify the full url>"
},
"renderingSessionSettings": {
"remoteRenderingDomain": "<select from available regions: australiaeast, eastus, eastus2, japaneast, northeurope, southcentralus, southeastasia, uksouth, westeurope, westus2 or specify the full url>",
"vmSize": "<select standard or premium>",
"maxLeaseTime": "<hh:mm:ss>"
},
"assetConversionSettings": {
"resourceGroup": "<resource group which contains the storage account you created, only needed when uploading or generating SAS>",
"storageAccountName": "<name of the storage account you created>",
"blobInputContainerName": "<input container inside the storage container>",
"blobOutputContainerName": "<output container inside the storage container>",
"localAssetDirectoryPath": "<fill in a path to a local directory containing your asset (and files referenced from it like textures)>",
"inputFolderPath": "<optional: base folderpath in the input container for asset upload. uses / as dir separator>",
"inputAssetPath": "<the path to the asset under inputcontainer/inputfolderpath pointing to the input asset e.g. box.fbx>",
"outputFolderPath": "<optional: base folderpath in the output container - the converted asset and log files will be placed here>",
"outputAssetFileName": "<optional: filename for the converted asset, this will be placed in the output container under the outputpath>"
}
}
Upozornění
Ujistěte se, že správně uvozujte zpětná lomítka v cestě LocalAssetDirectoryPath pomocí dvojitých zpětných lomítek: \\ a ve všech ostatních cestách, jako je inputFolderPath a inputAssetPath, použijte lomítka "/".
Upozornění
Je třeba vyplnit volitelné hodnoty nebo je potřeba klíč a hodnotu úplně odebrat. Pokud například nepoužíváte "outputAssetFileName"
parametr, musíte odstranit celý řádek uvnitř arrconfig.json
.
accountSettings
Informace o arrAccountId
a arrAccountKey
najdete v tématu Vytvoření účtu Azure Remote Rendering.
Hodnota arrAccountDomain
by měla být oblast ze seznamu dostupných oblastí.
renderingSessionSettings
Tato struktura musí být vyplněna, pokud chcete spustit RenderingSession.ps1:
- vmSize: Vybere velikost virtuálního počítače. Vyberte Standard nebo Premium. Vypněte vykreslovací relace, když je už nepotřebujete.
- maxLeaseTime: Doba trvání, po kterou chcete virtuální počítač zapůjčení. Virtuální počítač se po vypršení zapůjčení vypne. Dobu zapůjčení můžete později prodloužit (viz zde).
-
remoteRenderingDomain: Oblast, ve které se nachází virtuální počítač vzdáleného vykreslování.
- Může se lišit od domény arrAccountDomain, ale přesto by to měla být oblast ze seznamu dostupných oblastí.
assetConversionSettings
Tato struktura musí být vyplněna, pokud chcete spustit Conversion.ps1.
Podrobnosti najdete v tématu Příprava účtu služby Azure Storage.
Skript: RenderingSession.ps1
Tento skript se používá k vytváření, dotazování a zastavení vykreslování relací.
Důležité
Ujistěte se, že jste v souboru arrconfig.json vyplnili oddíly accountSettings a renderingSessionSettings .
Vytvoření relace vykreslování
Normální využití s plně vyplněným souborem arrconfig.json:
.\RenderingSession.ps1
Skript volá rozhraní REST API pro správu relací , aby se pomocí zadaného nastavení roztáčil vykreslovací virtuální počítač. V případě úspěchu načte id relace. Poté se dotazuje na vlastnosti relace, dokud nebude relace připravená nebo nedojde k chybě.
Použití alternativního konfiguračního souboru:
.\RenderingSession.ps1 -ConfigFile D:\arr\myotherconfigFile.json
Jednotlivá nastavení můžete přepsat z konfiguračního souboru:
.\RenderingSession.ps1 -ArrAccountDomain <arrAccountDomain> -RemoteRenderingDomain <remoteRenderingDomain> -VmSize <vmsize> -MaxLeaseTime <hh:mm:ss>
Pokud chcete spustit relaci jenom bez dotazování, můžete použít:
.\RenderingSession.ps1 -CreateSession
Id relace, které skript načte, musí být předáno většině ostatních příkazů relace.
Načtení vlastností relace
Vlastnosti relace získáte spuštěním příkazu:
.\RenderingSession.ps1 -GetSessionProperties -Id <sessionID> [-Poll]
Umožňuje -Poll
počkat, až bude relace připravená nebo dojde k chybě.
Výpis aktivních relací
.\RenderingSession.ps1 -GetSessions
Zastavení relace
.\RenderingSession.ps1 -StopSession -Id <sessionID>
Změna vlastností relace
V tuto chvíli podporujeme jenom změnu maxLeaseTime relace.
Poznámka
Doba zapůjčení se vždy počítá od okamžiku, kdy byl virtuální počítač relace původně vytvořen. Pokud tedy chcete prodloužit zapůjčení relace o další hodinu, zvyšte hodnotu maxLeaseTime o jednu hodinu.
.\RenderingSession.ps1 -UpdateSession -Id <sessionID> -MaxLeaseTime <hh:mm:ss>
Skript: Conversion.ps1
Tento skript se používá k převodu vstupních modelů do formátu modulu runtime specifického pro Azure Remote Rendering.
Důležité
Ujistěte se, že jste vyplnili části accountSettings a assetConversionSettings a možnost remoteRenderingDomain v souboru renderingSessionSettings v souboru arrconfig.json.
Skript ukazuje dvě možnosti použití účtů úložiště se službou:
- Účet úložiště propojený s účtem Azure Remote Rendering
- Poskytování přístupu k úložišti prostřednictvím sdílených přístupových podpisů (SAS)
Propojený účet úložiště
Po úplném vyplnění souboru arrconfig.json a propojení účtu úložiště můžete použít následující příkaz. Propojení účtu úložiště je popsané v tématu Vytvoření účtu.
Použití propojeného účtu úložiště je upřednostňovaným způsobem použití služby převodu, protože není nutné generovat sdílené přístupové podpisy.
.\Conversion.ps1
- Nahrajte všechny soubory obsažené v objektu
assetConversionSettings.modelLocation
do vstupního kontejneru objektů blob v danéminputFolderPath
objektu . - Voláním rozhraní REST API pro převod modeluzahájíte převod modelu.
- Dotazujte se na stav převodu, dokud převod nebude úspěšný nebo neúspěšný.
- Podrobnosti výstupu o umístění převedeného souboru (účet úložiště, výstupní kontejner, cesta k souboru v kontejneru)
Přístup k úložišti prostřednictvím sdílených přístupových podpisů
.\Conversion.ps1 -UseContainerSas
Tím se provede následující:
- Nahrajte místní soubor z objektu
assetConversionSettings.localAssetDirectoryPath
do vstupního kontejneru objektů blob. - Vygenerujte identifikátor URI SAS pro vstupní kontejner.
- Vygenerujte identifikátor URI SAS pro výstupní kontejner.
- Voláním rozhraní REST API pro převod modelu zahájíte převod modelu.
- Dotazujte se na stav převodu, dokud převod nebude úspěšný nebo neúspěšný.
- Podrobnosti výstupu o umístění převedeného souboru (účet úložiště, výstupní kontejner, cesta k souboru v kontejneru)
- Výstup identifikátoru URI SAS pro převedený model ve výstupním kontejneru objektů blob
Další možnosti příkazového řádku
Použití alternativního konfiguračního souboru:
.\Conversion.ps1 -ConfigFile D:\arr\myotherconfigFile.json
Pokud chcete zahájit převod modelu jenom bez dotazování, můžete použít:
.\Conversion.ps1 -ConvertAsset
Jednotlivá nastavení z konfiguračního souboru můžete přepsat pomocí následujících přepínačů příkazového řádku:
- Id: ConversionId použité s GetConversionStatus
- ArrAccountId: arrAccountId nastavení účtu
- ArrAccountKey: přepsání pro arrAccountKey účtuSettings
- ArrAccountDomain: přepsání pro arrAccountDomain of accountSettings
- RemoteRenderingDomain: přepsání pro remoteRenderingDoména vykreslováníSessionSettings
- ResourceGroup: Přepsání pro resourceGroup of assetConversionSettings
- StorageAccountName: přepsání pro storageAccountName assetConversionSettings
- BlobInputContainerName: přepsání pro blobInputContainer pro assetConversionSettings
- LocalAssetDirectoryPath: přepsání pro localAssetDirectoryPath pro assetConversionSettings
- InputAssetPath: přepsání pro inputAssetPath pro assetConversionSettings
- BlobOutputContainerName: přepsání pro blobOutputContainerName assetConversionSettings
- OutputFolderPath: přepsání pro outputFolderPath pro assetConversionSettings
- OutputAssetFileName: přepsání pro outputAssetFileName assetConversionSettings
Můžete například zkombinovat tyto možnosti:
.\Conversion.ps1 -LocalAssetDirectoryPath "C:\\models\\box" -InputAssetPath box.fbx -OutputFolderPath another/converted/box -OutputAssetFileName newConversionBox.arrAsset
Spuštění jednotlivých fází převodu
Pokud chcete spustit jednotlivé kroky procesu, můžete použít:
Nahrávat pouze data z dané LocalAssetDirectoryPath.
.\Conversion.ps1 -Upload
Pouze spusťte proces převodu modelu, který je už nahraný do úložiště objektů blob (nespouštějte příkaz Nahrát, nezkoušejte dotaz na stav převodu). Skript vrátí hodnotu conversionId.
.\Conversion.ps1 -ConvertAsset
Stav převodu tohoto převodu můžete načíst pomocí:
.\Conversion.ps1 -GetConversionStatus -Id <conversionId> [-Poll]
Slouží -Poll
k čekání na dokončení převodu nebo na chybu.