Dela via


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. SKÄRMBILD AV ARRT

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.

  1. Installera Azure PowerShell:

    1. Öppna ett PowerShell-fönster med administratörsrättigheter.
    2. Kör: Install-Module -Name Az -AllowClobber
  2. Om du får fel om att köra skript kontrollerar du att din körningsprincip har angetts på rätt sätt:

    1. Öppna ett PowerShell-fönster med administratörsrättigheter.
    2. Kör: Set-ExecutionPolicy -ExecutionPolicy Unrestricted
  3. Förbereda ett Azure Storage-konto

  4. Logga in på din prenumeration som innehåller ditt Azure Remote Rendering-konto:

    1. Öppna ett PowerShell-fönster.
    2. 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.

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

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
  1. Ladda upp alla filer som finns i assetConversionSettings.modelLocation till indatablobcontainern under angiven inputFolderPath.
  2. Anropa REST-API:et för modellkonvertering för att starta modellkonverteringen
  3. Avsök konverteringsstatusen tills konverteringen lyckades eller misslyckades.
  4. 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:

  1. Ladda upp den lokala filen från assetConversionSettings.localAssetDirectoryPath till indatablobcontainern.
  2. Generera en SAS-URI för indatacontainern.
  3. Generera en SAS-URI för utdatacontainern.
  4. Anropa REST-API:et för modellkonvertering för att starta modellkonverteringen.
  5. Avsök konverteringsstatusen tills konverteringen lyckades eller misslyckades.
  6. Utdatainformation om den konverterade filplatsen (lagringskonto, utdatacontainer, filsökväg i containern).
  7. 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.

Nästa steg