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ů. Snímek obrazovky funkce ARRT

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.

  1. Nainstalujte Azure PowerShell:

    1. Otevřete okno PowerShellu s právy správce.
    2. Spusťte Install-Module -Name Az -AllowClobber.
  2. Pokud se při spouštění skriptů zobrazí chyby, ujistěte se, že jsou zásady spouštění správně nastavené:

    1. Otevřete okno PowerShellu s právy správce.
    2. Spusťte Set-ExecutionPolicy -ExecutionPolicy Unrestricted.
  3. Příprava účtu služby Azure Storage

  4. Přihlaste se ke svému předplatnému, které obsahuje váš účet Azure Remote Rendering:

    1. Otevřete okno PowerShellu.
    2. 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.

  5. 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 arrAccountKeynajdete 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í.

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
  1. Nahrajte všechny soubory obsažené v objektu assetConversionSettings.modelLocation do vstupního kontejneru objektů blob v daném inputFolderPathobjektu .
  2. Voláním rozhraní REST API pro převod modeluzahájíte převod modelu.
  3. Dotazujte se na stav převodu, dokud převod nebude úspěšný nebo neúspěšný.
  4. 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í:

  1. Nahrajte místní soubor z objektu assetConversionSettings.localAssetDirectoryPath do vstupního kontejneru objektů blob.
  2. Vygenerujte identifikátor URI SAS pro vstupní kontejner.
  3. Vygenerujte identifikátor URI SAS pro výstupní kontejner.
  4. Voláním rozhraní REST API pro převod modelu zahájíte převod modelu.
  5. Dotazujte se na stav převodu, dokud převod nebude úspěšný nebo neúspěšný.
  6. Podrobnosti výstupu o umístění převedeného souboru (účet úložiště, výstupní kontejner, cesta k souboru v kontejneru)
  7. 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.

Další kroky