PowerShell-exempelskript
Azure Remote Rendering tillhandahåller följande två REST-API:er:
ARR-exempellagringsplatsen innehåller exempelskript i mappen Skript för att interagera med REST-API:erna för tjänsten. Den här artikeln beskriver deras användning.
Tips
Det finns också ett gränssnittsbaserat verktyg som kallas ARRT för att interagera med tjänsten, vilket är ett praktiskt alternativ till att använda skript.
Varning
Om du anropar REST API-funktioner för ofta kommer servern att begränsas och returnera fel så småningom. HTTP-felkod-ID:t i det här fallet är 429 ("för många begäranden"). Som tumregel bör det finnas en fördröjning på 5–10 sekunder mellan efterföljande anrop.
Krav
Om du vill köra exempelskripten behöver du en funktionell konfiguration av Azure PowerShell.
Installera Azure PowerShell:
- Öppna ett PowerShell-fönster med administratörsrättigheter.
- Kör:
Install-Module -Name Az -AllowClobber
Om du får fel om att köra skript kontrollerar du att din körningsprincip har angetts på rätt sätt:
- Öppna ett PowerShell-fönster med administratörsrättigheter.
- Kör:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
Logga in på din prenumeration som innehåller ditt Azure Remote Rendering-konto:
- Öppna ett PowerShell-fönster.
- Kör:
Connect-AzAccount
och följ anvisningarna på skärmen.
Anteckning
Om din organisation har fler än en prenumeration kan du behöva ange argumenten SubscriptionId och Tenant. Hitta information i dokumentationen för Connect-AzAccount.
Ladda ned mappen Scripts från Azure Remote Rendering GitHub-lagringsplatsen.
Konfigurationsfil
Bredvid .ps1
filerna finns det en arrconfig.json
som du behöver fylla i:
{
"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>"
}
}
Varning
Undvik omvänt snedstreck på sökvägen LocalAssetDirectoryPath korrekt med hjälp av dubbla omvänt snedstreck: "\\" och använd snedstreck "/" i alla andra sökvägar som inputFolderPath och inputAssetPath.
Varning
Valfria värden måste fyllas i eller så måste du ta bort nyckeln och värdet helt och hållet. Om du till exempel inte använder parametern "outputAssetFileName"
måste du ta bort hela raden inuti arrconfig.json
.
accountSettings
För arrAccountId
och arrAccountKey
, se Skapa ett Azure Remote Rendering-konto.
arrAccountDomain
Bör vara en region från listan över tillgängliga regioner.
renderingSessionSettings
Den här strukturen måste fyllas i om du vill köra RenderingSession.ps1:
- vmSize: Väljer storleken på den virtuella datorn. Välj standard eller premium. Stäng av renderingssessioner när du inte behöver dem längre.
- maxLeaseTime: Den varaktighet som du vill hyra den virtuella datorn för. Den virtuella datorn stängs av när lånet upphör att gälla. Lånetiden kan förlängas senare (se här).
-
remoteRenderingDomain: Den region där den virtuella fjärråtergivningsdatorn finns.
- Kan skilja sig från arrAccountDomain, men bör fortfarande vara en region från listan över tillgängliga regioner
assetConversionSettings
Den här strukturen måste fyllas i om du vill köra Conversion.ps1.
Mer information finns i Förbereda ett Azure Storage-konto.
Skript: RenderingSession.ps1
Det här skriptet används för att skapa, fråga och stoppa renderingssessioner.
Viktigt
Kontrollera att du har fyllt i avsnitten accountSettings och renderingSessionSettings i arrconfig.json.
Skapa en återgivningssession
Normal användning med en fullständigt ifylld arrconfig.json:
.\RenderingSession.ps1
Skriptet anropar REST-API :et för sessionshantering för att starta en virtuell renderingsdator med de angivna inställningarna. När det lyckas hämtar det sessionId. Därefter avsöker den sessionsegenskaperna tills sessionen är klar eller ett fel uppstod.
Så här använder du en alternativ konfigurationsfil :
.\RenderingSession.ps1 -ConfigFile D:\arr\myotherconfigFile.json
Du kan åsidosätta enskilda inställningar från konfigurationsfilen:
.\RenderingSession.ps1 -ArrAccountDomain <arrAccountDomain> -RemoteRenderingDomain <remoteRenderingDomain> -VmSize <vmsize> -MaxLeaseTime <hh:mm:ss>
Om du bara vill starta en session utan avsökning kan du använda:
.\RenderingSession.ps1 -CreateSession
SessionId som skriptet hämtar måste skickas till de flesta andra sessionskommandon.
Hämta sessionsegenskaper
Om du vill hämta en sessions egenskaper kör du:
.\RenderingSession.ps1 -GetSessionProperties -Id <sessionID> [-Poll]
Använd -Poll
för att vänta tills sessionen är klar eller ett fel har inträffat.
Lista aktiva sessioner
.\RenderingSession.ps1 -GetSessions
Stoppa en session
.\RenderingSession.ps1 -StopSession -Id <sessionID>
Ändra sessionsegenskaper
Just nu stöder vi bara ändring av maxLeaseTime för en session.
Anteckning
Lånetiden räknas alltid från den tidpunkt då den virtuella sessionsdatorn ursprungligen skapades. Så om du vill förlänga sessionslånet med ytterligare en timme ökar du maxLeaseTime med en timme.
.\RenderingSession.ps1 -UpdateSession -Id <sessionID> -MaxLeaseTime <hh:mm:ss>
Skript: Conversion.ps1
Det här skriptet används för att konvertera indatamodeller till Azure Remote Rendering specifika körningsformat.
Viktigt
Kontrollera att du har fyllt i avsnitten accountSettings och assetConversionSettings och alternativet remoteRenderingDomain i renderingSessionSettings i arrconfig.json.
Skriptet visar de två alternativen för att använda lagringskonton med tjänsten:
- Lagringskonto som är länkat till Azure Remote Rendering-konto
- Ge åtkomst till lagring via signaturer för delad åtkomst (SAS)
Länkat lagringskonto
När du har fyllt i arrconfig.json fullständigt och länkat ett lagringskonto kan du använda följande kommando. Länkning av ditt lagringskonto beskrivs i Skapa ett konto.
Att använda ett länkat lagringskonto är det bästa sättet att använda konverteringstjänsten eftersom du inte behöver generera signaturer för delad åtkomst.
.\Conversion.ps1
- Ladda upp alla filer som finns i
assetConversionSettings.modelLocation
till indatablobcontainern under angiveninputFolderPath
. - Anropa REST-API:et för modellkonvertering för att starta modellkonverteringen
- Avsök konverteringsstatusen tills konverteringen lyckades eller misslyckades.
- Utdatainformation om den konverterade filplatsen (lagringskonto, utdatacontainer, filsökväg i containern).
Åtkomst till lagring via signaturer för delad åtkomst
.\Conversion.ps1 -UseContainerSas
Detta gör att:
- Ladda upp den lokala filen från
assetConversionSettings.localAssetDirectoryPath
till indatablobcontainern. - Generera en SAS-URI för indatacontainern.
- Generera en SAS-URI för utdatacontainern.
- Anropa REST-API:et för modellkonvertering för att starta modellkonverteringen.
- Avsök konverteringsstatusen tills konverteringen lyckades eller misslyckades.
- Utdatainformation om den konverterade filplatsen (lagringskonto, utdatacontainer, filsökväg i containern).
- Mata ut en SAS-URI till den konverterade modellen i blobcontainern för utdata.
Ytterligare kommandoradsalternativ
Så här använder du en alternativ konfigurationsfil :
.\Conversion.ps1 -ConfigFile D:\arr\myotherconfigFile.json
Om du bara vill starta modellkonverteringen utan avsökning kan du använda:
.\Conversion.ps1 -ConvertAsset
Du kan åsidosätta enskilda inställningar från konfigurationsfilen med hjälp av följande kommandoradsväxlar:
- Id: ConversionId som används med GetConversionStatus
- ArrAccountId: arrAccountId för accountSettings
- ArrAccountKey: åsidosättning för arrAccountKey för accountSettings
- ArrAccountDomain: åsidosättning för arrAccountDomain för accountSettings
- RemoteRenderingDomain: åsidosättning för remoteRenderingDomain för renderingSessionSettings
- ResourceGroup: åsidosättning för resourceGroup för assetConversionSettings
- StorageAccountName: åsidosättning för storageAccountName för assetConversionSettings
- BlobInputContainerName: åsidosättning för blobInputContainer för assetConversionSettings
- LocalAssetDirectoryPath: åsidosättning för localAssetDirectoryPath för assetConversionSettings
- InputAssetPath: åsidosättning för inputAssetPath för assetConversionSettings
- BlobOutputContainerName: åsidosättning för blobOutputContainerName för assetConversionSettings
- OutputFolderPath: åsidosättning för outputFolderPath för assetConversionSettings
- OutputAssetFileName: åsidosättning för outputAssetFileName för assetConversionSettings
Du kan till exempel kombinera de angivna alternativen så här:
.\Conversion.ps1 -LocalAssetDirectoryPath "C:\\models\\box" -InputAssetPath box.fbx -OutputFolderPath another/converted/box -OutputAssetFileName newConversionBox.arrAsset
Kör de enskilda konverteringsstegen
Om du vill köra enskilda steg i processen kan du använda:
Ladda bara upp data från angiven LocalAssetDirectoryPath.
.\Conversion.ps1 -Upload
Starta endast konverteringsprocessen för en modell som redan har laddats upp till Blob Storage (kör inte Ladda upp, avsök inte konverteringsstatusen) Skriptet returnerar ett conversionId.
.\Conversion.ps1 -ConvertAsset
Och du kan hämta konverteringsstatusen för den här konverteringen med hjälp av:
.\Conversion.ps1 -GetConversionStatus -Id <conversionId> [-Poll]
Använd -Poll
för att vänta tills konverteringen är klar eller ett fel har uppstått.